<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/astroid-git.git/astroid/inference.py, branch 2.4</title>
<subtitle>github.com: PyCQA/astroid.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/'/>
<entry>
<title>Add missing copyright annotations for the past releases</title>
<updated>2020-04-27T08:48:59+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>pcmanticore@gmail.com</email>
</author>
<published>2020-04-27T08:48:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=c2e6a889e338ef488fb0656a0fb6eaadbb59e463'/>
<id>c2e6a889e338ef488fb0656a0fb6eaadbb59e463</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache the inference of FunctionDef to prevent property inference mutating locals</title>
<updated>2020-03-06T09:54:48+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>pcmanticore@gmail.com</email>
</author>
<published>2020-03-06T09:46:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=17a5ee681bcf4aacffcc4ec5afbc3436cfdc4537'/>
<id>17a5ee681bcf4aacffcc4ec5afbc3436cfdc4537</id>
<content type='text'>
When inferring a property, we instantiate a new `objects.Property` object,
which in turn, because it inherits from `FunctionDef`, sets itself in the locals
of the wrapping frame. This means that everytime we infer a property, the locals
are mutated with a new instance of the property.
Using `context` with `path_wrapper` would not have helped, because we call `inferred()`
on functions in multiple places in pylint's codebase.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When inferring a property, we instantiate a new `objects.Property` object,
which in turn, because it inherits from `FunctionDef`, sets itself in the locals
of the wrapping frame. This means that everytime we infer a property, the locals
are mutated with a new instance of the property.
Using `context` with `path_wrapper` would not have helped, because we call `inferred()`
on functions in multiple places in pylint's codebase.
</pre>
</div>
</content>
</entry>
<entry>
<title>Reverse the order of decorators for `infer_subscript`</title>
<updated>2020-03-05T08:41:16+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>pcmanticore@gmail.com</email>
</author>
<published>2020-03-05T08:08:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=0a8a75db30da060a24922e05048bc270230f5bad'/>
<id>0a8a75db30da060a24922e05048bc270230f5bad</id>
<content type='text'>
`path_wrapper` needs to come first, followed by `raise_if_nothing_inferred`,
otherwise we won't handle `StopIteration` correctly.

Close #762
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`path_wrapper` needs to come first, followed by `raise_if_nothing_inferred`,
otherwise we won't handle `StopIteration` correctly.

Close #762
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't crash upon invalid contex on attr. inference (#746)</title>
<updated>2020-02-10T07:55:10+00:00</updated>
<author>
<name>Leandro T. C. Melo</name>
<email>ltcmelo@gmail.com</email>
</author>
<published>2020-02-10T07:55:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=7dc1d50809a9f1c6b593c41949c28896c6ee0dd7'/>
<id>7dc1d50809a9f1c6b593c41949c28896c6ee0dd7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use the parent of the node when inferring aug assign nodes instead of the statement</title>
<updated>2020-01-05T12:37:53+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>pcmanticore@gmail.com</email>
</author>
<published>2020-01-05T12:35:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=631539e8ca8cbdb73b1c8655214de10bdd51e466'/>
<id>631539e8ca8cbdb73b1c8655214de10bdd51e466</id>
<content type='text'>
In 19b5af02304e3339fdd2a26cfafc337960eeebce we added a check for `AugAssign` nodes
when inferring `Assign` values. Unfortunately the `infer_assign` function was also
used by `infer_assignname`, which meant that when trying to infer an `AssignName` node,
we were inferring its value as the result of the `AugAssign` inference, leading
to spurious false positives.

Close PyCQA/pylint#2911
Close PyCQA/pylint#3214
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In 19b5af02304e3339fdd2a26cfafc337960eeebce we added a check for `AugAssign` nodes
when inferring `Assign` values. Unfortunately the `infer_assign` function was also
used by `infer_assignname`, which meant that when trying to infer an `AssignName` node,
we were inferring its value as the result of the `AugAssign` inference, leading
to spurious false positives.

Close PyCQA/pylint#2911
Close PyCQA/pylint#3214
</pre>
</div>
</content>
</entry>
<entry>
<title>Enable else-if-used extension</title>
<updated>2019-12-24T09:08:53+00:00</updated>
<author>
<name>Nick Drozd</name>
<email>nicholasdrozd@gmail.com</email>
</author>
<published>2019-12-23T18:28:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=bc4dd3db4065007fc3e1ca3fb64349a61f584005'/>
<id>bc4dd3db4065007fc3e1ca3fb64349a61f584005</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Set arguments on inferred properties and property descriptors such as fget()</title>
<updated>2019-12-15T09:17:06+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>pcmanticore@gmail.com</email>
</author>
<published>2019-12-15T09:17:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=73d276d0612599d4cded1431209560949256197a'/>
<id>73d276d0612599d4cded1431209560949256197a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for inferring properties</title>
<updated>2019-12-04T12:31:38+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>pcmanticore@gmail.com</email>
</author>
<published>2019-11-28T08:55:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=55b43f6755d4839cefaf010eb2ced747d014d459'/>
<id>55b43f6755d4839cefaf010eb2ced747d014d459</id>
<content type='text'>
These new capabilities will allow inferring both the `property` builtin
as well as property attributes such as  `.deleter` and `.setter`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These new capabilities will allow inferring both the `property` builtin
as well as property attributes such as  `.deleter` and `.setter`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Pass an inference context to `metaclass()` when inferring an object type</title>
<updated>2019-10-18T08:51:44+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>pcmanticore@gmail.com</email>
</author>
<published>2019-10-18T08:50:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=476d1b84025e6a980cc11fb2287426241c59977e'/>
<id>476d1b84025e6a980cc11fb2287426241c59977e</id>
<content type='text'>
This should prevent a bunch of recursion errors happening in pylint.
Also refactor the inference of `IfExp` nodes to use separate contexts
for each potential branch.

Close PyCQA/pylint#3152
Close PyCQA/pylint#3159
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should prevent a bunch of recursion errors happening in pylint.
Also refactor the inference of `IfExp` nodes to use separate contexts
for each potential branch.

Close PyCQA/pylint#3152
Close PyCQA/pylint#3159
</pre>
</div>
</content>
</entry>
<entry>
<title>Add inference support to NamedExpr nodes</title>
<updated>2019-06-02T08:01:52+00:00</updated>
<author>
<name>Claudiu Popa</name>
<email>pcmanticore@gmail.com</email>
</author>
<published>2019-06-02T07:29:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/astroid-git.git/commit/?id=0441055d1b917781ba838b4796fe82d07ec478e3'/>
<id>0441055d1b917781ba838b4796fe82d07ec478e3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
