Skip to content

Remove the DataType family — python types + *Meta typed dicts #413

Description

@coretl

Split out of #392, which grew too large to land green in one session. #392 delivered the getter/setter half (per its own "Note on size"); this issue is the remainder: removing the DataType family. Absorbs the naming pass (#396), which was previously folded into #392.

Scope

  • Remove the DataType family. Replace with python types + *Meta typed dicts: AttrR(float, precision=3, units="deg", getter=...) and A[AttrR[float], FloatMeta(...)].
  • Naming pass (was DRAFT: Naming pass (precision, Limits alignment, Array1D/Table hints) #396): precision; nested Limits with inheritance (Display→Control, Alarm→Warning, assert Warning⊆Alarm; unset ⇒ unbounded); Array1D/Table as the hint AND the runtime structure.

Metadata model (*Meta)

Out of scope

Key files (§9)

src/fastcs/attributes/, src/fastcs/datatypes/, plus every transport and the embedded connector for the attr.datatype.*attr.meta repoint.

Acceptance

uv run --locked tox -e pre-commit,type-checking,tests green; the demo controllers (src/fastcs/demo/) updated and green.

Note on size

Still large — the repoint sweep touches every transport. If it cannot land green in one session, prefer landing the *Meta types plus the Attribute.meta storage as a coherent green PR with the old DataType accessors kept as a shim, and leave a comment scoping the transport sweep — do not leave a broken tree or a half-migrated Closes.

ADR: 0014, 0017, 0012
Parent: #388
Blocked by: #392

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions