d225e05802
* Handle the case where the raw builder fails to retrieve the ``__all__`` attribute * Restructure the AST parsing heuristic to always pick the same module * Changed setup.py to work with [distlib](https://pypi.org/project/distlib) * Do not crash with SyntaxError when parsing namedtuples with invalid label * Protect against ``infer_call_result`` failing with `InferenceError` in `Super.getattr()` * Expose a ast_from_string method in AstroidManager, which will accept * ``BoundMethod.implicit_parameters`` returns a proper value for ``__new__`` * Allow slots added dynamically to a class to still be inferred * Allow `FunctionDef.getattr` to look into both instance attrs and special attributes * Infer qualified ``classmethod`` as a classmethod. * Prevent a recursion error to happen when inferring the declared metaclass of a class * Raise ``AttributeInferenceError`` when ``getattr()`` receives an empty name * Prevent a recursion error for self reference variables and `type()` calls. * Do not infer the first argument of a staticmethod in a metaclass as the class itself * ``NodeNG.bool_value()`` gained an optional ``context`` parameter * Pass a context argument to ``astroid.Arguments`` to prevent recursion errors * Better inference of class and static methods decorated with custom methods * Reverse the order of decorators for `infer_subscript` * Prevent a recursion error when inferring self-referential variables without definition * Numpy `datetime64.astype` return value is inferred as a `ndarray`. * Skip non ``Assign`` and ``AnnAssign`` nodes from enum reinterpretation * Numpy ``ndarray`` attributes ``imag`` and ``real`` are now inferred as ``ndarray``. * Added a call to ``register_transform`` for all functions of the ``brain_numpy_core_multiarray`` * Use the parent of the node when inferring aug assign nodes instead of the statement * Added some functions to the ``brain_numpy_core_umath`` module * Added some functions of the ``numpy.core.multiarray`` module * All the ``numpy ufunc`` functions derived now from a common class that * ``nodes.Const.itered`` returns a list of ``Const`` nodes, not strings * The ``shape`` attribute of a ``numpy ndarray`` is now a ``ndarray`` OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-astroid?expand=0&rev=50
852 lines
40 KiB
Plaintext
852 lines
40 KiB
Plaintext
-------------------------------------------------------------------
|
|
Thu May 7 04:36:24 UTC 2020 - Steve Kowalik <steven.kowalik@suse.com>
|
|
|
|
- Update to 2.4.1:
|
|
* Handle the case where the raw builder fails to retrieve the ``__all__`` attribute
|
|
* Restructure the AST parsing heuristic to always pick the same module
|
|
* Changed setup.py to work with [distlib](https://pypi.org/project/distlib)
|
|
* Do not crash with SyntaxError when parsing namedtuples with invalid label
|
|
* Protect against ``infer_call_result`` failing with `InferenceError` in `Super.getattr()`
|
|
* Expose a ast_from_string method in AstroidManager, which will accept
|
|
* ``BoundMethod.implicit_parameters`` returns a proper value for ``__new__``
|
|
* Allow slots added dynamically to a class to still be inferred
|
|
* Allow `FunctionDef.getattr` to look into both instance attrs and special attributes
|
|
* Infer qualified ``classmethod`` as a classmethod.
|
|
* Prevent a recursion error to happen when inferring the declared metaclass of a class
|
|
* Raise ``AttributeInferenceError`` when ``getattr()`` receives an empty name
|
|
* Prevent a recursion error for self reference variables and `type()` calls.
|
|
* Do not infer the first argument of a staticmethod in a metaclass as the class itself
|
|
* ``NodeNG.bool_value()`` gained an optional ``context`` parameter
|
|
* Pass a context argument to ``astroid.Arguments`` to prevent recursion errors
|
|
* Better inference of class and static methods decorated with custom methods
|
|
* Reverse the order of decorators for `infer_subscript`
|
|
* Prevent a recursion error when inferring self-referential variables without definition
|
|
* Numpy `datetime64.astype` return value is inferred as a `ndarray`.
|
|
* Skip non ``Assign`` and ``AnnAssign`` nodes from enum reinterpretation
|
|
* Numpy ``ndarray`` attributes ``imag`` and ``real`` are now inferred as ``ndarray``.
|
|
* Added a call to ``register_transform`` for all functions of the ``brain_numpy_core_multiarray``
|
|
* Use the parent of the node when inferring aug assign nodes instead of the statement
|
|
* Added some functions to the ``brain_numpy_core_umath`` module
|
|
* Added some functions of the ``numpy.core.multiarray`` module
|
|
* All the ``numpy ufunc`` functions derived now from a common class that
|
|
* ``nodes.Const.itered`` returns a list of ``Const`` nodes, not strings
|
|
* The ``shape`` attribute of a ``numpy ndarray`` is now a ``ndarray``
|
|
* Don't ignore special methods when inspecting gi classes
|
|
* Added transform for ``scipy.gaussian``
|
|
* Add suport for inferring properties.
|
|
* Added a brain for ``responses``
|
|
* Allow inferring positional only arguments.
|
|
* Retry parsing a module that has invalid type comments
|
|
* Scope the inference to the current bound node when inferring instances of classes
|
|
* Add support for inferring exception instances in all contexts
|
|
* Add more supported parameters to ``subprocess.check_output``
|
|
* Infer args unpacking of ``self``
|
|
* Clean up setup.py
|
|
* Handle StopIteration error in infer_int.
|
|
* Can access per argument type comments for positional only and keyword only arguments.
|
|
* Relax upper bound on `wrapt`
|
|
* Properly analyze CFFI compiled extensions.
|
|
- Refresh unpin-deps.patch
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Nov 14 11:24:24 CET 2019 - Matej Cepl <mcepl@suse.com>
|
|
|
|
- Update to 2.3.3:
|
|
* Update six version to 1.13.
|
|
- Update unpin-deps.patch
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Nov 1 08:34:46 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
|
|
|
- Update to 2.3.2:
|
|
* All type comments have as parent the corresponding `astroid` node
|
|
* Pass an inference context to `metaclass()` when inferring an object type
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Oct 4 08:24:37 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
|
|
|
- Add patch to not use pinned dependencies and to work in our distro:
|
|
* unpin-deps.patch
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Oct 3 14:07:26 UTC 2019 - Marketa Calabkova <mcalabkova@suse.com>
|
|
|
|
- Update to 2.3.1
|
|
* A transform for the builtin `dataclasses` module was added.
|
|
* Add a brain tip for ``subprocess.check_output``
|
|
* Remove NodeNG.nearest method because of lack of usage in astroid and pylint.
|
|
* Allow importing wheel files.
|
|
* Dropped support for Python 3.4.
|
|
* Add support for Python 3.8's `NamedExpr` nodes, which is part of assignment expressions.
|
|
* ...and more.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Mar 11 09:46:52 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
|
|
|
- Update to 2.2.5:
|
|
* The last except handler wins when inferring variables bound in an except handler.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Mar 6 12:27:13 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
|
|
|
- Update to 2.2.4:
|
|
* Many changes inside, see ChangeLog
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Dec 31 08:59:36 UTC 2018 - Martin Pluskal <mpluskal@suse.com>
|
|
|
|
- Correct conditional for older distros
|
|
- Update filelist to work on SLE-12
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Dec 6 14:39:34 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
|
|
|
|
- Version update to 2.1.0:
|
|
* Many changes around, see ChangeLog file
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Sep 18 08:46:02 UTC 2018 - Jan Engelhardt <jengelh@inai.de>
|
|
|
|
- Trim future goals and history lesson from description.
|
|
Use noun phrase in summary.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Sep 14 15:01:23 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
|
|
|
|
- Version update to 2.0.4:
|
|
* only supports python3.0+
|
|
* Many many changes see ChangeLog fixes
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jul 16 11:53:57 UTC 2018 - tchvatal@suse.com
|
|
|
|
- Version update to 1.6.5:
|
|
* Many various bugfixes making the pylint tests pass
|
|
* For details see ChangeLog
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jan 24 09:56:25 UTC 2018 - tchvatal@suse.com
|
|
|
|
- Version update to 1.6.1:
|
|
* Various fixes for python3
|
|
* Various pylint issues fixes
|
|
* For detailed log see ChangeLog
|
|
- Disable tests for now as they seem to fail, upstream knows
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Feb 27 14:05:03 UTC 2017 - jmatejek@suse.com
|
|
|
|
- update for singlespec
|
|
- update to 1.4.9
|
|
* classes can now know their definition-time arguments
|
|
* getitem() now accepts node objects
|
|
* explicit namespace package support
|
|
* see more details in ChangeLog
|
|
- update to 2.0-pre-release git version for python 3.6 support
|
|
(boo#1026174)
|
|
- enable test suite for all pythons
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Feb 10 12:58:40 UTC 2016 - michael@stroeder.com
|
|
|
|
- Added missing dependencies on python-lazy_object_proxy
|
|
and python-wrapt
|
|
- Update to version 1.4.4
|
|
* unpack_infer raises InferenceError if it can't operate
|
|
with the given sequences of nodes.
|
|
* Support accessing properties with super().
|
|
* Enforce strong updates per frames.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jan 13 10:03:16 UTC 2016 - toddrme2178@gmail.com
|
|
|
|
- Update to version 1.4.3
|
|
* pkg_resources brain tips are a bit more specific,
|
|
by specifiying proper returns.
|
|
* Standard library modules are properly detected by is_standard_module.
|
|
This should fix issues such as https://github.com/PyCQA/pylint/issues/725.
|
|
- Update to version 1.4.2
|
|
* The slots() method conflates all the slots from the ancestors
|
|
into a list of current and parent slots.
|
|
We're doing this because this is the right semantics of slots,
|
|
they get inherited, as long as each parent defines a __slots__
|
|
entry.
|
|
* Revert to using printf-style formatting in as_string, in order
|
|
to avoid a potential problem with encodings when using .format.
|
|
Closes issue #273.
|
|
* assigned_stmts methods have the same signature from now on.
|
|
They used to have different signatures and each one made
|
|
assumptions about what could be passed to other implementations,
|
|
leading to various possible crashes when one or more arguments
|
|
weren't given. Closes issue #277.
|
|
- update to version 1.4.1:
|
|
* Add support for handling Uninferable nodes when calling as_string
|
|
|
|
Some object, for instance List or Tuple can have, after inference,
|
|
Uninferable as their elements, happening when their components
|
|
weren't couldn't be inferred properly. This means that as_string
|
|
needs to cope with expecting Uninferable nodes part of the other
|
|
nodes coming for a string transformation. The patch adds a visit
|
|
method in AsString and "accept" on Yes / Uninferable nodes.
|
|
Closes issue #270.
|
|
- update to version 1.4.0:
|
|
* Class.getattr('__mro__') returns the actual MRO. Closes issue #128.
|
|
* The logilab-common dependency is not needed anymore as the needed code
|
|
was integrated into astroid.
|
|
* Add 'assert_equals' method in nose.tools's brain plugin.
|
|
* Generated enum member stubs now support IntEnum and multiple
|
|
base classes.
|
|
* Add brain tips for multiprocessing.Manager and
|
|
multiprocessing.managers.SyncManager.
|
|
* Add brain tips for multiprocessing post Python 3.4+,
|
|
where the module level functions are retrieved with getattr
|
|
from a context object, leading to many no-member errors
|
|
in Pylint.
|
|
* The Generator objects inferred with `infer_call_result`
|
|
from functions have as parent the function from which they
|
|
are returned.
|
|
* Understand partially the 3-argument form of `type`.
|
|
The only change is that astroid understands members
|
|
passed in as dictionaries as the third argument.
|
|
* Improve the inference of Getattr nodes when dealing with
|
|
abstract properties from the abc module.
|
|
|
|
In astroid.bases.Instance._wrap_attr we had a detection
|
|
code for properties, which basically inferred whatever
|
|
a property returned, passing the results up the stack,
|
|
to the igetattr() method. It handled only the builtin property
|
|
but the new patch also handles a couple of other properties,
|
|
such as abc.abstractproperty.
|
|
* UnboundMethod.getattr calls the getattr of its _proxied object
|
|
and doesn't call super(...) anymore.
|
|
|
|
It previously crashed, since the first ancestor in its mro was
|
|
bases.Proxy and bases.Proxy doesn't implement the .getattr method.
|
|
Closes issue #91.
|
|
* Don't hard fail when calling .mro() on a class which has
|
|
combined both newstyle and old style classes. The class
|
|
in question is actually newstyle (and the __mro__ can be
|
|
retrieved using Python).
|
|
|
|
.mro() fallbacks to using .ancestors() in that case.
|
|
* Class.local_attr and Class.local_attr_ancestors uses internally
|
|
a mro lookup, using .mro() method, if they can.
|
|
|
|
That means for newstyle classes, when trying to lookup a member
|
|
using one of these functions, the first one according to the
|
|
mro will be returned. This reflects nicely the reality,
|
|
but it can have as a drawback the fact that it is a behaviour
|
|
change (the previous behaviour was incorrect though). Also,
|
|
having bases which can return multiple values when inferred
|
|
will not work with the new approach, because .mro() only
|
|
retrieves the first value inferred from a base.
|
|
* Expose a implicit_metaclass() method in Class. This will return
|
|
a builtins.type instance for newstyle classes.
|
|
* Add two new exceptions for handling MRO error cases. DuplicateBasesError
|
|
is emitted when duplicate bases are found in a class,
|
|
InconsistentMroError is raised when the method resolution is determined
|
|
to be inconsistent. They share a common class, MroError, which
|
|
is a subclass of ResolveError, meaning that this change is backwards
|
|
compatible.
|
|
* Classes aren't marked as interfaces anymore, in the `type` attribute.
|
|
* Class.has_dynamic_getattr doesn't return True for special methods
|
|
which aren't implemented in pure Python, as it is the case for extension modules.
|
|
|
|
Since most likely the methods were coming from a live object, this implies
|
|
that all of them will have __getattr__ and __getattribute__ present and it
|
|
is wrong to consider that those methods were actually implemented.
|
|
* Add `igetattr` method to scoped_nodes.Function.
|
|
* Add support for Python 3.5's MatMul operation: see PEP 465 for more
|
|
details.
|
|
* NotImplemented is detected properly now as being part of the
|
|
builtins module. Previously trying to infer the Name(NotImplemented)
|
|
returned an YES object.
|
|
* Add proper grammatical names for `infered` and `ass_type` methods,
|
|
namely `inferred` and `assign_type`.
|
|
|
|
The old methods will raise PendingDeprecationWarning, being slated
|
|
for removal in astroid 2.0.
|
|
* Add new AST names in order to be similar to the ones
|
|
from the builtin ast module.
|
|
|
|
With this change, Getattr becomes Attributes, Backquote becomes
|
|
Repr, Class is ClassDef, Function is FunctionDef, Discard is Expr,
|
|
CallFunc is Call, From is ImportFrom, AssName is AssignName
|
|
and AssAttr is AssignAttr. The old names are maintained for backwards
|
|
compatibility and they are interchangeable, in the sense that using
|
|
Discard will use Expr under the hood and the implemented visit_discard
|
|
in checkers will be called with Expr nodes instead. The AST does not
|
|
contain the old nodes, only the interoperability between them hides this
|
|
fact. Recommandations to move to the new nodes are emitted accordingly,
|
|
the old names will be removed in astroid 2.0.
|
|
* Star unpacking in assignments returns properly a list,
|
|
not the individual components. Closes issue #138.
|
|
* Lambdas found at class level, which have a `self` argument, are considered
|
|
* Add annotation support for function.as_string(). Closes issue #37.
|
|
* Add support for indexing bytes on Python 3.
|
|
BoundMethods when accessing them from instances of their class.
|
|
* Add support for inferring subscript on instances, which will
|
|
use __getitem__. Closes issue #124.
|
|
* Understand metaclasses added with six.add_metaclass decorator. Closes issue #129.
|
|
* Add a new convenience API, `astroid.parse`, which can be used to retrieve
|
|
an astroid AST from a source code string, similar to how ast.parse can be
|
|
used to obtain a Python AST from a source string. This is the test_utils.build_module
|
|
promoted to a public API.
|
|
* do_import_module passes the proper relative_only flag if the level is higher
|
|
than 1. This has the side effect that using `from .something import something`
|
|
in a non-package will finally result in an import-error on Pylint's side.
|
|
Until now relative_only was ignored, leading to the import of `something`,
|
|
if it was globally available.
|
|
* There's a new separate step for transforms.
|
|
|
|
Until now, the transforms were applied at the same time the tree was
|
|
being built. This was problematic if the transform functions were
|
|
using inference, since the inference was executed on a partially
|
|
constructed tree, which led to failures when post-building
|
|
information was needed (such as setting the _from_names
|
|
for the From imports).
|
|
Now there's a separate step for transforms, which are applied
|
|
using transform.TransformVisitor.
|
|
There's a couple of other related changes:
|
|
+ astroid.parse and AstroidBuilder gained a new parameter
|
|
`apply_transforms`, which is a boolean flag, which will
|
|
control if the transforms are applied. We do this because
|
|
there are uses when the vanilla tree is wanted, without
|
|
any implicit modification.
|
|
+ the transforms are also applied for builtin modules,
|
|
as a side effect of the fact that transform visiting
|
|
was moved in AstroidBuilder._post_build from
|
|
AstroidBuilder._data_build.
|
|
Closes issue #116.
|
|
* Add a new node, DictUnpack, which is used to represent the unpacking
|
|
of a dictionary into another dictionary, using PEP 448 specific syntax
|
|
({1:2, **{2:3})
|
|
|
|
This is a different approach than what the builtin ast module does,
|
|
since it just uses None to represent this kind of operation,
|
|
which seems conceptually wrong, due to the fact the AST contains
|
|
non-AST nodes. Closes issue #206.
|
|
* Add a new type of node, called *inference objects*. Inference objects are similar with
|
|
AST nodes, but they can be obtained only after inference, so they can't be found
|
|
inside the AST tree. Their purpose is to handle at astroid level
|
|
some operations which can't be handled when using brain transforms.
|
|
For instance, the first object added is FrozenSet, which can be manipulated
|
|
at astroid's level (inferred, itered etc). Code such as this 'frozenset((1,2))'
|
|
will not return an Instance of frozenset, without having access to its
|
|
content, but a new objects.FrozenSet, which can be used just as a nodes.Set.
|
|
* Add a new *inference object* called Super, which also adds support for understanding
|
|
super calls. astroid understands the zero-argument form of super, specific to
|
|
Python 3, where the interpreter fills itself the arguments of the call. Also, we
|
|
are understanding the 2-argument form of super, both for bounded lookups
|
|
(super(X, instance)) as well as for unbounded lookups (super(X, Y)),
|
|
having as well support for validating that the object-or-type is a subtype
|
|
of the first argument. The unbounded form of super (one argument) is not
|
|
understood, since it's useless in practice and should be removed from
|
|
Python's specification. Closes issue #89.
|
|
* astroid.utils.ASTWalker and astroid.utils.LocalsVisitor
|
|
were moved to pylint.pyreverse.utils.
|
|
- update to version 1.3.8:
|
|
* Backport of 40e3176, which fixes issue #84.
|
|
- update to version 1.3.7:
|
|
* Improve the inference of six.moves, especially when using `from
|
|
... import ...` syntax. Also, we added a new fail import hook for
|
|
six.moves, which fixes the import-error false positive from
|
|
pylint. Closes issue #107.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Mar 16 12:20:32 UTC 2015 - mcihar@suse.cz
|
|
|
|
- Update to 1.3.6:
|
|
* Class.slots raises NotImplementedError for old style classes.
|
|
Closes issue #67.
|
|
* Add a new option to AstroidManager, `optimize_ast`, which
|
|
controls if peephole optimizer should be enabled or not.
|
|
This prevents a regression, where the visit_binop method
|
|
wasn't called anymore with astroid 1.3.5, due to the differences
|
|
in the resulting AST. Closes issue #82.
|
|
* Add the ability to optimize small ast subtrees,
|
|
with the first use in the optimization of multiple
|
|
BinOp nodes. This removes recursivity in the rebuilder
|
|
when dealing with a lot of small strings joined by the
|
|
addition operator. Closes issue #59.
|
|
* Obtain the methods for the nose brain tip through an
|
|
unittest.TestCase instance. Closes Pylint issue #457.
|
|
* Fix a crash which occurred when a class was the ancestor
|
|
of itself. Closes issue #78.
|
|
* Improve the scope_lookup method for Classes regarding qualified
|
|
objects, with an attribute name exactly as one provided in the
|
|
class itself.
|
|
For example, a class containing an attribute 'first',
|
|
which was also an import and which had, as a base, a qualified name
|
|
or a Gettattr node, in the form 'module.first', then Pylint would
|
|
have inferred the `first` name as the function from the Class,
|
|
not the import. Closes Pylint issue #466.
|
|
* Implement the assigned_stmts operation for Starred nodes,
|
|
which was omitted when support for Python 3 was added in astroid.
|
|
Closes issue #36.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Feb 18 13:04:51 UTC 2015 - mcihar@suse.cz
|
|
|
|
- Update to 1.3.4:
|
|
* Get the first element from the method list when obtaining
|
|
the functions from nose.tools.trivial. Closes Pylint issue #448.
|
|
* Restore file_stream to a property, but deprecate it in favour of
|
|
the newly added method Module.stream. By using a method instead of a
|
|
property, it will be easier to properly close the file right
|
|
after it is used, which will ensure that no file descriptors are
|
|
leaked. Until now, due to the fact that a module was cached,
|
|
it was not possible to close the file_stream anywhere.
|
|
file_stream will start emitting PendingDeprecationWarnings in
|
|
astroid 1.4, DeprecationWarnings in astroid 1.5 and it will
|
|
be finally removed in astroid 1.6.
|
|
* Add inference tips for 'tuple', 'list', 'dict' and 'set' builtins.
|
|
* Add brain definition for most string and unicode methods
|
|
* Changed the API for Class.slots. It returns None when the class
|
|
doesn't define any slots. Previously, for both the cases where
|
|
the class didn't have slots defined and when it had an empty list
|
|
of slots, Class.slots returned an empty list.
|
|
* Add a new method to Class nodes, 'mro', for obtaining the
|
|
the method resolution order of the class.
|
|
* Add brain tips for six.moves. Closes issue #63.
|
|
* Improve the detection for functions decorated with decorators
|
|
which returns static or class methods.
|
|
* .slots() can contain unicode strings on Python 2.
|
|
* Add inference tips for nose.tools.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Dec 8 12:11:48 UTC 2014 - mcihar@suse.cz
|
|
|
|
- Update to 1.3.2:
|
|
* Fixed a crash with invalid subscript index.
|
|
* Implement proper base class semantics for Python 3, where
|
|
every class derives from object.
|
|
* Allow more fine-grained control over C extension loading
|
|
in the manager.
|
|
* Fixed a crash issue with the pytest brain module.
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Nov 21 08:53:09 UTC 2014 - mcihar@suse.cz
|
|
|
|
- Update to 1.3.0:
|
|
* Fix a maximum recursion error occured during the inference,
|
|
where statements with the same name weren't filtered properly.
|
|
Closes pylint issue #295.
|
|
* Check that EmptyNode has an underlying object in
|
|
EmptyNode.has_underlying_object.
|
|
* Simplify the understanding of enum members.
|
|
* Fix an infinite loop with decorator call chain inference,
|
|
where the decorator returns itself. Closes issue #50.
|
|
* Various speed improvements. Patch by Alex Munroe.
|
|
* Add pytest brain plugin. Patch by Robbie Coomber.
|
|
* Support for Python versions < 2.7 has been dropped, and the
|
|
source has been made compatible with Python 2 and 3. Running
|
|
2to3 on installation for Python 3 is not needed anymore.
|
|
* astroid now depends on six.
|
|
* modutils._module_file opens __init__.py in binary mode.
|
|
Closes issues #51 and #13.
|
|
* Only C extensions from trusted sources (the standard library)
|
|
are loaded into the examining Python process to build an AST
|
|
from the live module.
|
|
* Path names on case-insensitive filesystems are now properly
|
|
handled. This fixes the stdlib detection code on Windows.
|
|
* Metaclass-generating functions like six.with_metaclass
|
|
are now supported via some explicit detection code.
|
|
* astroid.register_module_extender has been added to generalize
|
|
the support for module extenders as used by many brain plugins.
|
|
* brain plugins can now register hooks to handle failed imports,
|
|
as done by the gobject-introspection plugin.
|
|
* The modules have been moved to a separate package directory,
|
|
`setup.py develop` now works correctly.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Nov 4 16:24:17 UTC 2014 - mcihar@suse.cz
|
|
|
|
- Update to 1.2.1:
|
|
* Fix a crash occurred when inferring decorator call chain.
|
|
Closes issue #42.
|
|
* Set the parent of vararg and kwarg nodes when inferring them.
|
|
Closes issue #43.
|
|
* namedtuple inference knows about '_fields' attribute.
|
|
* enum members knows about the methods from the enum class.
|
|
* Name inference will lookup in the parent function
|
|
of the current scope, in case searching in the current scope
|
|
fails.
|
|
* Inference of the functional form of the enums takes into
|
|
consideration the various inputs that enums accepts.
|
|
* The inference engine handles binary operations (add, mul etc.)
|
|
between instances.
|
|
* Fix an infinite loop in the inference, by returning a copy
|
|
of instance attributes, when calling 'instance_attr'.
|
|
Closes issue #34 (patch by Emile Anclin).
|
|
* Don't crash when trying to infer unbound object.__new__ call.
|
|
Closes issue #11.
|
|
- Use upstream zip for packaging as .tar.gz is no longer provided
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Aug 12 09:24:19 UTC 2014 - mcihar@suse.com
|
|
|
|
- Update to 1.2.0
|
|
* Function nodes can detect decorator call chain and see if they are
|
|
decorated with builtin descriptors (`classmethod` and `staticmethod`).
|
|
* infer_call_result called on a subtype of the builtin type will now
|
|
return a new `Class` rather than an `Instance`.
|
|
* `Class.metaclass()` now handles module-level __metaclass__ declaration
|
|
on python 2, and no longer looks at the __metaclass__ class attribute on
|
|
python 3.
|
|
* Function nodes can detect if they are decorated with subclasses
|
|
of builtin descriptors when determining their type
|
|
(`classmethod` and `staticmethod`).
|
|
* Add `slots` method to `Class` nodes, for retrieving
|
|
the list of valid slots it defines.
|
|
* Expose function annotation to astroid: `Arguments` node
|
|
exposes 'varargannotation', 'kwargannotation' and 'annotations'
|
|
attributes, while `Function` node has the 'returns' attribute.
|
|
* Backported most of the logilab.common.modutils module there, as
|
|
most things there are for pylint/astroid only and we want to be
|
|
able to fix them without requiring a new logilab.common release
|
|
* Fix names grabed using wildcard import in "absolute import mode"
|
|
(ie with absolute_import activated from the __future__ or with
|
|
python 3). Fix pylint issue #58.
|
|
* Add support in pylint-brain for understanding enum classes.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jul 10 13:12:12 UTC 2014 - toddrme2178@gmail.com
|
|
|
|
- Update to 1.1.1
|
|
* `Class.metaclass()` looks in ancestors when the current class
|
|
does not define explicitly a metaclass.
|
|
* Do not cache modules if a module with the same qname is already
|
|
known, and only return cached modules if both name and filepath
|
|
match. Fixes pylint Bitbucket issue #136.
|
|
- Update to 1.1.0
|
|
* All class nodes are marked as new style classes for Py3k.
|
|
* Add a `metaclass` function to `Class` nodes to
|
|
retrieve their metaclass.
|
|
* Add a new YieldFrom node.
|
|
* Add support for inferring arguments to namedtuple invocations.
|
|
* Make sure that objects returned for namedtuple
|
|
inference have parents.
|
|
* Don't crash when inferring nodes from `with` clauses
|
|
with multiple context managers. Closes #18.
|
|
* Don't crash when a class has some __call__ method that is not
|
|
inferable. Closes #17.
|
|
* Unwrap instances found in `.ancestors()`, by using their _proxied
|
|
class.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Nov 28 14:30:25 UTC 2013 - toddrme2178@gmail.com
|
|
|
|
- Rename to python-astroid to match new upstream name.
|
|
- Initial version 1.0.1
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jun 19 14:26:57 UTC 2013 - speilicke@suse.com
|
|
|
|
- Use upstream URL
|
|
|
|
-------------------------------------------------------------------
|
|
Fri May 31 09:26:07 UTC 2013 - dmueller@suse.com
|
|
|
|
- update to 0.24.3:
|
|
* #124360 [py3.3]: Don't crash on 'yield from' nodes
|
|
* #123062 [pylint-brain]: Use correct names for keywords for urlparse
|
|
* #123056 [pylint-brain]: Add missing methods for hashlib
|
|
* #123068: Fix inference for generator methods to correctly handle yields
|
|
* #123068: Make sure .as_string() returns valid code for yields in
|
|
expressions.
|
|
* #47957: Set literals are now correctly treated as inference leaves.
|
|
* #123074: Add support for inference of subscript operations on dict
|
|
literals.
|
|
* pylint-brain: more subprocess.Popen faking (see #46273)
|
|
* #109562 [jython]: java modules have no __doc__, causing crash
|
|
* #120646 [py3]: fix for python3.3 _ast changes which may cause crash
|
|
* #109988 [py3]: test fixes
|
|
* #106191: fix __future__ absolute import w/ From node
|
|
* #50395: fix function fromlineno when some decorator is splited on
|
|
multiple lines (patch by Mark Gius)
|
|
* #92362: fix pyreverse crash on relative import
|
|
* #104041: fix crash 'module object has no file_encoding attribute'
|
|
* #4294 (pylint-brain): bad inference on mechanize.Browser.open
|
|
* #46273 (pylint-brain): bad inference subprocess.Popen.communicate
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Apr 26 08:36:47 UTC 2012 - toddrme2178@gmail.com
|
|
|
|
- Add python 3 package
|
|
- Change license to LGPL 2.1+
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Feb 18 16:21:22 UTC 2012 - toganm@opensuse.org
|
|
|
|
- update to version 0.23.1
|
|
* #62295: avoid "OSError: Too many open files" by moving
|
|
.file_stream as a Module property opening the file only when
|
|
needed
|
|
* Lambda nodes should have a `name` attribute
|
|
* only call transformers if modname specified
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Oct 6 08:48:58 CEST 2011 - dmueller@suse.de
|
|
|
|
- make it build on old distros
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Sep 25 12:33:28 UTC 2011 - saschpe@gmx.de
|
|
|
|
- Don't remove logilab/__init__.py on SLE, where it is not existing.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Sep 21 10:06:07 UTC 2011 - saschpe@suse.de
|
|
|
|
- Update to version 0.22.0:
|
|
* added column offset information on nodes (patch by fawce)
|
|
* #70497: Crash on AttributeError: 'NoneType' object has no attribute '_infer_name'
|
|
* #70381: IndendationError in import causes crash
|
|
* #70565: absolute imports treated as relative (patch by Jacek Konieczny)
|
|
* #70494: fix file encoding detection with python2.x
|
|
* py3k: __builtin__ module renamed to builtins, we should consider this to properly
|
|
build ast for builtin objects
|
|
- Run testsuite
|
|
- Removed outdated stuff from spec file (%clean section, authors, ...)
|
|
- Set license to GPL-2.0+ (SPDX style)
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Apr 12 16:00:03 CEST 2011 - hpj@urpla.net
|
|
|
|
- update to 0.21.1:
|
|
* python3: handle file encoding; fix a lot of tests
|
|
* fix #52006: "True" and "False" can be assigned as variable in Python2x
|
|
* fix #8847: pylint doesn't understand function attributes at all
|
|
* fix #8774: iterator / generator / next method
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Jan 7 12:00:19 CET 2011 - hpj@urpla.net
|
|
|
|
- update to 0.21.0:
|
|
* python3.x: first python3.x release
|
|
* fix #37105: Crash on AttributeError: 'NoneType' object has no attribute '_infer_name'
|
|
* python2.4: drop python < 2.4 support
|
|
|
|
- 0.20.4:
|
|
|
|
* fix #37868 #37665 #33638 #37909: import problems with absolute_import_activated
|
|
* fix #8969: false positive when importing from zip-safe eggs
|
|
* fix #46131: minimal class decorator support
|
|
* minimal python2.7 support (dict and set comprehension)
|
|
* important progress on Py3k compatibility
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Sep 29 10:11:50 CEST 2010 - dmueller@suse.de
|
|
|
|
- update to 0.20.3:
|
|
* fix #45959: AttributeError: 'NoneType' object has no attribute 'frame', due
|
|
to handling of __class__ when importing from living object (because of missing
|
|
source code or C-compiled object)
|
|
* fix astng building bug: we've to set module.package flag at the node
|
|
creation time otherwise we'll miss this information when infering relative
|
|
import during the build process (this should fix for instance some problems
|
|
with numpy)
|
|
* added __subclasses__ to special class attribute
|
|
* fix Class.interfaces so that no InferenceError raised on empty __implements__
|
|
* yield YES on multiplication of tuple/list with non valid operand
|
|
* fix licensing to LGPL
|
|
* add ALL_NODES_CLASSES constant to nodes module
|
|
* nodes redirection cleanup (possible since refactoring)
|
|
* bug fix for python < 2.5: add Delete node on Subscript nodes if we are in a
|
|
del context
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Apr 7 09:48:56 CEST 2010 - dmueller@suse.de
|
|
|
|
- update to 0.20.0 (bnc#555993):
|
|
* fix #20464: raises “TypeError: '_Yes' object is not iterable” on list inference
|
|
* fix #19882: pylint hangs
|
|
* fix #20759: crash on pyreverse UNARY_OP_METHOD KeyError '~'
|
|
* fix #20760: crash on pyreverse : AttributeError: 'Subscript'
|
|
object has no attribute 'infer_lhs'
|
|
* fix #21980: [Python-modules-team] Bug#573229 : Pylint hangs;
|
|
improving the cache yields a speed improvement on big projects
|
|
* major refactoring: rebuild the tree instead of modify / monkey patching
|
|
* fix #19641: "maximum recursion depth exceeded" messages w/ python 2.6
|
|
this was introduced by a refactoring
|
|
* Ned Batchelder patch to properly import eggs with Windows line
|
|
endings. This fixes a problem with pylint not being able to
|
|
import setuptools.
|
|
* Winfried Plapper patches fixing .op attribute value for AugAssign nodes,
|
|
visit_ifexp in nodes_as_string
|
|
* Edward K. Ream / Tom Fleck patch closes #19641 (maximum recursion depth
|
|
exceeded" messages w/ python 2.6), see https://bugs.launchpad.net/pylint/+bug/456870
|
|
* fix #18773: inference bug on class member (due to bad handling of instance
|
|
/ class nodes "bounded" to method calls)
|
|
* fix #9515: strange message for non-class "Class baz has no egg member" (due to
|
|
bad inference of function call)
|
|
* fix #18953: inference fails with augmented assignment (special case for augmented
|
|
assignement in infer_ass method)
|
|
* fix #13944: false positive for class/instance attributes (Instance.getattr
|
|
should return assign nodes on instance classes as well as instance.
|
|
* include spelling fixes provided by Dotan Barak
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Sep 16 22:50:32 CEST 2009 - poeml@suse.de
|
|
|
|
- fix build on SLE10 by not including %{py_sitedir}/*egg-info in
|
|
the filelist there
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Sep 16 22:25:39 CEST 2009 - poeml@suse.de
|
|
|
|
- update to 0.19.1
|
|
2009-08-27 -- 0.19.1
|
|
* fix #8771: crash on yield expression
|
|
* fix #10024: line numbering bug with try/except/finally
|
|
* fix #10020: when building from living object, __name__ may be None
|
|
* fix #9891: help(logilab.astng) throws TypeError
|
|
* fix #9588: false positive E1101 for augmented assignment
|
|
- adjusted sip-c-instance-fix.diff
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Sep 7 09:05:55 CEST 2009 - dmueller@suse.de
|
|
|
|
- build as noarch
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Aug 9 08:51:16 CEST 2009 - coolo@novell.com
|
|
|
|
- use new python macros
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Aug 6 22:59:09 CEST 2009 - hpj@urpla.net
|
|
|
|
- apply fix from Derek Harland to handle python-sip C instance methods
|
|
correctly
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Aug 5 15:34:49 CEST 2009 - hpj@urpla.net
|
|
|
|
- Update to version 0.19.0:
|
|
* fixed python 2.6 issue (tests ok w/ 2.4, 2.5, 2.6. Anyone using 2.2 / 2.3
|
|
to tell us if it works?)
|
|
* some understanding of the __builtin__.property decorator
|
|
* inference: introduce UnboundMethod / rename InstanceMethod to BoundMethod
|
|
|
|
2009-03-19 -- 0.18.0
|
|
* major api / tree structure changes to make it works with compiler *and*
|
|
python >= 2.5 _ast module
|
|
* cleanups and refactoring on the way
|
|
|
|
2008-11-19 -- 0.17.4
|
|
* fix #6015: filter statements bug triggering W0631 false positive in pylint
|
|
* fix #5571: Function.is_method() should return False on module level
|
|
functions decorated by staticmethod/classmethod (avoid some crash in pylint)
|
|
* fix #5010: understand python 2.5 explicit relative imports
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Sep 12 17:58:07 CEST 2008 - garloff@suse.de
|
|
|
|
- Update to version 0.17.3:
|
|
* fix #5889: astng crash on certain pyreverse projects
|
|
* fix bug w/ loop assigment in .lookup
|
|
* apply Maarten patch fixing a crash on TryFinalaly.block_range and fixing
|
|
'else'/'final' block line detection
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Aug 22 18:21:14 CEST 2008 - garloff@suse.de
|
|
|
|
- Update to version 0.17.2:
|
|
* "with" statement support, patch provided by Brian Hawthorne
|
|
* fixed recursion arguments in nodes_of_class method as notified
|
|
by Dave Borowitz
|
|
* new InstanceMethod node introduced to wrap bound method (eg
|
|
Function node), patch provided by Dave Borowitz
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jul 17 01:38:11 CEST 2007 - garloff@suse.de
|
|
|
|
- update to version 0.17.1:
|
|
* fix a few crashes
|
|
* lambda has no pytype
|
|
- changes from 0.16.3 to 0.17.0
|
|
* various bugfixes with inference
|
|
* list vs function mixup
|
|
* handle setattr class modification
|
|
- changes from 0.16.2 to 0.16.3
|
|
* fix simple inference for subscription and loop assignments
|
|
- changes from 0.16.1 to 0.16.2
|
|
* compatibility with python2.3 and logilab-common 0.21
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Sep 26 20:02:09 CEST 2006 - cthiel@suse.de
|
|
|
|
- update to version 0.16.1
|
|
* python 2.5 support, patch provided by Marien Zwart
|
|
* fix [Class|Module].block_range method (this fixes pylint's inline
|
|
disabling of messages on classes/modules)
|
|
* handle class.__bases__ and class.__mro__ (proper metaclass handling
|
|
still needed though)
|
|
* drop python2.2 support: remove code that was working around python2.2
|
|
* fixed generator expression scope bug
|
|
* patch transformer to extract correct line information
|
|
- changes from 0.15.1 to 0.16.0
|
|
* fix living object building to consider classes such as property as a
|
|
class instead of a data descriptor
|
|
* fix multiple assignment inference which was discarding some solutions
|
|
* added some line manipulation methods to handle pylint's block messages
|
|
control feature (Node.last_source_line(), None.block_range(lineno)
|
|
- changes from 0.15.0 to 0.15.1
|
|
* fix avoiding to load everything from living objects...
|
|
* fix a possible NameError in Instance.infer_call_result
|
|
- changes from 0.14.0 to 0.15.0
|
|
* fix possible infinite recursion on global statements and in various
|
|
other cases...
|
|
* fix locals/globals interactions when the global statement is used
|
|
* multiple inference related bug fixes
|
|
* associate List, Tuple and Dict and Const nodes to their respective
|
|
classes
|
|
* new .ass_type method on assignment related node, returning the assigment
|
|
type node (Assign, For, ListCompFor, GenExprFor, TryExcept)
|
|
* more API refactoring... .resolve method has disappeared, now you have
|
|
.ilookup on every nodes and .getattr/.igetattr on node supporting the
|
|
attribute protocol
|
|
* introduced a YES object that may be returned when there is ambiguity on
|
|
an inference path (typically function call when we don't know arguments
|
|
value)
|
|
* builder try to instantiate builtin exceptions subclasses to get their
|
|
instance attribute
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Feb 28 16:46:03 CET 2006 - jmatejek@suse.cz
|
|
|
|
- updated to reflect python changes due to #149809
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Jan 28 01:32:55 CET 2006 - garloff@suse.de
|
|
|
|
- Update to version 0.14:
|
|
* refactoring and inference improvements, changed API.
|
|
* Many new features and bugfixes.
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jan 25 21:40:49 CET 2006 - mls@suse.de
|
|
|
|
- converted neededforbuild to BuildRequires
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Dec 22 10:09:45 CET 2005 - garloff@suse.de
|
|
|
|
- Initial creation of package.
|
|
- Version 0.13.1:
|
|
* Fixes: Class.ancesotrs(), self_resolve(), local dicts __path__,
|
|
python2.2 compatibility.
|
|
* .__contains__ .has_key link (speedup)
|
|
* GenExpr and GenExprFor support for python 2.4+
|
|
- Version 0.13:
|
|
* This package has been forked of python-logilab-common 0.12.
|
|
* Fixes: lambda, Compare.as_string, manager.astng_from_module_name
|
|
* .locals and .globals on scoped node handle now a list of
|
|
references to each assigment statements instead of a single
|
|
reference to the first assigment statement.
|
|
|
|
-------------------------------------------------------------------
|