134 lines
4.3 KiB
Python
134 lines
4.3 KiB
Python
|
# 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)
|