File size: 654 Bytes
9c6594c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
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
|