Skip to content
This repository was archived by the owner on Feb 4, 2022. It is now read-only.

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Jan 9, 2022

This PR updates astroid from 2.5.1 to 2.9.3.

Changelog

2.9.3

============================
Release date: 2022-01-09

* Fixed regression where packages without a ``__init__.py`` file were
not recognized or imported correctly.

Closes 1327

2.9.2

============================
Release date: 2022-01-04

* Fixed regression in ``astroid.scoped_nodes`` where ``_is_metaclass``
was not accessible anymore.

Closes 1325

2.9.1

============================
Release date: 2021-12-31

* ``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.

Ref 1321

* Fix ``deque.insert()`` signature in ``collections`` brain.

Closes 1260

* 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.

Closes PyCQA/pylint5461

* 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).

Closes 823
Closes PyCQA/pylint3499
Closes PyCQA/pylint4302
Closes PyCQA/pylint4798
Closes PyCQA/pylint5081

2.9.0

============================
Release date: 2021-11-21

* Add ``end_lineno`` and ``end_col_offset`` attributes to astroid nodes.

* Always treat ``__class_getitem__`` as a classmethod.

* Add missing ``as_string`` visitor method for ``Unknown`` node.

Closes 1264

2.8.6

============================
Release date: 2021-11-21

* Fix crash on inference of subclasses created from ``Class().__subclasses__``

Closes PyCQA/pylint4982

* Fix bug with Python 3.7.0 / 3.7.1 and ``typing.NoReturn``.

Closes 1239

2.8.5

============================
Release date: 2021-11-12

* Use more permissive versions for the ``typed-ast`` dependency (<2.0 instead of <1.5)

Closes 1237

* Fix crash on inference of ``__len__``.

Closes PyCQA/pylint5244

* Added missing ``kind`` (for ``Const``) and ``conversion`` (for ``FormattedValue``) fields to repr.

* Fix crash with assignment expressions, nested if expressions and filtering of statements

Closes PyCQA/pylint5178

* Fix incorrect filtering of assignment expressions statements

2.8.4

============================
Release date: 2021-10-25

* 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``.

2.8.3

============================
Release date: 2021-10-17

* Add support for wrapt 1.13

* Fixes handling of nested partial functions

Closes PyCQA/pylint2462
Closes 1208

* Fix regression with the import resolver

Closes PyCQA/pylint5131

* Fix crash with invalid dataclass field call

Closes PyCQA/pylint5153

2.8.2

============================
Release date: 2021-10-07

Same content than 2.8.2-dev0 / 2.8.1, released in order to fix a
mistake when creating the tag.

2.8.1

============================
Release date: 2021-10-06

* Adds support of type hints inside numpy's brains.

Closes PyCQA/pylint4326

* Enable inference of dataclass import from pydantic.dataclasses.
This allows the dataclasses brain to recognize pydantic dataclasses.

Closes PyCQA/pylint4899

* Fix regression on ClassDef inference

Closes PyCQA/pylint5030
Closes PyCQA/pylint5036

* Fix regression on Compare node inference

Closes PyCQA/pylint5048

* 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

Closes PyCQA/pylint5059

* 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. Import them from ``pylint.checkers.utils`` instead
(requires pylint ``2.12``).

