Skip to content

astroid 2.3.0

Compare
Choose a tag to compare
@PCManticore PCManticore released this 27 Apr 09:59

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 pylint-dev/pylint#2865
    Close pylint-dev/pylint#2747
    Close pylint-dev/pylint#2721
    Close pylint-dev/pylint#2326
    Close pylint-dev/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 pylint-dev/pylint#2333

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

    Close pylint-dev/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 pylint-dev/pylint#2841

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

    Close pylint-dev/pylint#2777

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

    Close pylint-dev/pylint#2791

  • Fix recursion error involving len and self referential attributes

    Close pylint-dev/pylint#2736
    Close pylint-dev/pylint#2734
    Close pylint-dev/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 pylint-dev/pylint#1628

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

    Close pylint-dev/pylint#73