./devel/py-astroid, Rebuild a new abstract syntax tree from Pythons ast

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.3.5, Package name: py312-astroid-3.3.5, Maintainer: kamel.derouiche

The aim of this module is to provide a common base representation of Python
source code. It is currently the library powering pylint's capabilities.

It provides a compatible representation which comes from the _ast module. It
rebuilds the tree generated by the builtin _ast module by recursively walking
down the AST and building an extended ast. The new node classes have additional
methods and attributes for different usages. They include some support for
static inference and local name scopes. Furthermore, astroid can also build
partial trees by inspecting living objects.


Required to run:
[devel/py-setuptools] [lang/py-six] [devel/py-wrapt] [devel/py-lazy-object-proxy] [devel/py-typed-ast] [lang/python37]

Required to build:
[pkgtools/cwrappers] [devel/py-test-runner]

Master sites:

Filesize: 387.919 KB

Version history: (Expand)


CVS history: (Expand)


   2024-02-25 16:19:11 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
py-astroid: update to 3.1.0.

    Include PEP 695 (Python 3.12) generic type syntax nodes in get_children(),
    allowing checkers to visit them.
    Refs pylint-dev/pylint#9193
    Add __main__ as a possible inferred value for __name__ to improve
    control flow inference around if __name__ == "__main__": guards.
    Closes #2071
    Following a deprecation period, the names arg to the Import constructor and
    the op arg to the BoolOp constructor are now required, and the doc args
    to the PartialFunction and Property constructors have been removed (call
    postinit(doc_node=...) instead.)
    Following a deprecation announced in astroid 1.5.0, the alias \ 
AstroidBuildingException is removed in favor of AstroidBuildingError.
    Include modname in AST warnings. Useful for invalid escape sequence warnings
    with Python 3.12.
    RecursionError is now trapped and logged out as UserWarning during astroid \ 
node transformations with instructions about raising the system recursion limit.
    Closes pylint-dev/pylint#8842
    Suppress SyntaxWarning for invalid escape sequences on Python 3.12 when \ 
parsing modules.
    Closes pylint-dev/pylint#9322
   2024-02-06 22:49:58 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-astroid: updated to 3.0.3

What's New in astroid 3.0.3?

* Fix type of ``UnicodeDecodeError.object`` inferred as ``str`` instead of ``bytes``.
* Fix ``no-member`` false positives for ``args`` and ``kwargs`` on ``ParamSpec`` \ 
under Python 3.12.
   2023-12-12 18:13:56 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-astroid: updated to 3.0.2

What's New in astroid 3.0.2?

Avoid duplicate inference results for some uses of typing.X constructs like
Tuple[Optional[int], ...]. This was causing pylint to occasionally omit
messages like deprecated-typing-alias.
   2023-10-28 21:57:26 by Thomas Klausner | Files touched by this commit (516) | Package updated
Log message:
python/wheel.mk: simplify a lot, and switch to 'installer' for installation

This follows the recommended bootstrap method (flit_core, build, installer).

However, installer installs different files than pip, so update PLISTs
for all packages using wheel.mk and bump their PKGREVISIONs.
   2023-10-16 10:55:40 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-astroid: updated to 3.0.1

v3.0.1

Fix crashes linting code using PEP 695 (Python 3.12) generic type syntax.
   2023-10-09 19:38:30 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-astroid: updated to 3.0.0

What's New in astroid 3.0.0?
=============================

* Add support for Python 3.12, including PEP 695 type parameter syntax.

* Remove support for Python 3.7.

* Use the global inference cache when inferring, even without an explicit
  ``InferenceContext``. This is a significant performance improvement given how
  often methods default to ``None`` for the context argument. (Linting ``astroid``
  itself now takes ~5% less time on Python 3.12; other projects requiring more
  complex inference calculations will see greater speedups.)

* Following a deprecation period starting in astroid 2.7.0, the \ 
``astroid.node_classes``
  and ``astroid.scoped_nodes`` modules have been removed in favor of \ 
``astroid.nodes.node_classes``
  and ``astroid.nodes.scoped_nodes``.

