<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/astroid.git/ChangeLog, branch fix-python3-tests</title>
<subtitle>bitbucket.org: Obsolete (use python-packages/astroid-git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/'/>
<entry>
<title>Add a new *inference object* called Super</title>
<updated>2015-05-28T09:10:00+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-05-28T09:10:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=237b6c4662cc0a14b1912748776e5effe92e2611'/>
<id>237b6c4662cc0a14b1912748776e5effe92e2611</id>
<content type='text'>
This patch 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Specify that inference objects can be found in the AST tree, but only after inference.</title>
<updated>2015-05-19T17:43:45+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-05-19T17:43:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=d0ae4fa70b807324a6146ae63b5ff7789ed6c268'/>
<id>d0ae4fa70b807324a6146ae63b5ff7789ed6c268</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a new type of nodes, called *inference objects*.</title>
<updated>2015-05-19T16:40:25+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-05-19T16:40:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=91529224bd4ad1a80065a76a9e077697b9ebecd0'/>
<id>91529224bd4ad1a80065a76a9e077697b9ebecd0</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for understanding context managers created with contextlib.contextmanager.</title>
<updated>2015-05-09T16:27:13+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-05-09T16:27:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=7a486d25c96da8e9545e7aeb3c82e99cace0b983'/>
<id>7a486d25c96da8e9545e7aeb3c82e99cace0b983</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add basic support for understanding context managers.</title>
<updated>2015-05-09T12:58:31+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-05-09T12:58:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=f97ef6e9e89ed2de13b622c1580ef9d14e3fca1f'/>
<id>f97ef6e9e89ed2de13b622c1580ef9d14e3fca1f</id>
<content type='text'>
Currently, there's no way to understand whatever __enter__ returns in a
context manager and what it is binded using the ``as`` keyword. With these changes,
we can understand ``bar`` in ``with foo() as bar``, which will be the result of __enter__.
There's no support for contextlib.contextmanager yet.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, there's no way to understand whatever __enter__ returns in a
context manager and what it is binded using the ``as`` keyword. With these changes,
we can understand ``bar`` in ``with foo() as bar``, which will be the result of __enter__.
There's no support for contextlib.contextmanager yet.
</pre>
</div>
</content>
</entry>
<entry>
<title>Class.has_dynamic_getattr doesn't return True for special methods which aren't implemented in pure Python.</title>
<updated>2015-05-07T10:52:36+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-05-07T10:52:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=21f964457e2d60fb07c83663518680db3a68d372'/>
<id>21f964457e2d60fb07c83663518680db3a68d372</id>
<content type='text'>
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
(the descriptors will be there, not necessarily implying that the function
is user implemented).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
(the descriptors will be there, not necessarily implying that the function
is user implemented).
</pre>
</div>
</content>
</entry>
<entry>
<title>Classes aren't marked as interfaces anymore, in the `type` attribute.</title>
<updated>2015-05-05T08:37:51+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-05-05T08:37:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=eb9d3cfcf1ab90584fdfe08917c810c3ac1c5e9e'/>
<id>eb9d3cfcf1ab90584fdfe08917c810c3ac1c5e9e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add two new exceptions for handling MRO error cases.</title>
<updated>2015-05-03T06:21:04+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-05-03T06:21:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=b246a25c85c1787296811cfbb811fa3528d7966a'/>
<id>b246a25c85c1787296811cfbb811fa3528d7966a</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Ensure that generated enum values have the correct base classes</title>
<updated>2015-05-01T08:44:12+00:00</updated>
<author>
<name>Philip Lorenz</name>
<email>philip@bithub.de</email>
</author>
<published>2015-05-01T08:44:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=b7b303d5b590c11ba8d861dcd8fa440122567d6d'/>
<id>b7b303d5b590c11ba8d861dcd8fa440122567d6d</id>
<content type='text'>
Enum values should share the same base classes as their defining class.
If this is not the case it may lead to wrong inference results when an
enum member is used - e.g. for the following snippet:

class X(enum.IntEnum):
    one = 1

print([1, 2][X.one])

pylint will detect a "invalid-sequence-index" error as the __index__
method of X.one is not detected.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enum values should share the same base classes as their defining class.
If this is not the case it may lead to wrong inference results when an
enum member is used - e.g. for the following snippet:

class X(enum.IntEnum):
    one = 1

print([1, 2][X.one])

pylint will detect a "invalid-sequence-index" error as the __index__
method of X.one is not detected.
</pre>
</div>
</content>
</entry>
<entry>
<title>Expose a implicit_metaclass() method in Class.</title>
<updated>2015-04-24T21:29:31+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>cpopa@cloudbasesolutions.com</email>
</author>
<published>2015-04-24T21:29:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid.git/commit/?id=98ebf98748c0cc4beaf40e779b0c863cb5cad7a5'/>
<id>98ebf98748c0cc4beaf40e779b0c863cb5cad7a5</id>
<content type='text'>
This will return a builtins.type instance for newstyle classes, otherwise it will
return None.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will return a builtins.type instance for newstyle classes, otherwise it will
return None.
</pre>
</div>
</content>
</entry>
</feed>
