/usr/share/cagefs-skeleton/opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/brain
# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html # For details: https://github.com/PyCQA/astroid/blob/main/LICENSE # Copyright (c) https://github.com/PyCQA/astroid/blob/main/CONTRIBUTORS.txt from __future__ import annotations import collections.abc from typing import TypeVar from astroid import nodes from astroid.manager import AstroidManager _NodeT = TypeVar("_NodeT", bound=nodes.NodeNG) def _clone_node_with_lineno( node: _NodeT, parent: nodes.NodeNG, lineno: int | None ) -> _NodeT: cls = node.__class__ other_fields = node._other_fields _astroid_fields = node._astroid_fields init_params = {"lineno": lineno, "col_offset": node.col_offset, "parent": parent} postinit_params = {param: getattr(node, param) for param in _astroid_fields} if other_fields: init_params.update({param: getattr(node, param) for param in other_fields}) new_node = cls(**init_params) if hasattr(node, "postinit") and _astroid_fields: for param, child in postinit_params.items(): if child and not isinstance(child, collections.abc.Sequence): cloned_child = _clone_node_with_lineno( node=child, lineno=new_node.lineno, parent=new_node ) postinit_params[param] = cloned_child new_node.postinit(**postinit_params) return new_node def _transform_formatted_value( # pylint: disable=inconsistent-return-statements node: nodes.FormattedValue, ) -> nodes.FormattedValue | None: if node.value and node.value.lineno == 1: if node.lineno != node.value.lineno: new_node = nodes.FormattedValue( lineno=node.lineno, col_offset=node.col_offset, parent=node.parent ) new_value = _clone_node_with_lineno( node=node.value, lineno=node.lineno, parent=new_node ) new_node.postinit( value=new_value, conversion=node.conversion, format_spec=node.format_spec, ) return new_node # TODO: this fix tries to *patch* http://bugs.python.org/issue29051 # The problem is that FormattedValue.value, which is a Name node, # has wrong line numbers, usually 1. This creates problems for pylint, # which expects correct line numbers for things such as message control. AstroidManager().register_transform(nodes.FormattedValue, _transform_formatted_value)
.
Edit
..
Edit
__init__.py
Edit
__pycache__
Edit
brain_argparse.py
Edit
brain_attrs.py
Edit
brain_boto3.py
Edit
brain_builtin_inference.py
Edit
brain_collections.py
Edit
brain_crypt.py
Edit
brain_ctypes.py
Edit
brain_curses.py
Edit
brain_dataclasses.py
Edit
brain_dateutil.py
Edit
brain_fstrings.py
Edit
brain_functools.py
Edit
brain_gi.py
Edit
brain_hashlib.py
Edit
brain_http.py
Edit
brain_hypothesis.py
Edit
brain_io.py
Edit
brain_mechanize.py
Edit
brain_multiprocessing.py
Edit
brain_namedtuple_enum.py
Edit
brain_nose.py
Edit
brain_numpy_core_einsumfunc.py
Edit
brain_numpy_core_fromnumeric.py
Edit
brain_numpy_core_function_base.py
Edit
brain_numpy_core_multiarray.py
Edit
brain_numpy_core_numeric.py
Edit
brain_numpy_core_numerictypes.py
Edit
brain_numpy_core_umath.py
Edit
brain_numpy_ma.py
Edit
brain_numpy_ndarray.py
Edit
brain_numpy_random_mtrand.py
Edit
brain_numpy_utils.py
Edit
brain_pathlib.py
Edit
brain_pkg_resources.py
Edit
brain_pytest.py
Edit
brain_qt.py
Edit
brain_random.py
Edit
brain_re.py
Edit
brain_regex.py
Edit
brain_responses.py
Edit
brain_scipy_signal.py
Edit
brain_signal.py
Edit
brain_six.py
Edit
brain_sqlalchemy.py
Edit
brain_ssl.py
Edit
brain_subprocess.py
Edit
brain_threading.py
Edit
brain_type.py
Edit
brain_typing.py
Edit
brain_unittest.py
Edit
brain_uuid.py
Edit
helpers.py
Edit