|
219 | 219 | <div class="pytorch-left-menu-search"> |
220 | 220 |
|
221 | 221 | <div class="version"> |
222 | | - <a href='https://pytorch.org/docs/versions.html'>master (1.13.0a0+git845792d ) ▼</a> |
| 222 | + <a href='https://pytorch.org/docs/versions.html'>master (1.13.0a0+gita46ac94 ) ▼</a> |
223 | 223 | </div> |
224 | 224 |
|
225 | 225 |
|
@@ -1512,11 +1512,19 @@ <h1>Source code for torch._jit_internal</h1><div class="highlight"><pre> |
1512 | 1512 | <span class="k">if</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">obj</span><span class="o">.</span><span class="n">_field_defaults</span><span class="p">]</span> |
1513 | 1513 | <span class="k">else</span><span class="p">:</span> |
1514 | 1514 | <span class="n">defaults</span> <span class="o">=</span> <span class="p">[]</span> |
| 1515 | + <span class="c1"># In 3.10 recommended way to get annotations is to call `inspect.get_annotations` function</span> |
| 1516 | + <span class="c1"># Also, annotations from base class are not inherited so they need to be queried explicitly</span> |
| 1517 | + <span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span> <span class="o"><</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">10</span><span class="p">):</span> |
| 1518 | + <span class="n">obj_annotations</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="s1">'__annotations__'</span><span class="p">,</span> <span class="p">{})</span> |
| 1519 | + <span class="k">else</span><span class="p">:</span> |
| 1520 | + <span class="n">obj_annotations</span> <span class="o">=</span> <span class="n">inspect</span><span class="o">.</span><span class="n">get_annotations</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> |
| 1521 | + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">obj_annotations</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="s2">"__base__"</span><span class="p">):</span> |
| 1522 | + <span class="n">obj_annotations</span> <span class="o">=</span> <span class="n">inspect</span><span class="o">.</span><span class="n">get_annotations</span><span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">__base__</span><span class="p">)</span> |
| 1523 | + |
1515 | 1524 | <span class="n">annotations</span> <span class="o">=</span> <span class="p">[]</span> |
1516 | | - <span class="n">has_annotations</span> <span class="o">=</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="s1">'__annotations__'</span><span class="p">)</span> |
1517 | 1525 | <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">obj</span><span class="o">.</span><span class="n">_fields</span><span class="p">:</span> |
1518 | | - <span class="k">if</span> <span class="n">has_annotations</span> <span class="ow">and</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">obj</span><span class="o">.</span><span class="vm">__annotations__</span><span class="p">:</span> |
1519 | | - <span class="n">the_type</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">jit</span><span class="o">.</span><span class="n">annotations</span><span class="o">.</span><span class="n">ann_to_type</span><span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="vm">__annotations__</span><span class="p">[</span><span class="n">field</span><span class="p">],</span> <span class="n">fake_range</span><span class="p">())</span> |
| 1526 | + <span class="k">if</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">obj_annotations</span><span class="p">:</span> |
| 1527 | + <span class="n">the_type</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">jit</span><span class="o">.</span><span class="n">annotations</span><span class="o">.</span><span class="n">ann_to_type</span><span class="p">(</span><span class="n">obj_annotations</span><span class="p">[</span><span class="n">field</span><span class="p">],</span> <span class="n">fake_range</span><span class="p">())</span> |
1520 | 1528 | <span class="n">annotations</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">the_type</span><span class="p">)</span> |
1521 | 1529 | <span class="k">else</span><span class="p">:</span> |
1522 | 1530 | <span class="n">annotations</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">_C</span><span class="o">.</span><span class="n">TensorType</span><span class="o">.</span><span class="n">getInferred</span><span class="p">())</span> |
|
0 commit comments