Log message:
Update devel/py-astroid to 1.4.9.
2016-12-18 -- 1.4.9
- Cast __path__ to a list in _module_file
- Add support for pytest 3.0.
2016-07-27 -- 1.4.8
- Add `returns` into the proper order in FunctionDef._astroid_fields
2016-07-07 -- 1.4.7
- Stop saving assignment locals in ExceptHandlers, when the context is a
store.
2016-06-06 -- 1.4.6
- Fix a crash which occurred when the class of a namedtuple could not be
inferred.
- Functional form of enums support accessing values through __call__.
- Brain tips for the ssl library.
2016-03-21 -- 1.4.5
- decoratornames() does not leak InferenceError anymore.
- wildcard_imported_names() got replaced by _public_names()
2016-01-15 -- 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.
2015-12-24 -- 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.
2015-12-21 -- 1.4.2
- The slots() method conflates all the slots from the ancestors
into a list of current and parent slots.
- Revert to using printf-style formatting in as_string, in order
to avoid a potential problem with encodings when using .format.
- assigned_stmts methods have the same signature from now on.
2015-11-29 -- 1.4.1
- Add support for handling Uninferable nodes when calling as_string
2015-11-29 -- 1.4.0
- Class.getattr('__mro__') returns the actual MRO.
- 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.
- UnboundMethod.getattr calls the getattr of its _proxied object
and doesn't call super(...) anymore.
- 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).
- Class.local_attr and Class.local_attr_ancestors uses internally
a mro lookup, using .mro() method, if they can.
- 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,
- 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.
- 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`.
- Add new AST names in order to be similar to the ones
from the builtin ast module.
- Star unpacking in assignments returns properly a list,
not the individual components.
- Lambdas found at class level, which have a `self` argument, are
considered
- Add annotation support for function.as_string().
- Add support for indexing bytes on Python 3.
- Add support for inferring subscript on instances, which will
use __getitem__.
- Understand metaclasses added with six.add_metaclass decorator.
- 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.
- do_import_module passes the proper relative_only flag if the level is
higher than 1.
- There's a new separate step for transforms.
- 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})
- Add a new type of node, called *inference objects*.
- Add a new *inference object* called Super, which also adds support for
understanding super calls.
- astroid.utils.ASTWalker and astroid.utils.LocalsVisitor
were moved to pylint.pyreverse.utils.
2015-08-02 -- 1.3.8
- Backport of 40e3176, which fixes issue #84.
2015-07-27 -- 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.
|
Log message:
Update to 1.3.6
Add test target
Upstream changes:
2015-03-14 -- 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.
2015-03-11 -- 1.3.5
* 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.
2015-01-17 -- 1.3.4
* Get the first element from the method list when obtaining
the functions from nose.tools.trivial. Closes Pylint issue #448.
2015-01-16 -- 1.3.3
* 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.
2014-11-22 -- 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.
2014-11-21 -- 1.3.1
* Fixed a crash issue with the pytest brain module.
2014-11-20 -- 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.
2014-08-24 -- 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.
2014-07-25 -- 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.
2014-04-30 -- 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.
2014-04-18 -- 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.
|