Codefind
- Find code objects from filename and qualname
- Find all functions that have a certain code
- Change the code of functions
- Used by jurigged
find_code
from codefind import find_code
def f(x):
return x + x
def adder(x):
def f(y):
return x + y
return f
add1 = adder(1)
assert find_code("f" filename=__file__) is f.__code__
assert find_code("adder", "f", filename=__file__) is add1.__code__
assert find_code("adder", "f", module=__module__) is add1.__code__
get_functions
from codefind import get_functions
def f(x):
return x + x
def adder(x):
def f(y):
return x + y
return f
add1 = adder(1)
add2 = adder(2)
add3 = adder(3)
assert get_functions(f.__code__) == [f]
assert set(get_functions(add1.__code__)) == {add1, add2, add3}
conform
Simple usage
from codefind import conform
def f(x):
return x + x
def g(x):
return x * x
print(f(5))
conform(f, g)
print(f(5))
Updating all closures
def adder(x):
def f(y):
return x + y
return f
def muller(x):
def f(y):
return x * y
return f
add1 = adder(1)
add2 = adder(2)
add3 = adder(3)
print(add1(5))
print(add2(5))
print(add3(5))
conform(add1.__code__, muller(0).__code__)
print(add1(5))
print(add2(5))
print(add3(5))