You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs: Info and Schema subclasses render the base __new__'s (*args, **kwargs) signature, not their fields #1860
Info-based data models render as Stream(*args: VT, **kwargs: VT) (interface/misc.html), Index(*args: VT, **kwargs: VT) (foundation/traceflow/tcp.html), and likewise across the data models. Every Schema class renders (*args: _VT, **kwargs: _VT), e.g. schema.transport.tcp.TCP. Yet inspect.signature(Stream) is already (filename, packets, conversations).
Root cause: Sphinx 9.1 (ext/autodoc/_dynamic/_signatures.py) tries __signature__, the metaclass __call__, then a user-defined __new__, before __init__. Info.__new__ (corekit/infoclass.py:391) and Schema.__new__ (protocols/schema/schema.py:443) are user-defined, so the generated per-class __init__ is never read.
Fix: an autodoc-process-signature handler in conf.py that builds the signature for these classes from inspect.signature(cls), with types from typing.get_type_hints(cls). On a Schema class inspect.signature gives every field a NO_VALUE default, which the handler must render sensibly; #1841 is related. Verify after #1856.
Blocked until #1856 merges. That PR bumps sphinx-autodoc-typehints, which changes how signatures render, and it edits docs/source/conf.py, which this fix also edits.
Started on top of #1877, the PR for #1856, so the conf.py edits don't conflict. One worker is taking #1858–#1863 together, since every fix goes through conf.py. Scope widened: under sphinx-autodoc-typehints 3.15.0, the same __new__ collapse also turns the protocol, reassembly and traceflow class signatures into (*args, **kwargs), so this fix covers those classes too (see #1877).
Activity
JarryShaw commentedon Oct 16, 2026
Blocked until #1856 merges. That PR bumps sphinx-autodoc-typehints, which changes how signatures render, and it edits
docs/source/conf.py, which this fix also edits.JarryShaw commentedon Oct 17, 2026
Started on top of #1877, the PR for #1856, so the
conf.pyedits don't conflict. One worker is taking #1858–#1863 together, since every fix goes throughconf.py. Scope widened: under sphinx-autodoc-typehints 3.15.0, the same__new__collapse also turns the protocol, reassembly and traceflow class signatures into(*args, **kwargs), so this fix covers those classes too (see #1877).docs(conf): fix class signatures, defaults, aenum names, table ids an…
docs(conf): fix class signatures, defaults, aenum names, table ids an…
docs(conf): fix class signatures, defaults, aenum names, table ids an…
docs(conf): fix class signatures, defaults, aenum names, table ids an…