Skip to content

Class closures does not work #430

@kai3341

Description

@kai3341

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions