Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/astroid/brain/helpers.py: 54%

13 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-07 06:53 +0000

1# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html 

2# For details: https://github.com/pylint-dev/astroid/blob/main/LICENSE 

3# Copyright (c) https://github.com/pylint-dev/astroid/blob/main/CONTRIBUTORS.txt 

4 

5from __future__ import annotations 

6 

7from collections.abc import Callable 

8 

9from astroid.manager import AstroidManager 

10from astroid.nodes.scoped_nodes import Module 

11 

12 

13def register_module_extender( 

14 manager: AstroidManager, module_name: str, get_extension_mod: Callable[[], Module] 

15) -> None: 

16 def transform(node: Module) -> None: 

17 extension_module = get_extension_mod() 

18 for name, objs in extension_module.locals.items(): 

19 node.locals[name] = objs 

20 for obj in objs: 

21 if obj.parent is extension_module: 

22 obj.parent = node 

23 

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