| # Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html |
| # For details: https://github.com/pylint-dev/astroid/blob/main/LICENSE |
| # Copyright (c) https://github.com/pylint-dev/astroid/blob/main/CONTRIBUTORS.txt |
| |
| from __future__ import annotations |
| |
| from collections.abc import Callable |
| |
| from astroid.manager import AstroidManager |
| from astroid.nodes.scoped_nodes import Module |
| |
| |
| def register_module_extender( |
| manager: AstroidManager, module_name: str, get_extension_mod: Callable[[], Module] |
| ) -> None: |
| def transform(node: Module) -> None: |
| 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) |
| |
| |
| # pylint: disable-next=too-many-locals |
| def register_all_brains(manager: AstroidManager) -> None: |
| from astroid.brain import ( # pylint: disable=import-outside-toplevel |
| brain_argparse, |
| brain_attrs, |
| brain_boto3, |
| brain_builtin_inference, |
| brain_collections, |
| brain_crypt, |
| brain_ctypes, |
| brain_curses, |
| brain_dataclasses, |
| brain_datetime, |
| brain_dateutil, |
| brain_fstrings, |
| brain_functools, |
| brain_gi, |
| brain_hashlib, |
| brain_http, |
| brain_hypothesis, |
| brain_io, |
| brain_mechanize, |
| brain_multiprocessing, |
| brain_namedtuple_enum, |
| brain_nose, |
| brain_numpy_core_einsumfunc, |
| brain_numpy_core_fromnumeric, |
| brain_numpy_core_function_base, |
| brain_numpy_core_multiarray, |
| brain_numpy_core_numeric, |
| brain_numpy_core_numerictypes, |
| brain_numpy_core_umath, |
| brain_numpy_ma, |
| brain_numpy_ndarray, |
| brain_numpy_random_mtrand, |
| brain_pathlib, |
| brain_pkg_resources, |
| brain_pytest, |
| brain_qt, |
| brain_random, |
| brain_re, |
| brain_regex, |
| brain_responses, |
| brain_scipy_signal, |
| brain_signal, |
| brain_six, |
| brain_sqlalchemy, |
| brain_ssl, |
| brain_subprocess, |
| brain_threading, |
| brain_type, |
| brain_typing, |
| brain_unittest, |
| brain_uuid, |
| ) |
| |
| brain_argparse.register(manager) |
| brain_attrs.register(manager) |
| brain_boto3.register(manager) |
| brain_builtin_inference.register(manager) |
| brain_collections.register(manager) |
| brain_crypt.register(manager) |
| brain_ctypes.register(manager) |
| brain_curses.register(manager) |
| brain_dataclasses.register(manager) |
| brain_datetime.register(manager) |
| brain_dateutil.register(manager) |
| brain_fstrings.register(manager) |
| brain_functools.register(manager) |
| brain_gi.register(manager) |
| brain_hashlib.register(manager) |
| brain_http.register(manager) |
| brain_hypothesis.register(manager) |
| brain_io.register(manager) |
| brain_mechanize.register(manager) |
| brain_multiprocessing.register(manager) |
| brain_namedtuple_enum.register(manager) |
| brain_nose.register(manager) |
| brain_numpy_core_einsumfunc.register(manager) |
| brain_numpy_core_fromnumeric.register(manager) |
| brain_numpy_core_function_base.register(manager) |
| brain_numpy_core_multiarray.register(manager) |
| brain_numpy_core_numerictypes.register(manager) |
| brain_numpy_core_umath.register(manager) |
| brain_numpy_random_mtrand.register(manager) |
| brain_numpy_ma.register(manager) |
| brain_numpy_ndarray.register(manager) |
| brain_numpy_core_numeric.register(manager) |
| brain_pathlib.register(manager) |
| brain_pkg_resources.register(manager) |
| brain_pytest.register(manager) |
| brain_qt.register(manager) |
| brain_random.register(manager) |
| brain_re.register(manager) |
| brain_regex.register(manager) |
| brain_responses.register(manager) |
| brain_scipy_signal.register(manager) |
| brain_signal.register(manager) |
| brain_six.register(manager) |
| brain_sqlalchemy.register(manager) |
| brain_ssl.register(manager) |
| brain_subprocess.register(manager) |
| brain_threading.register(manager) |
| brain_type.register(manager) |
| brain_typing.register(manager) |
| brain_unittest.register(manager) |
| brain_uuid.register(manager) |