github pylint-dev/astroid astroid-2.3.0
astroid 2.3.0

latest releases: v3.2.2, v3.2.1, v3.2.0...
4 years ago

Release Date: 2019-09-24

  • Add a brain tip for subprocess.check_output

    Close #689

  • Remove NodeNG.nearest method because of lack of usage in astroid and pylint.

    Close #691

  • Allow importing wheel files. Close #541

  • Annotated AST follows PEP8 coding style when converted to string.

  • Fix a bug where defining a class using type() could cause a DuplicateBasesError.

    Close #644

  • Dropped support for Python 3.4.

  • Numpy brain support is improved.

    Numpy's fundamental type numpy.ndarray has its own brain : brain_numpy_ndarray and
    each numpy module that necessitates brain action has now its own numpy brain :

    • numpy.core.numeric
    • numpy.core.function_base
    • numpy.core.multiarray
    • numpy.core.numeric
    • numpy.core.numerictypes
    • numpy.core.umath
    • numpy.random.mtrand

    Close PyCQA/pylint#2865
    Close PyCQA/pylint#2747
    Close PyCQA/pylint#2721
    Close PyCQA/pylint#2326
    Close PyCQA/pylint#2021

  • assert only functions are properly inferred as returning None

    Close #668

  • Add support for Python 3.8's NamedExpr nodes, which is part of assignment expressions.

    Close #674

  • Added support for inferring IfExp nodes.

  • Instances of exceptions are inferred as such when inferring in non-exception context

    This allows special inference support for exception attributes such as .args.

    Close PyCQA/pylint#2333

  • Drop a superfluous and wrong callcontext when inferring the result of a context manager

    Close PyCQA/pylint#2859

  • igetattr raises InferenceError on re-inference of the same object

    This prevents StopIteration from leaking when we encounter the same
    object in the current context, which could result in various RuntimeErrors
    leaking in other parts of the inference.
    Until we get a global context per inference, the solution is sort of a hack,
    as with the suggested global context improvement, we could theoretically
    reuse the same inference object.

    Close #663

  • Variable annotations can no longer be retrieved with ClassDef.getattr

    Unless they have an attached value, class variable annotations can no longer
    be retrieved with ClassDef.getattr.

  • Improved builtin inference for tuple, set, frozenset, list and dict

    We were properly inferring these callables only if they had consts as
    values, but that is not the case most of the time. Instead we try to infer
    the values that their arguments can be and use them instead of assuming
    Const nodes all the time.

    Close PyCQA/pylint#2841

  • The last except handler wins when inferring variables bound in an except handler.

    Close PyCQA/pylint#2777

  • threading.Lock.locked() is properly recognized as a member of threading.Lock

    Close PyCQA/pylint#2791

  • Fix recursion error involving len and self referential attributes

    Close PyCQA/pylint#2736
    Close PyCQA/pylint#2734
    Close PyCQA/pylint#2740

  • Can access per argument type comments through new Arguments.type_comment_args attribute.

    Close #665

  • Fix being unable to access class attributes on a NamedTuple.

    Close PyCQA/pylint#1628

  • Fixed being unable to find distutils submodules by name when in a virtualenv.

    Close PyCQA/pylint#73

Don't miss a new astroid release

NewReleases is sending notifications on new releases.