* Suppress the conditional between applied brains and dynamic import authorized
modules. (Revert the "The transforms related to a module are applied only if this
module has not been explicitly authorized to be imported" of version 2.7.3)

* Adds a brain to infer the ``numpy.ma.masked_where`` function.

Closes PyCQA/pylint3342

2.8.0

============================
Release date: 2021-09-14

* 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

Closes PyCQA/pylint3887

* Add ``node_ancestors`` method to ``NodeNG`` for obtaining the ancestors of nodes.

* It's now possible to infer the value of comparison nodes

Closes 846

* Fixed bug in inference of dataclass field calls.

Closes PyCQA/pylint4963

2.7.3

============================
Release date: 2021-08-30

* 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.

Closes PyCQA/pylint3342
Closes PyCQA/pylint4326

* Fixed bug in attribute inference from inside method calls.

 Closes PyCQA/pylint400

* Fixed bug in inference for superclass instance methods called
from the class rather than an instance.

 Closes 1008
 Closes PyCQA/pylint4377

* Fixed bug in inference of chained attributes where a subclass
had an attribute that was an instance of its superclass.

 Closes PyCQA/pylint4220

* Adds a brain for the ctypes module.

Closes PyCQA/pylint4896

* When processing dataclass attributes, exclude the same type hints from abc.collections
as from typing.

Closes PyCQA/pylint4895

* Apply dataclass inference to pydantic's dataclasses.

Closes PyCQA/pylint4899

2.7.2

============================
Release date: 2021-08-20

* ``BaseContainer`` is now public, and will replace ``_BaseContainer`` completely in astroid 3.0.
* The call cache used by inference functions produced by ``inference_tip``
can now be cleared via ``clear_inference_tip_cache``.

* ``astroid.const.BUILTINS`` and ``astroid.bases.BUILTINS`` are not used internally anymore
and will be removed in astroid 3.0. Simply replace this by the string 'builtins' for better
performances and clarity.

* Add inference for dataclass initializer method.

 Closes PyCQA/pylint3201

2.7.1

============================
Release date: 2021-08-16

* 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``.

2.7.0

============================
Release date: 2021-08-15

* 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 hierarchies

Closes PyCQA/pylint533
Closes PyCQA/pylint2224
Closes PyCQA/pylint2626

* Add inference tips for dataclass attributes, including dataclasses.field calls.
Also add support for InitVar.

Closes PyCQA/pylint2600
Closes PyCQA/pylint2698
Closes PyCQA/pylint3405
Closes PyCQA/pylint3794

* Adds a brain that deals with dynamic import of `IsolatedAsyncioTestCase` class of the `unittest` module.

Closes PyCQA/pylint4060

2.6.6

============================
Release date: 2021-08-03

* Added support to infer return type of ``typing.cast()``

* Fix variable lookup's handling of exclusive statements

Closes PyCQA/pylint3711

* Fix variable lookup's handling of function parameters

Closes PyCQA/astroid180

* Fix variable lookup's handling of except clause variables

* Fix handling of classes with duplicated bases with the same name

Closes PyCQA/astroid1088

2.6.5

============================
Release date: 2021-07-21

* Fix a crash when there would be a 'TypeError object does not support
item assignment' in the code we parse.

Closes PyCQA/pylint4439

* Fix a crash when a AttributeInferenceError was raised when
failing to find the real name in infer_import_from.

Closes PyCQA/pylint4692

2.6.4

============================
Release date: 2021-07-19

* Fix a crash when a StopIteration was raised when inferring
a faulty function in a context manager.

Closes PyCQA/pylint4723

2.6.3

============================
Release date: 2021-07-19

* Added ``If.is_sys_guard`` and ``If.is_typing_guard`` helper methods

* Fix a bad inferenece type for yield values inside of a derived class.

Closes PyCQA/astroid1090

* Fix a crash when the node is a 'Module' in the brain builtin inference

Closes PyCQA/pylint4671

* Fix issues when inferring match variables

Closes PyCQA/pylint4685

* Fix lookup for nested non-function scopes

* Fix issue that ``TypedDict`` instance wasn't callable.

Closes PyCQA/pylint4715

* Add dependency on setuptools and a guard to prevent related exceptions.

2.6.2

============================
Release date: 2021-06-30

* Fix a crash when the inference of the length of a node failed

Closes PyCQA/pylint4633

* Fix unhandled StopIteration during inference, following the implementation
of PEP479 in python 3.7+

Closes PyCQA/pylint4631
Closes 1080

2.6.1

============================
Release date: 2021-06-29

* Fix issue with ``TypedDict`` for Python 3.9+

Closes PyCQA/pylint4610

2.6.0

============================
Release date: 2021-06-22

* Appveyor and travis are no longer used in the continuous integration

* ``setuptools_scm`` has been removed and replaced by ``tbump`` in order to not
have hidden runtime dependencies to setuptools

* ``NodeNg``, the base node class, is now accessible from ``astroid`` or
``astroid.nodes`` as it can be used for typing.

* Update enum brain to improve inference of .name and .value dynamic class
attributes

Closes PyCQA/pylint1932
Closes PyCQA/pylint2062
Closes PyCQA/pylint2306

* Removed ``Repr``, ``Exec``, and ``Print`` nodes as the ``ast`` nodes
they represented have been removed with the change to Python 3

* Deprecate ``Ellipsis`` node. It will be removed with the next minor release.
Checkers that already support Python 3.8+ work without issues. It's only
necessary to remove all references to the ``astroid.Ellipsis`` node.
This changes will make development of checkers easier as the resulting tree for Ellipsis
will no longer depend on the python version. **Background**: With Python 3.8 the
``ast.Ellipsis`` node, along with ``ast.Str``, ``ast.Bytes``, ``ast.Num``,
and ``ast.NamedConstant`` were merged into ``ast.Constant``.

* Deprecated ``Index`` and ``ExtSlice`` nodes. They will be removed with the
next minor release. Both are now part of the ``Subscript`` node.
Checkers that already support Python 3.9+ work without issues.
It's only necessary to remove all references to the ``astroid.Index`` and
``astroid.ExtSlice`` nodes. This change will make development of checkers
easier as the resulting tree for ``ast.Subscript`` nodes will no longer
depend on the python version. **Background**: With Python 3.9 ``ast.Index``
and ``ast.ExtSlice`` were merged into the ``ast.Subscript`` node.

* Updated all Match nodes to be internally consistent.

* Add ``Pattern`` base class.

2.5.8

============================
Release date: 2021-06-07

* Improve support for Pattern Matching

* Add lineno and col_offset for ``Keyword`` nodes and Python 3.9+

* Add global inference cache to speed up inference of long statement blocks

* Add a limit to the total number of nodes inferred indirectly as a result
of inferring some node

2.5.7

============================
Release date: 2021-05-09

* Fix six.with_metaclass transformation so it doesn't break user defined transformations.

* Fix detection of relative imports.
Closes 930
Closes PyCQA/pylint4186

* Fix inference of instance attributes defined in base classes

Closes 932

* Update `infer_named_tuple` brain to reject namedtuple definitions
that would raise ValueError

Closes 920

* Do not set instance attributes on builtin object()

Closes 945
Closes PyCQA/pylint4232
Closes PyCQA/pylint4221
Closes PyCQA/pylint3970
Closes PyCQA/pylint3595

* Fix some spurious cycles detected in ``context.path`` leading to more cases
that can now be inferred

Closes 926

* Add ``kind`` field to ``Const`` nodes, matching the structure of the built-in ast Const.
The kind field is "u" if the literal is a u-prefixed string, and ``None`` otherwise.

Closes 898

* Fix property inference in class contexts for properties defined on the metaclass

Closes 940

* Update enum brain to fix definition of __members__ for subclass-defined Enums

Closes PyCQA/pylint3535
Closes PyCQA/pylint4358

* Update random brain to fix a crash with inference of some sequence elements

Closes 922

* Fix inference of attributes defined in a base class that is an inner class

Closes 904

* Allow inferring a return value of None for non-abstract empty functions and
functions with no return statements (implicitly returning None)

Closes 485

* scm_setuptools has been added to the packaging.

* Astroid's tags are now the standard form ``vX.Y.Z`` and not ``astroid-X.Y.Z`` anymore.

* Add initial support for Pattern Matching in Python 3.10

2.5.6

============================
Release date: 2021-04-25

* Fix retro-compatibility issues with old version of pylint
Closes PyCQA/pylint4402

2.5.5

============================
Release date: 2021-04-24

* Fixes the discord link in the project urls of the package.
Closes PyCQA/pylint4393

2.5.4

============================
Release date: 2021-04-24

* The packaging is now done via setuptools exclusively. ``doc``, ``tests``, and ``Changelog`` are
not packaged anymore - reducing the size of the package greatly.

* Debian packaging is now  (officially) done in https://salsa.debian.org/python-team/packages/astroid.

* ``__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``

Closes PyCQA/pylint4383

* 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.

* Moved from appveyor and travis to Github Actions for continuous integration.

2.5.3

============================
Release date: 2021-04-10

* 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.

Closes PyCQA/pylint4206

* 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__``

Closes PyCQA/pylint2822

2.5.2

============================
Release date: 2021-03-28

* Detects `import numpy` as a valid `numpy` import.

Closes PyCQA/pylint3974

* Iterate over ``Keywords`` when using ``ClassDef.get_children``

Closes PyCQA/pylint3202
Links

@pyup-bot pyup-bot mentioned this pull request Jan 9, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants