twisted / pydoctor

This is pydoctor, an API documentation generator that works by static analysis.
https://pydoctor.readthedocs.io/
Other
179 stars 47 forks source link

Transform annotations to use python 3.10 style #781

Closed tristanlatr closed 2 months ago

tristanlatr commented 2 months ago

Fix #780 and slightly improve the colorizer for subscripts.

github-actions[bot] commented 2 months ago

Diff from pydoctor_primer, showing the effect of this PR on open source code:


urllib3 (https://github.com/urllib3/urllib3): typechecking got 16.83x faster (19.3s -> 1.1s)
(Performance measurements are based on a single noisy sample)
+ Traceback (most recent call last):
+   File "/new_pydoctor/venv/bin/pydoctor", line 8, in <module>
+     sys.exit(main())
+              ^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/driver.py", line 166, in main
+     system = get_system(options)
+              ^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/driver.py", line 81, in get_system
+     builder.buildModules()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1635, in buildModules
+     self.system.process()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in process
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 433, in _importNames
+     self.system.getProcessedModule(f'{modname}.{orgname}')
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 148, in visit
+     v.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 131, in visit_Assign
+     attr.value = upgrade_annotation(unstring_annotation(
+                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

... (truncated 150 lines) ...

pydoctor (https://github.com/twisted/pydoctor): typechecking got 10.89x faster (37.3s -> 3.4s)
(Performance measurements are based on a single noisy sample)
+ Traceback (most recent call last):
+   File "/new_pydoctor/venv/bin/pydoctor", line 8, in <module>
+     sys.exit(main())
+              ^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/driver.py", line 166, in main
+     system = get_system(options)
+              ^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/driver.py", line 81, in get_system
+     builder.buildModules()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1635, in buildModules
+     self.system.process()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in process
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 433, in _importNames
+     self.system.getProcessedModule(f'{modname}.{orgname}')
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 148, in visit
+     v.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 131, in visit_Assign
+     attr.value = upgrade_annotation(unstring_annotation(
+                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ TypeError: upgrade_annotation() got multiple values for argument 'section'

scrapy (https://github.com/scrapy/scrapy): typechecking got 65.91x faster (49.9s -> 0.8s)
(Performance measurements are based on a single noisy sample)
+ Traceback (most recent call last):
+   File "/new_pydoctor/venv/bin/pydoctor", line 8, in <module>
+     sys.exit(main())
+              ^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/driver.py", line 166, in main
+     system = get_system(options)
+              ^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/driver.py", line 81, in get_system
+     builder.buildModules()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1635, in buildModules
+     self.system.process()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in process
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 143, in visit
+     super().visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 333, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 418, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1420, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout
+     self.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 148, in visit
+     v.visit(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 21, in visit
+     visitor(ob)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 131, in visit_Assign
+     attr.value = upgrade_annotation(unstring_annotation(
+                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ TypeError: upgrade_annotation() got multiple values for argument 'section'
- /projects/scrapy/scrapy/item.py:52: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/scrapy/scrapy/item.py:52: bad docstring: Unknown interpreted text role "ref".
- /projects/scrapy/scrapy/item.py:60: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/scrapy/scrapy/item.py:60: bad docstring: Unknown interpreted text role "ref".
- /projects/scrapy/scrapy/item.py:67: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/scrapy/scrapy/item.py:67: bad docstring: Unknown interpreted text role "ref".
- /projects/scrapy/scrapy/settings/__init__.py:534: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/scrapy/scrapy/settings/__init__.py:534: bad docstring: Unknown interpreted text role "ref".
- /projects/scrapy/scrapy/addons.py:17: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/scrapy/scrapy/addons.py:17: bad docstring: Unknown interpreted text role "ref".
- /projects/scrapy/scrapy/utils/request.py:133: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/utils/request.py:133: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:130: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:130: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:133: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:133: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:133: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:133: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:133: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:133: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:138: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:138: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:144: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:144: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:149: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:149: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:149: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:149: bad docstring: Unknown interpreted text role "ref".
- /projects/scrapy/scrapy/core/scheduler.py:154: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:154: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:158: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:158: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:162: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:162: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:166: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:166: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/core/scheduler.py:171: bad docstring: No role entry for "setting" in module "docutils.parsers.rst.languages.en".
- Trying "setting" as canonical role name.
- /projects/scrapy/scrapy/core/scheduler.py:171: bad docstring: Unknown interpreted text role "setting".
- /projects/scrapy/scrapy/crawler.py:233: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".

... (truncated 321 lines) ...

twine (https://github.com/pypa/twine)
- /projects/twine/twine/commands/check.py:122: Documented parameter "output_stream" does not exist
- /projects/twine/twine/settings.py:38: Cannot find link target for "TypeError"
+ Traceback (most recent call last):
+   File "/new_pydoctor/venv/bin/pydoctor", line 8, in <module>
+     sys.exit(main())
+              ^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/driver.py", line 166, in main
+     system = get_system(options)
+              ^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/driver.py", line 81, in get_system
+     builder.buildModules()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1635, in buildModules
+     self.system.process()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in process
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1450, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1176, in processModuleAST
+     vis.walkabout(mod_ast)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 190, in walkabout
+     self.walkabout(child)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/visitor.py", line 181, in walkabout

... (truncated 763 lines) ...```
github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

Diff from pydoctor_primer, showing the effect of this PR on open source code:

sphinx (https://github.com/sphinx-doc/sphinx): typechecking got 1.09x faster (145.1s -> 133.6s)
(Performance measurements are based on a single noisy sample)

numpy (https://github.com/numpy/numpy): typechecking got 1.05x slower (215.3s -> 226.6s)
(Performance measurements are based on a single noisy sample)
github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

Diff from pydoctor_primer, showing the effect of this PR on open source code:

numpy (https://github.com/numpy/numpy): typechecking got 1.15x slower (186.3s -> 214.0s)
(Performance measurements are based on a single noisy sample)
github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅

github-actions[bot] commented 2 months ago

According to pydoctor_primer, this change doesn't affect pydoctor warnings on a corpus of open source code. ✅