Open
Description
Given t-pyannotate.py:
from pyannotate_runtime import collect_types
collect_types.init_types_collection()
collect_types.start()
def c(obj):
pass
def f():
class A:
pass
c(A())
f()
collect_types.stop()
collect_types.dump_stats("type_info.json")
Produces:
[
{
"path": "t-pyannotate.py",
"line": 8,
"func_name": "c",
"type_comments": [
"(__main__:f.<locals>.A) -> None"
],
"samples": 1
},
{
"path": "t-pyannotate.py",
"line": 12,
"func_name": "f",
"type_comments": [
"() -> None"
],
"samples": 1
},
{
"path": "t-pyannotate.py",
"line": 13,
"func_name": "A",
"type_comments": [
"() -> None"
],
"samples": 1
}
]
Running pyannotate -w
then crashes:
Traceback (most recent call last):
File "…/Vcs/pytest/.venv/bin/pyannotate", line 11, in <module>
load_entry_point('pyannotate', 'console_scripts', 'pyannotate')()
File "…/Vcs/pyannotate/pyannotate_tools/annotations/__main__.py", line 125, in main
data = generate_annotations_json_string(
File "…/Vcs/pyannotate/pyannotate_tools/annotations/main.py", line 60, in generate_annotations_json_string
signature = unify_type_comments(item.type_comments)
File "…/Vcs/pyannotate/pyannotate_tools/annotations/main.py", line 27, in unify_type_comments
arg_types, return_type = infer_annotation(type_comments)
File "…/Vcs/pyannotate/pyannotate_tools/annotations/infer.py", line 45, in infer_annotation
arg_types, return_type = parse_type_comment(comment)
File "…/Vcs/pyannotate/pyannotate_tools/annotations/parse.py", line 216, in parse_type_comment
return Parser(comment).parse()
File "…/Vcs/pyannotate/pyannotate_tools/annotations/parse.py", line 225, in __init__
self.tokens = tokenize(comment)
File "…/Vcs/pyannotate/pyannotate_tools/annotations/parse.py", line 193, in tokenize
raise ParseError(original)
pyannotate_tools.annotations.parse.ParseError: Invalid type comment: (__main__:f.<locals>.A) -> None
This is likely due to the "" in there I guess?
pyannotate b7f96ca (current master)