twisted / pydoctor

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

Add support for type alias statements #771

Closed tristanlatr closed 6 months ago

tristanlatr commented 6 months ago

Type alias statements were introduced in Python 3.12

codecov[bot] commented 6 months ago

Codecov Report

Attention: Patch coverage is 96.15385% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 92.69%. Comparing base (fe29bb7) to head (3a3a7ae).

Files Patch % Lines
pydoctor/astbuilder.py 83.33% 0 Missing and 1 partial :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #771 +/- ## ======================================= Coverage 92.69% 92.69% ======================================= Files 47 47 Lines 8337 8354 +17 Branches 1846 1849 +3 ======================================= + Hits 7728 7744 +16 Misses 349 349 - Partials 260 261 +1 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 6 months ago

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

github-actions[bot] commented 6 months ago

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


bottle (https://github.com/bottlepy/bottle)
+ 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 1649, in buildModules
+     self.system.process()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1478, in process
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1180, 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 764, in visit_Assign
+     self._handleAssignment(target, annotation, expr, lineno)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 736, in _handleAssignment
+     self._handleAssignmentInModule(target, annotation, expr, lineno, augassign=augassign)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 603, in _handleAssignmentInModule
+     self._handleModuleVar(target, annotation, expr, lineno, augassign=augassign)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 588, in _handleModuleVar
+     self._handleConstant(obj, annotation, expr, lineno, 
+     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 495, in _handleConstant
+     if is_constant(obj, annotation=annotation, value=value):
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 90, in is_constant
+     return obj.name.isupper() or is_using_typing_final(annotation, obj)
+                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astutils.py", line 185, in is_using_typing_final
+     return is_using_annotations(expr, ("typing.Final", "typing_extensions.Final"), ctx)
+            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astutils.py", line 197, in is_using_annotations
+     full_name, dotted_name = node2fullname(expr, ctx), '.'.join(node2dottedname(expr))
+                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ TypeError: can only join an iterable
- /projects/bottle/bottle.py:3012: bad docstring: Definition list ends without a blank line; unexpected unindent.
- /projects/bottle/bottle.py:3591: ambiguous ref to name, could be bottle.Route.name, bottle.HeaderProperty.name, bottle.JSONPlugin.name, bottle.TemplatePlugin.name, bottle._ImportRedirect.name, bottle.FileUpload.name, bottle.BaseTemplate.name
- /projects/bottle/bottle.py:3591: Cannot find link target for "name"
- /projects/bottle/bottle.py:3591: Cannot find link target for "pack.mod" (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:3592: Cannot find link target for "pack.mod.func" (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:3128: Parameter "script_name" was already documented
- /projects/bottle/bottle.py:3641: Cannot find link target for "wsgiref"
- /projects/bottle/bottle.py:3649: Documented parameter "options" does not exist, variable keywords should be documented with the "keyword" field
- /projects/bottle/bottle.py:2843: Cannot find link target for "Save as..." (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:295: Cannot find link target for "/contact"
- /projects/bottle/bottle.py:296: Cannot find link target for "page"
- /projects/bottle/bottle.py:297: Cannot find link target for "routing"
- /projects/bottle/bottle.py:804: Cannot find link target for "Plugin"
- /projects/bottle/bottle.py:778: Cannot find link target for "/prefix"
- /projects/bottle/bottle.py:779: Cannot find link target for "/prefix/"
- /projects/bottle/bottle.py:767: Cannot find link target for "mount-point"
- /projects/bottle/bottle.py:900: Cannot find link target for "Plugin.apply" (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:889: Cannot find link target for "GET"
- /projects/bottle/bottle.py:889: Cannot find link target for "PUT"
- /projects/bottle/bottle.py:889: Cannot find link target for "GET"
- /projects/bottle/bottle.py:1206: Cannot find link target for "Signed Cookie"
- /projects/bottle/bottle.py:1207: Cannot find link target for "secret"
- /projects/bottle/bottle.py:1362: Cannot find link target for "io.BytesIO" (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:1364: Cannot find link target for "seek(0)"
- /projects/bottle/bottle.py:1261: Cannot find link target for "multipart/form-data"
- /projects/bottle/bottle.py:1237: Cannot find link target for "url-encoded"
- /projects/bottle/bottle.py:1237: Cannot find link target for "multipart/form-data"
- /projects/bottle/bottle.py:1483: Cannot find link target for "X-Requested-With"
- /projects/bottle/bottle.py:1381: Cannot find link target for "cgi.FieldStorage" (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:1421: Cannot find link target for "urlparse.SplitResult" (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:1882: Cannot find link target for "domain"
- /projects/bottle/bottle.py:1882: ambiguous ref to path, could be bottle.BaseRequest.path, bottle.ResourceManager.path
- /projects/bottle/bottle.py:1882: Cannot find link target for "path"
- /projects/bottle/bottle.py:1801: Cannot find link target for "secret"
- /projects/bottle/bottle.py:1802: Cannot find link target for "Signed Cookie"
- /projects/bottle/bottle.py:1809: Cannot find link target for "cookie.Morsel" (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:1822: Cannot find link target for "maxage"
- /projects/bottle/bottle.py:1811: Documented parameter "maxage" does not exist, variable keywords should be documented with the "keyword" field
- /projects/bottle/bottle.py:1812: Documented parameter "expires" does not exist, variable keywords should be documented with the "keyword" field
- /projects/bottle/bottle.py:1813: Documented parameter "domain" does not exist, variable keywords should be documented with the "keyword" field
- /projects/bottle/bottle.py:1815: Documented parameter "path" does not exist, variable keywords should be documented with the "keyword" field
- /projects/bottle/bottle.py:1816: Documented parameter "secure" does not exist, variable keywords should be documented with the "keyword" field
- /projects/bottle/bottle.py:1817: Documented parameter "httponly" does not exist, variable keywords should be documented with the "keyword" field
- /projects/bottle/bottle.py:1820: Cannot find link target for "lax"
- /projects/bottle/bottle.py:1820: Cannot find link target for "strict"
- /projects/bottle/bottle.py:1820: Cannot find link target for "none"
- /projects/bottle/bottle.py:1819: Documented parameter "samesite" does not exist, variable keywords should be documented with the "keyword" field
- /projects/bottle/bottle.py:2021: Cannot find link target for "template_engine"
- /projects/bottle/bottle.py:2404: Cannot find link target for "python:configparser.ConfigParser" (you can link to external docs with --intersphinx)
- /projects/bottle/bottle.py:2670: Cannot find link target for "/"
- /projects/bottle/bottle.py:2707: Cannot find link target for "None"
- /projects/bottle/bottle.py:3476: Cannot find link target for "backlog"
- /projects/bottle/bottle.py:3479: Cannot find link target for "family"
- these 1 objects' docstrings contain syntax errors:
-     bottle._parse_http_header

pydoctor (https://github.com/twisted/pydoctor): typechecking got 11.63x faster (34.2s -> 2.9s)
(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 1649, in buildModules
+     self.system.process()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1478, in process
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1180, 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 764, in visit_Assign
+     self._handleAssignment(target, annotation, expr, lineno)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 736, in _handleAssignment
+     self._handleAssignmentInModule(target, annotation, expr, lineno, augassign=augassign)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 603, in _handleAssignmentInModule
+     self._handleModuleVar(target, annotation, expr, lineno, augassign=augassign)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 588, in _handleModuleVar
+     self._handleConstant(obj, annotation, expr, lineno, 
+     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 495, in _handleConstant
+     if is_constant(obj, annotation=annotation, value=value):
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 90, in is_constant
+     return obj.name.isupper() or is_using_typing_final(annotation, obj)
+                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astutils.py", line 185, in is_using_typing_final
+     return is_using_annotations(expr, ("typing.Final", "typing_extensions.Final"), ctx)
+            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astutils.py", line 197, in is_using_annotations
+     full_name, dotted_name = node2fullname(expr, ctx), '.'.join(node2dottedname(expr))
+                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ TypeError: can only join an iterable

pycma (https://github.com/CMA-ES/pycma): typechecking got 49.93x faster (39.7s -> 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 1649, in buildModules
+     self.system.process()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1478, in process
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1180, 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 764, in visit_Assign
+     self._handleAssignment(target, annotation, expr, lineno)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 736, in _handleAssignment
+     self._handleAssignmentInModule(target, annotation, expr, lineno, augassign=augassign)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 603, in _handleAssignmentInModule
+     self._handleModuleVar(target, annotation, expr, lineno, augassign=augassign)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 588, in _handleModuleVar
+     self._handleConstant(obj, annotation, expr, lineno, 
+     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 495, in _handleConstant
+     if is_constant(obj, annotation=annotation, value=value):
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 90, in is_constant
+     return obj.name.isupper() or is_using_typing_final(annotation, obj)
+                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astutils.py", line 185, in is_using_typing_final
+     return is_using_annotations(expr, ("typing.Final", "typing_extensions.Final"), ctx)
+            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astutils.py", line 197, in is_using_annotations
+     full_name, dotted_name = node2fullname(expr, ctx), '.'.join(node2dottedname(expr))
+                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ TypeError: can only join an iterable
- /projects/pycma/cma/transformations.py:435: Unable to figure out value for __doc__ assignment, maybe too complex
- /projects/pycma/cma/fitness_functions.py:82: Unable to figure out value for __doc__ assignment, maybe too complex
- /projects/pycma/cma/__init__.py:20: Cannot find link target for "cma.CMAEvolutionStrategy"
- /projects/pycma/cma/__init__.py:27: ambiguous ref to fmin, could be cma.evolution_strategy.fmin, cma.purecma.fmin
- /projects/pycma/cma/__init__.py:27: ambiguous ref to fmin, could be cma.evolution_strategy.fmin, cma.purecma.fmin
- /projects/pycma/cma/__init__.py:27: Cannot find link target for "fmin"
- /projects/pycma/cma/__init__.py:36: Cannot find link target for "numpy"
- /projects/pycma/cma/__init__.py:36: Cannot find link target for "numpy"
- /projects/pycma/cma/__init__.py:37: Cannot find link target for "matplotlib.pyplot" (you can link to external docs with --intersphinx)
- /projects/pycma/cma/__init__.py:96: Unknown field 'license'
- /projects/pycma/cma/__init__.py:90: ambiguous ref to fmin, could be cma.evolution_strategy.fmin, cma.purecma.fmin
- /projects/pycma/cma/__init__.py:90: ambiguous ref to fmin, could be cma.evolution_strategy.fmin, cma.purecma.fmin
- /projects/pycma/cma/__init__.py:90: Cannot find link target for "fmin"
- /projects/pycma/cma/constraints_handler.py:171: Cannot find link target for "index"
- /projects/pycma/cma/constraints_handler.py:120: Cannot find link target for "True"
- /projects/pycma/cma/constraints_handler.py:150: Cannot find link target for "x"
- /projects/pycma/cma/constraints_handler.py:152: Cannot find link target for "True"
- /projects/pycma/cma/constraints_handler.py:153: Cannot find link target for "x"
- /projects/pycma/cma/constraints_handler.py:107: ambiguous ref to dimension, could be cma.constraints_handler.CountLastSameChanges.dimension, cma.constraints_handler.AugmentedLagrangian.dimension, cma.constraints_handler.ConstrainedFitnessAL.dimension
- /projects/pycma/cma/constraints_handler.py:107: Cannot find link target for "dimension"
- /projects/pycma/cma/constraints_handler.py:275: Cannot find link target for "None"
- /projects/pycma/cma/constraints_handler.py:275: Cannot find link target for "None"
- /projects/pycma/cma/constraints_handler.py:317: Cannot find link target for "cma.fmin"
- /projects/pycma/cma/constraints_handler.py:318: Cannot find link target for "cma.CMAEvolutionStrategy"
- /projects/pycma/cma/constraints_handler.py:337: ambiguous ref to fmin, could be cma.evolution_strategy.fmin, cma.purecma.fmin
- /projects/pycma/cma/constraints_handler.py:337: ambiguous ref to fmin, could be cma.evolution_strategy.fmin, cma.purecma.fmin
- /projects/pycma/cma/constraints_handler.py:337: Cannot find link target for "fmin"
- /projects/pycma/cma/constraints_handler.py:343: Cannot find link target for "tell"
- /projects/pycma/cma/constraints_handler.py:396: Cannot find link target for "x"
- /projects/pycma/cma/constraints_handler.py:396: Cannot find link target for "x"
- /projects/pycma/cma/constraints_handler.py:349: Cannot find link target for "None"
- /projects/pycma/cma/constraints_handler.py:349: Cannot find link target for "None"
- /projects/pycma/cma/constraints_handler.py:351: Cannot find link target for "list"
- /projects/pycma/cma/constraints_handler.py:351: Cannot find link target for "numpy.array", resolved from "np.array" (you can link to external docs with --intersphinx)
- /projects/pycma/cma/constraints_handler.py:434: Cannot find link target for "numpy.array", resolved from "np.array" (you can link to external docs with --intersphinx)
- /projects/pycma/cma/constraints_handler.py:451: Cannot find link target for "gp"
- /projects/pycma/cma/constraints_handler.py:540: Cannot find link target for "cma.constraints_handler.ConstrainedSolutionsArchive.archive.infos", resolved from "archive.infos"
- /projects/pycma/cma/constraints_handler.py:569: Cannot find link target for "x"
- /projects/pycma/cma/constraints_handler.py:572: Cannot find link target for "true_g"
- /projects/pycma/cma/constraints_handler.py:585: Cannot find link target for "kwargs"
- /projects/pycma/cma/constraints_handler.py:642: Cannot find link target for "deque"
- /projects/pycma/cma/constraints_handler.py:642: Cannot find link target for "list"
- /projects/pycma/cma/constraints_handler.py:655: Cannot find link target for "val"
- /projects/pycma/cma/constraints_handler.py:655: Cannot find link target for "i"
- /projects/pycma/cma/constraints_handler.py:655: Cannot find link target for "len_"
- /projects/pycma/cma/constraints_handler.py:659: Cannot find link target for "val"
- /projects/pycma/cma/constraints_handler.py:665: Cannot find link target for "val"
- /projects/pycma/cma/constraints_handler.py:665: Cannot find link target for "deque"
- /projects/pycma/cma/constraints_handler.py:734: Cannot find link target for "force"
- /projects/pycma/cma/constraints_handler.py:750: Cannot find link target for "change"
- /projects/pycma/cma/constraints_handler.py:784: Cannot find link target for "cma.ConstrainedFitnessAL"
- /projects/pycma/cma/constraints_handler.py:787: Cannot find link target for "equality"
- /projects/pycma/cma/constraints_handler.py:1058: Cannot find link target for "list"
- /projects/pycma/cma/constraints_handler.py:1089: Cannot find link target for "True"
- /projects/pycma/cma/constraints_handler.py:1109: Cannot find link target for "True"
- /projects/pycma/cma/constraints_handler.py:1109: Cannot find link target for "False"
- /projects/pycma/cma/constraints_handler.py:1131: Cannot find link target for "True"
- /projects/pycma/cma/constraints_handler.py:1131: Cannot find link target for "False"
- /projects/pycma/cma/constraints_handler.py:1083: Cannot find link target for "True"
- /projects/pycma/cma/constraints_handler.py:1095: Cannot find link target for "True"
- /projects/pycma/cma/constraints_handler.py:1095: Cannot find link target for "False"
- /projects/pycma/cma/constraints_handler.py:1119: Cannot find link target for "True"
- /projects/pycma/cma/constraints_handler.py:1119: Cannot find link target for "False"
- /projects/pycma/cma/constraints_handler.py:901: Cannot find link target for "None"
- /projects/pycma/cma/constraints_handler.py:959: Cannot find link target for "None"
- /projects/pycma/cma/constraints_handler.py:1050: Cannot find link target for "True"

... (truncated 649 lines) ...

attrs (https://github.com/python-attrs/attrs)
+ 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 1649, in buildModules
+     self.system.process()
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1478, in process
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1180, 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 332, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 432, in _importNames
+     self.system.getProcessedModule(f'{modname}.{orgname}')
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1434, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1180, 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 332, in visit_ImportFrom
+     self._importNames(modname, node.names)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 417, in _importNames
+     mod = self.system.getProcessedModule(modname)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1434, in getProcessedModule
+     self.processModule(mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/model.py", line 1464, in processModule
+     builder.processModuleAST(ast, mod)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 1180, 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 764, in visit_Assign
+     self._handleAssignment(target, annotation, expr, lineno)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 736, in _handleAssignment
+     self._handleAssignmentInModule(target, annotation, expr, lineno, augassign=augassign)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 603, in _handleAssignmentInModule
+     self._handleModuleVar(target, annotation, expr, lineno, augassign=augassign)
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 588, in _handleModuleVar
+     self._handleConstant(obj, annotation, expr, lineno, 
+     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 497, in _handleConstant
+     cls._tweakConstantAnnotation(obj=obj, annotation=annotation, 
+     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astbuilder.py", line 506, in _tweakConstantAnnotation
+     if is_using_typing_final(annotation, obj):
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astutils.py", line 185, in is_using_typing_final
+     return is_using_annotations(expr, ("typing.Final", "typing_extensions.Final"), ctx)
+            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   File "/new_pydoctor/venv/lib/python3.11/site-packages/pydoctor/astutils.py", line 197, in is_using_annotations
+     full_name, dotted_name = node2fullname(expr, ctx), '.'.join(node2dottedname(expr))
+                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ TypeError: can only join an iterable
- /projects/attrs/src/attr/_make.py:2573: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/attrs/src/attr/_make.py:2573: bad docstring: Unknown interpreted text role "ref".
- /projects/attrs/src/attr/_make.py:2584: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/attrs/src/attr/_make.py:2584: bad docstring: Unknown interpreted text role "ref".
- /projects/attrs/src/attr/_make.py:497: bad docstring: Inline interpreted text or phrase reference start-string without end-string.
- /projects/attrs/src/attr/_make.py:497: bad docstring: Inline interpreted text or phrase reference start-string without end-string.
- /projects/attrs/src/attr/filters.py:13: bad docstring: Inline interpreted text or phrase reference start-string without end-string.
- /projects/attrs/src/attr/_make.py:162: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/attrs/src/attr/_make.py:162: bad docstring: Unknown interpreted text role "ref".
- /projects/attrs/src/attr/_make.py:212: bad docstring: No role entry for "ref" in module "docutils.parsers.rst.languages.en".
- Trying "ref" as canonical role name.
- /projects/attrs/src/attr/_make.py:212: bad docstring: Unknown interpreted text role "ref".
- /projects/attrs/src/attr/_make.py:1334: bad docstring: No role entry for "term" in module "docutils.parsers.rst.languages.en".
- Trying "term" as canonical role name.

... (truncated 1597 lines) ...```
github-actions[bot] commented 6 months ago

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

github-actions[bot] commented 6 months ago

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

github-actions[bot] commented 6 months ago

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

tristanlatr commented 6 months ago

TODO next: Add support for type parameters in typer aliases, functions and classes.

github-actions[bot] commented 6 months ago

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

tristanlatr commented 6 months ago

Replaced by #772