alecthomas / alecthomas/importmagic

Python3 type hint annotations are not considered

オープン
#46 コメント 4 件 リアクション 2 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
122
フォーク
21
PR マージ指標
30日以内にマージされた PR はありません

説明

Hi, thanks for the great project.

Currently it seems that importmagic doesn't look for `__annotations__` properties added in recent version of python 3, so python3 syntax-aware checkers complain if I use a type hint without importing the name, but importmagic will delete any import that's only referenced in a type annotation.

Test case:
```python
import importmagic

code = """
from typing import Iterable

def print_it(it: Iterable):
for i in it:
print(i)

print_it(['a', 'b', 'c'])
"""

scope = importmagic.Scope.from_source(code)
unresolved, unreferenced = scope.find_unresolved_and_unreferenced_symbols()
print("unreferenced: {}".format(unreferenced))

from typing import Iterable

def print_it(it: Iterable):
for i in it:
print(i)

print("function annotation: {}".format(print_it.__annotations__))
```

Output:
```
$ python3 importmagictest.py
unreferenced: {'Iterable'}
function annotation: {'it': typing.Iterable<+T_co>}
```

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。