patchy icon indicating copy to clipboard operation
patchy copied to clipboard

Class closures does not work

Open kai3341 opened this issue 1 year ago • 0 comments

Python Version

3.9.0

Package Version

2.6.0

Description

Trying to patch Foo.__init__ in this case:

class Foo:
    ANY_VALUE = 42
    def __init__(self, any_value=ANY_VALUE): pass

Would cause an error:

Traceback (most recent call last):
  ...
  File "/home/kai/Projects/.../venv/lib/python3.9/site-packages/patchy/api.py", line 33, in patch
    _do_patch(func, patch_text, forwards=True)
  File "/home/kai/Projects/.../venv/lib/python3.9/site-packages/patchy/api.py", line 100, in _do_patch
    _set_source(func, new_source)
  File "/home/kai/Projects/.../venv/lib/python3.9/site-packages/patchy/api.py", line 321, in _set_source
    new_func = localz["__patchy_freevars__"]()
  File "<patchy>", line 4, in __patchy_freevars__
  File "<patchy>", line 6, in Client
NameError: name 'ANY_VALUE' is not defined

kai3341 avatar Dec 20 '22 21:12 kai3341