summaryrefslogtreecommitdiff
path: root/astroid/brain/helpers.py
blob: f0bf0ccfefa7e669ae1d18e503a3bc99042252ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
from astroid.scoped_nodes import Module


def register_module_extender(manager, module_name, get_extension_mod):
    def transform(node):
        extension_module = get_extension_mod()
        for name, objs in extension_module.locals.items():
            node.locals[name] = objs
            for obj in objs:
                if obj.parent is extension_module:
                    obj.parent = node

    manager.register_transform(Module, transform, lambda n: n.name == module_name)