diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2024-09-02 00:01:09 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2024-09-02 00:09:17 +0300 |
commit | b5c4ec42ac2cc59dc3b104277ce2e85f5f77c88e (patch) | |
tree | 9b37605b78a3d2398da4addca3ee37899621c38e /contrib/python/Automat/py3/automat/_introspection.py | |
parent | 88fb7b5c334c3afdffacd104ee20efda4400d1bc (diff) | |
download | ydb-b5c4ec42ac2cc59dc3b104277ce2e85f5f77c88e.tar.gz |
Intermediate changes
Diffstat (limited to 'contrib/python/Automat/py3/automat/_introspection.py')
-rw-r--r-- | contrib/python/Automat/py3/automat/_introspection.py | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/contrib/python/Automat/py3/automat/_introspection.py b/contrib/python/Automat/py3/automat/_introspection.py index 403cddb15e..e433b2f9f9 100644 --- a/contrib/python/Automat/py3/automat/_introspection.py +++ b/contrib/python/Automat/py3/automat/_introspection.py @@ -7,31 +7,41 @@ from types import CodeType as code, FunctionType as function def copycode(template, changes): if hasattr(code, "replace"): - return template.replace(**{"co_" + k : v for k, v in changes.items()}) + return template.replace(**{"co_" + k: v for k, v in changes.items()}) names = [ - "argcount", "nlocals", "stacksize", "flags", "code", "consts", - "names", "varnames", "filename", "name", "firstlineno", "lnotab", - "freevars", "cellvars" + "argcount", + "nlocals", + "stacksize", + "flags", + "code", + "consts", + "names", + "varnames", + "filename", + "name", + "firstlineno", + "lnotab", + "freevars", + "cellvars", ] if hasattr(code, "co_kwonlyargcount"): names.insert(1, "kwonlyargcount") if hasattr(code, "co_posonlyargcount"): # PEP 570 added "positional only arguments" names.insert(1, "posonlyargcount") - values = [ - changes.get(name, getattr(template, "co_" + name)) - for name in names - ] + values = [changes.get(name, getattr(template, "co_" + name)) for name in names] return code(*values) def copyfunction(template, funcchanges, codechanges): names = [ - "globals", "name", "defaults", "closure", + "globals", + "name", + "defaults", + "closure", ] values = [ - funcchanges.get(name, getattr(template, "__" + name + "__")) - for name in names + funcchanges.get(name, getattr(template, "__" + name + "__")) for name in names ] return function(copycode(template.__code__, codechanges), *values) @@ -40,7 +50,8 @@ def preserveName(f): """ Preserve the name of the given function on the decorated function. """ + def decorator(decorated): - return copyfunction(decorated, - dict(name=f.__name__), dict(name=f.__name__)) + return copyfunction(decorated, dict(name=f.__name__), dict(name=f.__name__)) + return decorator |