- update to 2.15.3:
* Fix ``infer_call_result()`` crash on methods called
``with_metaclass()``
* Suppress ``UserWarning`` when finding module specs.
- update to 2.15.2:
* Support more possible usages of ``attrs`` decorators.
* Restore behavior of setting a Call as a base for classes
created using ``six.with_metaclass()``,
and harden support for using enums as metaclasses in this
case.
* astroid now supports ``TryStar`` nodes from python 3.11 and
should be fully compatible with python 3.11.
* ``Formattedvalue.postinit`` is now keyword only. This is to
allow correct typing of the ``Formattedvalue`` class.
* ``Astroid`` now supports custom import hooks.
* ``astroid`` now infers return values from match cases.
* ``AstroidManager.clear_cache`` now also clears the inference
context cache.
* ``Astroid`` now retrieves the default values of keyword only
arguments and sets them on ``Arguments.kw_defaults``.
* ``Uninferable`` now has the type ``UninferableBase``. This is
to facilitate correctly type annotating code that uses this
singleton.
* Deprecate ``modutils.is_standard_module()``. It will be
removed in the next minor release.
* Fix ``are_exclusive`` function when a walrus operator is used
inside ``IfExp.test`` field.
OBS-URL: https://build.opensuse.org/request/show/1080002
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-astroid?expand=0&rev=42
* Support more possible usages of ``attrs`` decorators.
* Restore behavior of setting a Call as a base for classes
created using ``six.with_metaclass()``,
and harden support for using enums as metaclasses in this
case.
* astroid now supports ``TryStar`` nodes from python 3.11 and
should be fully compatible with python 3.11.
* ``Formattedvalue.postinit`` is now keyword only. This is to
allow correct typing of the ``Formattedvalue`` class.
* ``Astroid`` now supports custom import hooks.
* ``astroid`` now infers return values from match cases.
* ``AstroidManager.clear_cache`` now also clears the inference
context cache.
* ``Astroid`` now retrieves the default values of keyword only
arguments and sets them on ``Arguments.kw_defaults``.
* ``Uninferable`` now has the type ``UninferableBase``. This is
to facilitate correctly type annotating code that uses this
singleton.
* Deprecate ``modutils.is_standard_module()``. It will be
removed in the next minor release.
* Fix ``are_exclusive`` function when a walrus operator is used
inside ``IfExp.test`` field.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=82
* Handle the effect of properties on the __init__ of a dataclass
correctly.
* Handle the effect of kw_only=True in dataclass fields correctly.
* Handle the effect of init=False in dataclass fields correctly.
* Fix crash if numpy module doesn't have version attribute.
* Handle AttributeError during str.format template inference tip
evaluation
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=80
- Update to Version 2.12.8
* Fixed a crash in the ``dataclass`` brain for ``InitVars`` without subscript typing.
Closes PyCQA/pylint#7422
* Fixed parsing of default values in ``dataclass`` attributes.
Closes PyCQA/pylint#7425
- Update to Version 2.12.7
* Fixed a crash in the ``dataclass`` brain for uninferable bases.
Closes PyCQA/pylint#7418
- Update to Version 2.12.6
* Fix a crash involving ``Uninferable`` arguments to ``namedtuple()``.
Closes PyCQA/pylint#7375
* The ``dataclass`` brain now understands the ``kw_only`` keyword in dataclass decorators.
Closes PyCQA/pylint#7290
- Update to Version 2.12.5
* Prevent first-party imports from being resolved to `site-packages`.
Refs PyCQA/pylint#7365
* Fix ``astroid.interpreter._import.util.is_namespace()`` incorrectly
returning ``True`` for frozen stdlib modules on PyPy.
Closes#1755
OBS-URL: https://build.opensuse.org/request/show/1005503
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=71
- update to 2.9.3:
* Fixed regression where packages without a ``__init__.py`` file were
not recognized or imported correctly.
* Fixed regression in ``astroid.scoped_nodes`` where ``_is_metaclass``
was not accessible anymore.
* ``NodeNG.frame()`` and ``NodeNG.statement()`` will start raising ``ParentMissingError``
instead of ``AttributeError`` in astroid 3.0. This behaviour can already be triggered
by passing ``future=True`` to a ``frame()`` or ``statement()`` call.
* Prefer the module loader get_source() method in AstroidBuilder's
module_build() when possible to avoid assumptions about source
code being available on a filesystem. Otherwise the source cannot
be found and application behavior changes when running within an
embedded hermetic interpreter environment (pyoxidizer, etc.).
* Require Python 3.6.2 to use astroid.
* Removed custom ``distutils`` handling for resolving paths to submodules.
* Fix ``deque.insert()`` signature in ``collections`` brain.
* Fix ``Module`` nodes not having a ``col_offset``, ``end_lineno``, and ``end_col_offset``
attributes.
* Fix typing and update explanation for ``Arguments.args`` being ``None``.
* Fix crash if a variable named ``type`` is subscripted in a generator expression.
* Enable inference of dataclass import from marshmallow_dataclass.
This allows the dataclasses brain to recognize dataclasses annotated by marshmallow_dataclass.
* Resolve symlinks in the import path
Fixes inference error when the import path includes symlinks (e.g. Python
installed on macOS via Homebrew).
OBS-URL: https://build.opensuse.org/request/show/946671
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-astroid?expand=0&rev=35
* Fixed regression where packages without a ``__init__.py`` file were
not recognized or imported correctly.
* Fixed regression in ``astroid.scoped_nodes`` where ``_is_metaclass``
was not accessible anymore.
* ``NodeNG.frame()`` and ``NodeNG.statement()`` will start raising ``ParentMissingError``
instead of ``AttributeError`` in astroid 3.0. This behaviour can already be triggered
by passing ``future=True`` to a ``frame()`` or ``statement()`` call.
* Prefer the module loader get_source() method in AstroidBuilder's
module_build() when possible to avoid assumptions about source
code being available on a filesystem. Otherwise the source cannot
be found and application behavior changes when running within an
embedded hermetic interpreter environment (pyoxidizer, etc.).
* Require Python 3.6.2 to use astroid.
* Removed custom ``distutils`` handling for resolving paths to submodules.
* Fix ``deque.insert()`` signature in ``collections`` brain.
* Fix ``Module`` nodes not having a ``col_offset``, ``end_lineno``, and ``end_col_offset``
attributes.
* Fix typing and update explanation for ``Arguments.args`` being ``None``.
* Fix crash if a variable named ``type`` is subscripted in a generator expression.
* Enable inference of dataclass import from marshmallow_dataclass.
This allows the dataclasses brain to recognize dataclasses annotated by marshmallow_dataclass.
* Resolve symlinks in the import path
Fixes inference error when the import path includes symlinks (e.g. Python
installed on macOS via Homebrew).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=68
- update to 2.8.5:
* Use more permissive versions for the ``typed-ast`` dependencie
(<2.0 instead of <1.5)
* Fix crash on inference of ``__len__``.
* Added missing ``kind`` (for ``Const``) and ``conversion``
(for ``FormattedValue``) fields to repr.
* Fix crash with assignment expressions, nested if expressions
and filtering of statements
* Fix incorrect filtering of assignment expressions statements
OBS-URL: https://build.opensuse.org/request/show/931287
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-astroid?expand=0&rev=33
* Use more permissive versions for the ``typed-ast`` dependencie
(<2.0 instead of <1.5)
* Fix crash on inference of ``__len__``.
* Added missing ``kind`` (for ``Const``) and ``conversion``
(for ``FormattedValue``) fields to repr.
* Fix crash with assignment expressions, nested if expressions
and filtering of statements
* Fix incorrect filtering of assignment expressions statements
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=66
- Update to 2.8.4
* Fix the ``scope()`` and ``frame()`` methods of ``NamedExpr``
nodes. When these nodes occur in ``Arguments``, ``Keyword`` or
``Comprehension`` nodes these methods now correctly point to
the outer-scope of the ``FunctionDef``, ``ClassDef``, or
``Comprehension``.
* Fix the ``set_local`` function for ``NamedExpr`` nodes. When
these nodes occur in ``Arguments``, ``Keyword``, or
``Comprehension`` nodes these nodes are now correctly added to
the locals of the ``FunctionDef``, ``ClassDef``, or
``Comprehension``.
- Release 2.8.3?
* Add support for wrapt 1.13
* Fixes handling of nested partial functions
* Fix regression with the import resolver
* Fix crash with invalid dataclass field call
- Release 2.8.1
* Adds support of type hints inside numpy's brains.
* Enable inference of dataclass import from pydantic.dataclasses.
This allows the dataclasses brain to recognize pydantic
dataclasses.
* Fix regression on ClassDef inference
* Fix regression on Compare node inference
* Extended attrs brain to support the provisional APIs
* Astroid does not trigger it's own deprecation warning anymore.
* Improve brain for ``typing.Callable`` and ``typing.Type``.
* Fix bug with importing namespace packages with relative imports
* The ``is_typing_guard`` and ``is_sys_guard`` functions are
deprecated and will be removed in 3.0.0. They are complex
meta-inference functions that are better suited for pylint.
OBS-URL: https://build.opensuse.org/request/show/927778
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=65
- Update to 2.8.0
* Add additional deprecation warnings in preparation for astroid
3.0
* Require attributes for some node classes with ``__init__``
call.
* ``name`` (``str``) for ``Name``, ``AssignName``,
``DelName``
* ``attrname`` (``str``) for ``Attribute``, ``AssignAttr``,
``DelAttr``
* ``op`` (``str``) for ``AugAssign``, ``BinOp``, ``BoolOp``,
``UnaryOp``
* ``names`` (``list[tuple[str, str | None]]``) for ``Import``
* Support pyz imports
* Add ``node_ancestors`` method to ``NodeNG`` for obtaining the
ancestors of nodes.
* It's now possible to infer the value of comparison nodes
* Fixed bug in inference of dataclass field calls.
- Release 2.7.3
* The transforms related to a module are applied only if this
module has not been explicitly authorized to be imported
(i.e is not in AstroidManager.extension_package_whitelist).
Solves the following issues if numpy is authorized to be
imported through the `extension-pkg-allow-list` option.
* Fixed bug in attribute inference from inside method calls.
* Fixed bug in inference for superclass instance methods called
from the class rather than an instance.
* Fixed bug in inference of chained attributes where a subclass
had an attribute that was an instance of its superclass.
* Adds a brain for the ctypes module.
* When processing dataclass attributes, exclude the same type
OBS-URL: https://build.opensuse.org/request/show/922892
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=64
- Update to 2.7.1
* When processing dataclass attributes, only do typing inference on collection types.
Support for instantiating other typing types is left for the future, if desired.
Closes#1129
* Fixed LookupMixIn missing from ``astroid.node_classes``.
- from version 2.7.0
* Import from ``astroid.node_classes`` and ``astroid.scoped_nodes`` has been deprecated in favor of
``astroid.nodes``. Only the imports from ``astroid.nodes`` will work in astroid 3.0.0.
* Add support for arbitrary Enum subclass hierachies
ClosesPyCQA/pylint#533ClosesPyCQA/pylint#2224ClosesPyCQA/pylint#2626
* Add inference tips for dataclass attributes, including dataclasses.field calls.
Also add support for InitVar.
ClosesPyCQA/pylint#2600ClosesPyCQA/pylint#2698ClosesPyCQA/pylint#3405ClosesPyCQA/pylint#3794
* Adds a brain that deals with dynamic import of `IsolatedAsyncioTestCase` class of the `unittest` module.
ClosesPyCQA/pylint#4060
- from version 2.6.6
* Added support to infer return type of ``typing.cast()``
* Fix variable lookup's handling of exclusive statements
ClosesPyCQA/pylint#3711
* Fix variable lookup's handling of function parameters
ClosesPyCQA/astroid#180
* Fix variable lookup's handling of except clause variables
* Fix handling of classes with duplicated bases with the same name
ClosesPyCQA/astroid#1088
- from version 2.6.5
OBS-URL: https://build.opensuse.org/request/show/913116
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=62
- Update to 2.5.6
* Fix retro-compatibility issues with old version of pylint
ClosesPyCQA/pylint#4402
* Fixes the discord link in the project urls of the package.
ClosesPyCQA/pylint#4393
* The packaging is now done via setuptools exclusively.
doc, tests, and Changelog are not packaged anymore - reducing
the size of the package greatly.
* __pkginfo__ now only contain __version__ (also accessible with
astroid.__version__), other meta-information are still
accessible with import importlib;metadata.metadata('astroid').
* Added inference tip for typing.Tuple alias
* Fix crash when evaluating typing.NamedTuple
ClosesPyCQA/pylint#4383
* COPYING was removed in favor of COPYING.LESSER and the latter
was renamed to LICENSE to make more apparent that the code is
licensed under LGPLv2 or later.
* Takes into account the fact that subscript inferring for a
ClassDef may involve class_getitem method
* Reworks the collections and typing brain so that pylint`s
acceptance tests are fine.
ClosesPyCQA/pylint#4206
* Use inference_tip for typing.TypedDict brain.
* Fix mro for classes that inherit from typing.Generic
* Add inference tip for typing.Generic and typing.Annotated with
__class_getitem__
ClosesPyCQA/pylint#2822
* Detects import numpy as a valid numpy import.
ClosesPyCQA/pylint#3974
* Iterate over Keywords when using ClassDef.get_children
OBS-URL: https://build.opensuse.org/request/show/891337
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=60
- Update to 2.5.1
* The context.path is reverted to a set because otherwise it
leads to false positives for non `numpy` functions.
* Don't transform dataclass ClassVars
* Improve typing.TypedDict inference
* Fix the `Duplicates found in MROs` false positive.
- Release 2.5.0
* Adds `attr_fset` in the `PropertyModel` class.
* Remove support for Python 3.5.
* Remove the runtime dependency on six. The six brain
remains in astroid.
* Enrich the brain_collection module so that __class_getitem__
method is added to `deque` for
python version above 3.9.
* The context.path is now a dict and the context.push method
returns True if the node has been visited a certain amount of
times.
* Adds a brain for type object so that it is possible to write
`type[int]` in annotation.
* Add __class_getitem__ method to subprocess.Popen brain under
Python 3.9 so that it is seen as subscriptable by pylint.
* Adds `degrees`, `radians`, which are `numpy ufunc` functions,
in the `numpy` brain. Adds `random` function in the `numpy.
random` brain.
* Fix deprecated importlib methods
* Fix a crash in inference caused by `Uninferable` container
elements
* Add `python 3.9` support.
* The flat attribute of numpy.ndarray is now inferred as an
numpy.ndarray itself. It should be a numpy.flatiter instance,
but this class is not yet available in the numpy brain.
* Fix a bug for dunder methods inference of function objects
* Fixes a bug in the signature of the ndarray.__or__ method,
in the brain_numpy_ndarray.py module.
* Fixes a to-list cast bug in starred_assigned_stmts method,
in the protocols.py` module.
* Added a brain for hypothesis.strategies.composite
* The transpose of a numpy.ndarray is also a numpy.ndarray
* Added a brain for sqlalchemy.orm.session
* Separate string and bytes classes patching
* Prevent recursion error for self referential length calls
* Added missing methods to the brain for mechanize, to fix
pylint false positives
* Added more supported parameters to subprocess.check_output
* Fix recursion errors with pandas
* Added exception inference for `UnicodeDecodeError`
* `FunctionDef.is_generator` properly handles `yield` nodes in
`If` tests
* Fixed exception-chaining error messages.
* Fix failure to infer base class type with multiple inheritance
and qualified names
* Fix interpretation of six.with_metaclass class definitions.
* Reduce memory usage of astroid's module cache.
* Remove dependency on `imp`.
* Do not crash when encountering starred assignments in enums.
* Fix a crash in functools.partial inference when the arguments
cannot be determined
* Fix a crash caused by a lookup of a monkey-patched method
* is_generator correctly considers `Yield` nodes in `AugAssign`
nodes
This fixes a false positive with the
`assignment-from-no-return` pylint check.
* Corrected the parent of function type comment nodes.
These nodes used to be parented to their original ast.
FunctionDef parent but are now correctly parented to their
astroid.FunctionDef parent.
- Drop part_rm_dep_imp.patch fixed upstream
- Drop unpin-deps.patch unpinned upstream
OBS-URL: https://build.opensuse.org/request/show/880419
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=58
* Handle the case where the raw builder fails to retrieve the ``__all__`` attribute
* Restructure the AST parsing heuristic to always pick the same module
* Changed setup.py to work with [distlib](https://pypi.org/project/distlib)
* Do not crash with SyntaxError when parsing namedtuples with invalid label
* Protect against ``infer_call_result`` failing with `InferenceError` in `Super.getattr()`
* Expose a ast_from_string method in AstroidManager, which will accept
* ``BoundMethod.implicit_parameters`` returns a proper value for ``__new__``
* Allow slots added dynamically to a class to still be inferred
* Allow `FunctionDef.getattr` to look into both instance attrs and special attributes
* Infer qualified ``classmethod`` as a classmethod.
* Prevent a recursion error to happen when inferring the declared metaclass of a class
* Raise ``AttributeInferenceError`` when ``getattr()`` receives an empty name
* Prevent a recursion error for self reference variables and `type()` calls.
* Do not infer the first argument of a staticmethod in a metaclass as the class itself
* ``NodeNG.bool_value()`` gained an optional ``context`` parameter
* Pass a context argument to ``astroid.Arguments`` to prevent recursion errors
* Better inference of class and static methods decorated with custom methods
* Reverse the order of decorators for `infer_subscript`
* Prevent a recursion error when inferring self-referential variables without definition
* Numpy `datetime64.astype` return value is inferred as a `ndarray`.
* Skip non ``Assign`` and ``AnnAssign`` nodes from enum reinterpretation
* Numpy ``ndarray`` attributes ``imag`` and ``real`` are now inferred as ``ndarray``.
* Added a call to ``register_transform`` for all functions of the ``brain_numpy_core_multiarray``
* Use the parent of the node when inferring aug assign nodes instead of the statement
* Added some functions to the ``brain_numpy_core_umath`` module
* Added some functions of the ``numpy.core.multiarray`` module
* All the ``numpy ufunc`` functions derived now from a common class that
* ``nodes.Const.itered`` returns a list of ``Const`` nodes, not strings
* The ``shape`` attribute of a ``numpy ndarray`` is now a ``ndarray``
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=50
- Add patch to not use pinned dependencies and to work in our distro:
* unpin-deps.patch
- Update to 2.3.1
* A transform for the builtin `dataclasses` module was added.
* Add a brain tip for ``subprocess.check_output``
* Remove NodeNG.nearest method because of lack of usage in astroid and pylint.
* Allow importing wheel files.
* Dropped support for Python 3.4.
* Add support for Python 3.8's `NamedExpr` nodes, which is part of assignment expressions.
* ...and more.
OBS-URL: https://build.opensuse.org/request/show/734939
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-astroid?expand=0&rev=20