| 12345678910111213141516171819202122232425262728293031323334 |
- import functools
- import sys
- # from jaraco.functools 4.1
- def identity(x):
- return x
- # from jaraco.functools 4.1
- def apply(transform):
- def wrap(func):
- return functools.wraps(func)(compose(transform, func))
- return wrap
- # from jaraco.functools 4.1
- def compose(*funcs):
- def compose_two(f1, f2):
- return lambda *args, **kwargs: f1(f2(*args, **kwargs))
- return functools.reduce(compose_two, funcs)
- def replace(pattern):
- r"""
- >>> replace(r'foo\z')
- 'foo\\Z'
- """
- return pattern[:-2] + pattern[-2:].replace(r'\z', r'\Z')
- legacy_end_marker = apply(replace) if sys.version_info < (3, 14) else identity
|