smarie / python-makefun

Dynamically create python functions with a proper signature.
https://smarie.github.io/python-makefun/
BSD 3-Clause "New" or "Revised" License
119 stars 16 forks source link

`@compile_fun` does not recurse through imported names for now #52

Open smarie opened 4 years ago

smarie commented 4 years ago

These names are available in co_names. For example below the dedent symbol is not compiled.

from textwrap import dedent

@compile_fun
def foo():
    return dedent("   hoho")

Unfortunately, handling this comes with many side effects including compilation order, appropriate propagation or non-propagation of globals(), locals().

Since @compile_fun was initially just a fun experiment to apply compile easily, as of now I do not plan to make this work. Contributions welcome - if you find that this is actually worth it ! :)