astroid 2.3.0
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 returningNone
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
raisesInferenceError
on re-inference of the same objectThis prevents
StopIteration
from leaking when we encounter the same
object in the current context, which could result in variousRuntimeErrors
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 withClassDef.getattr.
-
Improved builtin inference for
tuple
,set
,frozenset
,list
anddict
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 ofthreading.Lock
Close pylint-dev/pylint#2791
-
Fix recursion error involving
len
and self referential attributesClose 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