libera_utils.l1a.l1a_packet_configs.ArrayGroup#
- class libera_utils.l1a.l1a_packet_configs.ArrayGroup(*, name: str, field_pattern: str, field_count: int, dimension: str, dtype: dtype = <factory>)#
Bases:
BaseModelConfiguration for stacking multiple sequential fields into a fixed-size array.
This class defines how to stack multiple numbered fields (e.g., ICIE__SW_SEQ_ST_OP0 through ICIE__SW_SEQ_ST_OP7) into a 2D array with dimensions [PACKET, ARRAY_N].
- Variables:
name (str) – Name for the stacked variable (e.g., “ICIE__SW_SEQ_ST_OP”)
field_pattern (str) – Pattern with %i placeholder for field index (e.g., “ICIE__SW_SEQ_ST_OP%i”)
field_count (int) – Expected number of fields to stack (e.g., 8)
dimension (str) – Name of the array index dimension (e.g., “ARRAY_8”)
dtype (np.dtype) – Resulting numpy dtype for each stacked element (e.g.,
np.dtype("|S7"))
- __init__(**data: Any) None#
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Attributes
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Get extra fields set during validation.
Returns the set of fields that have been explicitly set on this model instance.
- _validate_array_group() ArrayGroup#
Validate ArrayGroup constraints after all fields are set.
- model_computed_fields = {}#
- model_config = {'arbitrary_types_allowed': True, 'frozen': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property model_extra: Dict[str, Any] | None#
Get extra fields set during validation.
- Returns:
A dictionary of extra fields, or None if config.extra is not set to “allow”.
- model_fields = {'dimension': FieldInfo(annotation=str, required=True), 'dtype': FieldInfo(annotation=dtype, required=False, default_factory=<lambda>), 'field_count': FieldInfo(annotation=int, required=True), 'field_pattern': FieldInfo(annotation=str, required=True), 'name': FieldInfo(annotation=str, required=True)}#