Skip to content

type_checking

type_checking #

The procedure type system — everything that makes a node class type-safe.

The Procedure base class in the parent package is deliberately thin; the machinery that classifies fields, validates a DAG at construction, tracks return types, and builds the node classes themselves lives here in single-responsibility leaf modules:

  • [.markers][] — the Input / Setting / Substeps field markers.
  • [.annotations][] — pure annotation algebra (the one home for get_origin / get_args / optional unwrapping).
  • [.fields][] — field classification (the three roles + partition).
  • .validation — construction-time type checking of inputs/substeps/settings.
  • [.returns][] — return-type extraction from Procedure[X] + forward_types.
  • [.construction][] — the metaclass, make_procedure, and NODE_REGISTRY.

This __init__ is documentation-only; internal modules import from the leaf modules directly, and the public names re-export through capturegraph.procedures.procedure.