Skip to content

Releases: pylint-dev/astroid

v2.11.0

12 Mar 12:13
Compare
Choose a tag to compare
  • Add new (optional) doc_node attribute to nodes.Module, nodes.ClassDef,
    and nodes.FunctionDef.

  • Accessing the doc attribute of nodes.Module, nodes.ClassDef, and
    nodes.FunctionDef has been deprecated in favour of the doc_node attribute.
    Note: doc_node is an (optional) nodes.Const whereas doc was an (optional) str.

  • Passing the doc argument to the __init__ of nodes.Module, nodes.ClassDef,
    and nodes.FunctionDef has been deprecated in favour of the postinit doc_node attribute.
    Note: doc_node is an (optional) nodes.Const whereas doc was an (optional) str.

  • Replace custom cachedproperty with functools.cached_property and deprecate it
    for Python 3.8+.

    Closes #1410

  • Set end_lineno and end_col_offset attributes to None for all nodes
    with PyPy 3.8. PyPy 3.8 assigns these attributes inconsistently which could lead
    to unexpected errors. Overwriting them with None will cause a fallback
    to the already supported way of PyPy 3.7.

  • Add missing shape parameter to numpy zeros_like, ones_like,
    and full_like methods.

    Closes pylint-dev/pylint#5871

  • Only pin wrapt on the major version.

v2.10.0

27 Feb 21:54
Compare
Choose a tag to compare
  • Fixed inference of self in binary operations in which self
    is part of a list or tuple.

    Closes pylint-dev/pylint#4826

  • Fixed builtin inference on property calls not calling the postinit of the new node, which
    resulted in instance arguments missing on these nodes.

  • Fixed a crash on Super.getattr when the attribute was previously uninferable due to a cache
    limit size. This limit can be hit when the inheritance pattern of a class (and therefore of the
    __init__ attribute) is very large.

    Closes pylint-dev/pylint#5679

  • Include names of keyword-only arguments in astroid.scoped_nodes.Lambda.argnames.

    Closes pylint-dev/pylint#5771

  • Fixed a crash inferring on a NewType named with an f-string.

    Closes pylint-dev/pylint#5770

  • Add support for attrs v21.3.0 which
    added a new attrs module alongside the existing attr.

    Closes #1330

  • Use the end_lineno attribute for the NodeNG.tolineno property
    when it is available.

    Closes #1350

  • Add is_dataclass attribute to ClassDef nodes.

  • Use sysconfig instead of distutils to determine the location of
    python stdlib files and packages.

    Related pull requests: #1322, #1323, #1324
    Closes #1282
    Ref #1103

  • Fixed crash with recursion error for inference of class attributes that referenced
    the class itself.

    Closes pylint-dev/pylint#5408

  • Fixed crash when trying to infer items() on the __dict__
    attribute of an imported module.

    Closes #1085

  • Add optional NodeNG.position attribute.
    Used for block nodes to highlight position of keyword(s) and name
    in cases where the AST doesn't provide good enough positional information.
    E.g. nodes.ClassDef, nodes.FunctionDef.

  • Fix ClassDef.fromlineno. For Python < 3.8 the lineno attribute includes decorators.
    fromlineno should return the line of the class statement itself.

  • Performance improvements. Only run expensive decorator functions when
    non-default Deprecation warnings are enabled, eg. during a Pytest run.

    Closes #1383

v2.9.3

09 Jan 16:18
Compare
Choose a tag to compare
  • Fixed regression where packages without a __init__.py file were
    not recognized or imported correctly.

    Closes #1327

v2.9.2

03 Jan 23:16
Compare
Choose a tag to compare
  • Fixed regression in astroid.scoped_nodes where _is_metaclass
    was not accessible anymore.

Closes #1325

v2.9.1

31 Dec 12:28
Compare
Choose a tag to compare
  • 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 pylint-dev/pylint#5461

  • 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 pylint-dev/pylint#3499
    Closes pylint-dev/pylint#4302
    Closes pylint-dev/pylint#4798
    Closes pylint-dev/pylint#5081

v2.9.0

21 Nov 17:16
Compare
Choose a tag to compare
  • 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

v2.8.6

21 Nov 15:14
Compare
Choose a tag to compare
  • Fix crash on inference of subclasses created from Class().__subclasses__

    Closes pylint-dev/pylint#4982

  • Fix bug with Python 3.7.0 / 3.7.1 and typing.NoReturn.

    Closes #1239

v2.8.5

12 Nov 15:12
Compare
Choose a tag to compare
  • Use more permissive versions for the typed-ast dependencie (<2.0 instead of <1.5)

    Closes #1237

  • Fix crash on inference of __len__.

    Closes pylint-dev/pylint#5244

  • 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 pylint-dev/pylint#5178

  • Fix incorrect filtering of assignment expressions statements

v2.8.4

25 Oct 20:05
Compare
Choose a tag to compare
  • 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.

v2.8.3

17 Oct 08:18
Compare
Choose a tag to compare