summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2020-04-29 10:29:12 -0700
committerScott Shawcroft <scott@tannewt.org>2020-04-29 10:29:12 -0700
commit8c77252adf4b78a2a4fe5d138e470fb70ae7233b (patch)
tree361edfda732995829ec51f0cd10affe4223b454a /tools
parentc7b721f4f19b561006d9d2e1c46d79d9f22bf4b0 (diff)
Better handle //| and do __init__.c first.
Diffstat (limited to 'tools')
-rw-r--r--tools/extract_pyi.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/tools/extract_pyi.py b/tools/extract_pyi.py
index c7f3e4604..de783eb27 100644
--- a/tools/extract_pyi.py
+++ b/tools/extract_pyi.py
@@ -20,12 +20,22 @@ for module in modules:
if not os.path.isdir(module_path):
continue
pyi_lines = []
- for class_file in os.listdir(module_path):
+ classes = os.listdir(module_path)
+ classes = [x for x in sorted(classes) if x.endswith(".c")]
+ if classes[-1] == "__init__.c":
+ classes.insert(0, classes.pop())
+ for class_file in classes:
class_path = os.path.join(module_path, class_file)
with open(class_path, "r") as f:
for line in f:
- if line.startswith("//| "):
- pyi_lines.append(line[4:])
+ if line.startswith("//|"):
+ if line[3] == " ":
+ line = line[4:]
+ elif line[3] == "\n":
+ line = line[3:]
+ else:
+ continue
+ pyi_lines.append(line)
stub_filename = os.path.join(stub_directory, module + ".pyi")
print(stub_filename)