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: BaseModel

Configuration 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

model_computed_fields

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_extra

Get extra fields set during validation.

model_fields

model_fields_set

Returns the set of fields that have been explicitly set on this model instance.

classmethod _convert_dtype(v: Any) → dtype#

Convert dtype from string to numpy dtype.

_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)}#
property model_fields_set: set[str]#

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.