./devel/py-astroid, Rebuild a new abstract syntax tree from Pythons ast

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.5.3, Package name: py27-astroid-1.5.3, Maintainer: kamel.derouiche

The aim of this module is to provide a common base representation of
python source code for projects such as pychecker, pyreverse,
pylint... Well, actually the development of this library is essentially
governed by pylint's needs. It used to be called logilab-astng


Required to run:
[devel/py-setuptools] [lang/python27] [lang/py-six] [devel/py-enum34] [devel/py-singledispatch] [devel/py-wrapt] [devel/py-backports.functools_lru_cache] [devel/py-lazy-object-proxy]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: e654225ab5bd2788e5e246b156910990bf33cde6
RMD160: 3f3491fe28e2c365fa86cacb265d24f7d0d6c9e7
Filesize: 234.978 KB

Version history: (Expand)


CVS history: (Expand)


   2017-07-16 22:14:16 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
1.5.3:

* enum34 dependency is forced to be at least version 1.1.3. Fixes spurious
bug related to enum classes being falsy in boolean context, which caused
_Inconsistent Hierarchy_ `RuntimeError` in `singledispatch` module.

* Do not raise an exception when uninferable value is unpacked in ``with`` statement.

* Lock objects from ``threading`` module are now correctly recognised
  as context managers.
   2017-02-28 18:15:24 by Filip Hajny | Files touched by this commit (3) | Package updated
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.
   2016-08-29 17:44:26 by D'Arcy J.M. Cain | Files touched by this commit (6) | Package updated
Log message:
Update devel/py-logilab-common to version 1.2.0.
This is mainly to remove dependency on time/py-mxDateTime so that it can
build on Python >= 3.4.
Removed PYTHON_VERSIONS_INCOMPATIBLE line from this and other packages
that had it for this incompatibility.
   2016-07-09 15:04:18 by Thomas Klausner | Files touched by this commit (599)
Log message:
Remove python33: adapt all packages that refer to it.
   2016-06-08 19:43:49 by Thomas Klausner | Files touched by this commit (356)
Log message:
Switch to MASTER_SITES_PYPI.
   2015-12-05 22:26:09 by Adam Ciarcinski | Files touched by this commit (578)
Log message:
Extend PYTHON_VERSIONS_INCOMPATIBLE to 35
   2015-11-03 04:29:40 by Alistair G. Crooks | Files touched by this commit (1995)
Log message:
Add SHA512 digests for distfiles for devel category

Issues found with existing distfiles:
	distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip
	distfiles/fortran-utils-1.1.tar.gz
	distfiles/ivykis-0.39.tar.gz
	distfiles/enum-1.11.tar.gz
	distfiles/pvs-3.2-libraries.tgz
	distfiles/pvs-3.2-linux.tgz
	distfiles/pvs-3.2-solaris.tgz
	distfiles/pvs-3.2-system.tgz
No changes made to these distinfo files.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
   2015-04-05 17:36:27 by Wen Heping | Files touched by this commit (3) | Package updated
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.