diff options
| author | Scott Shawcroft <scott@adafruit.com> | 2020-05-27 10:35:53 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-27 10:35:53 -0700 |
| commit | 7cd92dd94c9a9cf9817ddf7d16e6b8860d8ad142 (patch) | |
| tree | d161ff4297de5b7515f31cd5870ea08709a02b6f | |
| parent | 820d5092b3668bd1f7bb40380248f0dc0d90790a (diff) | |
| parent | 4e22b9a3464bbace0d0cd6d51bf2afaf40cd5722 (diff) | |
Merge pull request #2899 from dherrada/extract-types
Added extract_types.py script
| -rw-r--r-- | tools/extract_pyi.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tools/extract_pyi.py b/tools/extract_pyi.py index e590e25f1..d749d202b 100644 --- a/tools/extract_pyi.py +++ b/tools/extract_pyi.py @@ -52,7 +52,22 @@ def convert_folder(top_level, stub_directory): # Validate that the module is a parseable stub. total += 1 try: - astroid.parse(stub_contents) + tree = astroid.parse(stub_contents) + for i in tree.body: + if 'name' in i.__dict__: + print(i.__dict__['name']) + for j in i.body: + if isinstance(j, astroid.scoped_nodes.FunctionDef): + if None in j.args.__dict__['annotations']: + print(f"Missing parameter type: {j.__dict__['name']} on line {j.__dict__['lineno']}\n") + if j.returns: + if 'Any' in j.returns.__dict__.values(): + print(f"Missing return type: {j.__dict__['name']} on line {j.__dict__['lineno']}") + elif isinstance(j, astroid.node_classes.AnnAssign): + if 'name' in j.__dict__['annotation'].__dict__: + if j.__dict__['annotation'].__dict__['name'] == 'Any': + print(f"missing attribute type on line {j.__dict__['lineno']}") + ok += 1 except astroid.exceptions.AstroidSyntaxError as e: e = e.__cause__ |
