Typing

These types and helper functions can be used to annotate Parametric Components and Models to improve documentation by adding metaautodata with constraints, units, etc.

photonforge.typing.PositiveFloat

alias of Annotated[float, exclusiveMinimum=0]

photonforge.typing.NonNegativeFloat

alias of Annotated[float, minimum=0]

photonforge.typing.NegativeFloat

alias of Annotated[float, exclusiveMaximum=0]

photonforge.typing.NonPositiveFloat

alias of Annotated[float, maximum=0]

photonforge.typing.Fraction

alias of Annotated[float, maximum=1, minimum=0]

photonforge.typing.Coordinate

alias of Annotated[float, units=’μm’]

photonforge.typing.Dimension

alias of Annotated[float, minimum=0, units=’μm’]

photonforge.typing.PositiveDimension

alias of Annotated[float, exclusiveMinimum=0, units=’μm’]

photonforge.typing.Coordinate2D

alias of Annotated[Sequence[Annotated[float, units=’μm’]], maxItems=2, minItems=2]

photonforge.typing.Dimension2D

alias of Annotated[Sequence[Annotated[float, minimum=0, units=’μm’]], maxItems=2, minItems=2]

photonforge.typing.PositiveDimension2D

alias of Annotated[Sequence[Annotated[float, exclusiveMinimum=0, units=’μm’]], maxItems=2, minItems=2]

photonforge.typing.Angle

alias of Annotated[float, units=’°’]

photonforge.typing.Frequency

alias of Annotated[float, minimum=0, units=’Hz’]

photonforge.typing.Temperature

alias of Annotated[float, minimum=0, units=’K’]

photonforge.typing.Voltage

alias of Annotated[float, units=’V’]

photonforge.typing.Loss

alias of Annotated[float, minimum=0, units=’dB’]

photonforge.typing.PropagationLoss

alias of Annotated[float, minimum=0, units=’dB/μm’]

photonforge.typing.Dispersion

alias of Annotated[float, units=’s/μm²’]

photonforge.typing.DispersionSlope

alias of Annotated[float, units=’s/μm³’]

photonforge.typing.Layer

alias of Annotated[str | tuple[int, int], _]

photonforge.typing.PortSpecOrName

alias of Annotated[str | PortSpec, _]

photonforge.typing.PortReference

alias of Annotated[tuple[Reference, str] | tuple[Reference, str, int], _]

photonforge.typing.TerminalReference

alias of Annotated[tuple[Reference, str] | tuple[Reference, str, int], _]

photonforge.typing.Medium

alias of Annotated[Medium | AnisotropicMedium | PECMedium | PMCMedium | PoleResidue | Sellmeier | Lorentz | Debye | Drude | FullyAnisotropicMedium | CustomMedium | CustomPoleResidue | CustomSellmeier | CustomLorentz | CustomDebye | CustomDrude | CustomAnisotropicMedium | PerturbationMedium | PerturbationPoleResidue | LossyMetalMedium, _]

Helper functions

annotate(field, **kwargs)

Annotate a type with metadata.

kwargs_for(fn_or_cls)

Type that represents keyword arguments for a function or class.

array(dtype, ndims[, ndims_max])

Type for arrays with specified number of dimensions.

expression(num_variables, min_expressions)

Type for Expression with a minimal number of values.