* Following a deprecation period starting in astroid 2.12.0, the \ 
``astroid.mixins`` module
  has been removed in favor of ``astroid.nodes._base_nodes`` (private).

* Return all existing arguments when calling ``Arguments.arguments()``. This \ 
also means ``find_argname`` will now
  use the whole list of arguments for its search.

* Exclude class attributes from the ``__members__`` container of an ``Enum`` \ 
class when they are
  ``nodes.AnnAssign`` nodes with no assigned value.

* Remove ``@cached`` and ``@cachedproperty`` decorator (just use \ 
``@cached_property`` from the stdlib).

* Remove the ``inference`` module. Node inference methods are now in the module
  defining the node, rather than being associated to the node afterward.

* Move ``LookupMixIn`` to ``astroid.nodes._base_nodes`` and make it private.

* Remove the shims for ``OperationError``, ``BinaryOperationError``, and \ 
``UnaryOperationError``
  in ``exceptions``. They were moved to ``util`` in astroid 1.5.0.

* Move ``safe_infer()`` from ``helpers`` to ``util``. This avoids some circular \ 
imports.

* Reduce file system access in ``ast_from_file()``.

* Reduce time to ``import astroid`` by delaying ``astroid_bootstrapping()`` until
  the first instantiation of ``AstroidBuilder``.

* Make ``igetattr()`` idempotent. This addresses some reports of varying results
  when running pylint with ``--jobs``.

* Fix incorrect cache keys for inference results, thereby correctly inferring types
  for calls instantiating types dynamically.

* Fix interrupted ``InferenceContext`` call chains, thereby addressing performance
  problems when linting ``sqlalchemy``.

* ``nodes.FunctionDef`` no longer inherits from ``nodes.Lambda``.
  This is a breaking change but considered a bug fix as the nodes did not share \ 
the same
  API and were not interchangeable.

  We have tried to minimize the amount of breaking changes caused by this change
  but some are unavoidable.

* ``infer_call_result`` now shares the same interface across all \ 
implementations. Namely:
  ```python
  def infer_call_result(
                self,
                caller: SuccessfulInferenceResult | None,
                context: InferenceContext | None = None,
            ) -> Iterator[InferenceResult]:
  ```

  This is a breaking change for ``nodes.FunctionDef`` where previously \ 
``caller`` had a default of
  ``None``. Passing ``None`` again will not create a behaviour change.
  The breaking change allows us to better type and re-use the method within \ 
``astroid``.

* Improved signature of the ``__init__`` and ``__postinit__`` methods of most nodes.
  This includes making ``lineno``, ``col_offset``, ``end_lineno``, \ 
``end_col_offset`` and ``parent``
  required arguments for ``nodes.NodeNG`` and its subclasses.
  For most other nodes, arguments of their ``__postinit__`` methods have been \ 
made required to better
  represent how they would normally be constructed by the standard library \ 
``ast`` module.
   2023-09-28 17:55:46 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-astroid: updated to 2.15.8

v2.15.8
Fix a regression in 2.15.7 for unsubscriptable-object.

v2.15.7
Fix a crash when inferring a typing.TypeVar call.

Infer user-defined enum classes by checking if the class is a subtype of enum.Enum.

Fix inference of functions with @functools.lru_cache decorators without
parentheses.

Make sys.argv uninferable because it never is. (It's impossible to infer
the value it will have outside of static analysis where it's our own value.)v2.15.7
Fix a crash when inferring a typing.TypeVar call.

Infer user-defined enum classes by checking if the class is a subtype of enum.Enum.

Fix inference of functions with @functools.lru_cache decorators without
parentheses.

Make sys.argv uninferable because it never is. (It's impossible to infer
the value it will have outside of static analysis where it's our own value.)
   2023-07-10 05:41:20 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-astroid: updated to 2.15.6

What's New in astroid 2.15.6?
=============================
* Harden ``get_module_part()`` against ``"."``.
* Avoid expensive list/tuple multiplication operations that would result in \ 
``MemoryError``.