Python3 type hint annotations are not considered
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:
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>}
Well spotted, and great test case, thanks for the bug report. I'll try to get to that this weekend.
(unrelated, but both of our avatars are photographs of Autumn leaves)
Any updates with this? Running into the same issue.
It looks like #49 fixed this?