25 lines
658 B
Python
25 lines
658 B
Python
"""Install mcpy hooks to preprocess source files.
|
|
|
|
Actually, the library monkey-patches SourceFileLoader to compile the code
|
|
in a different way, providing the macro-expansion for the AST before compiling
|
|
into real code.
|
|
"""
|
|
from .importhooks import source_to_xcode, nop
|
|
from importlib.machinery import SourceFileLoader
|
|
|
|
old_source_to_code = SourceFileLoader.source_to_code
|
|
old_set_data = SourceFileLoader.set_data
|
|
|
|
|
|
def activate():
|
|
SourceFileLoader.source_to_code = source_to_xcode
|
|
SourceFileLoader.set_data = nop
|
|
|
|
|
|
def de_activate():
|
|
SourceFileLoader.source_to_code = old_source_to_code
|
|
SourceFileLoader.set_data = old_set_data
|
|
|
|
|
|
activate()
|