Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.1k
Closed
Description
Current code:
defindent(text,prefix,predicate=None):"""Adds 'prefix' to the beginning of selected lines in 'text'. If 'predicate' is provided, 'prefix' will only be added to the lines where 'predicate(line)' is True. If 'predicate' is not provided, it will default to adding 'prefix' to all non-empty lines that do not consist solely of whitespace characters. """ifpredicateisNone:defpredicate(line):returnline.strip()defprefixed_lines():forlineintext.splitlines(True):yield (prefix+lineifpredicate(line)elseline)return''.join(prefixed_lines())
predicate = str.strip
is faster thandef predicate(line)
''.join(x)
converts input iterable to sequence. Using generator just makes overhead.- creating temporary
prefix + line
is avoidable.