ts_ids_components.xrd.system module#

System component for XRD IDSs.

XrdSystem extends the generic System component with the fields common to XRD instruments: a human-readable system name and serial number.

XrdSystem carries a pk (UUIDPrimaryKey) so a consuming IDS can declare it as a top-level array (systems: List[XrdSystem]) and datacubes (see ts_ids_components.xrd.datacube and ts_ids_components.xrd.datacube_raw) can reference the specific system that produced them via fk_system, rather than relying on a file-wide singleton. pk values must still be generated deterministically by the task script (seeded from file content and task script identity), not by this component.

Model XrdSystem[source]#

Bases: System, Name, SerialNumber

Instrument system information common to all XRD vendors.

Show JSON schema
{
   "description": "Instrument system information common to all XRD vendors.",
   "type": "object",
   "properties": {
      "serial_number": {
         "description": "System serial number. Indicates a unique instrument identifier within the same model line from a specific vendor. This is provided by the system vendor, unlike an ID or name which are usually created by the system owner or user.",
         "type": [
            "string",
            "null"
         ]
      },
      "name": {
         "description": "Name for the system. This is usually a human-readable name defined by the system owner or user. It may be changed over time as the system is used for different purposes, unlike the ID which typically doesn't change.",
         "type": [
            "string",
            "null"
         ]
      },
      "vendor": {
         "description": "The instrument vendor or manufacturer, like 'PerkinElmer' or 'Agilent'.",
         "type": [
            "string",
            "null"
         ]
      },
      "model": {
         "description": "A specific model instrument type from a vendor.",
         "type": [
            "string",
            "null"
         ]
      },
      "type": {
         "description": "Indicates the type of instrument that's generating data.",
         "type": [
            "string",
            "null"
         ]
      },
      "pk": {
         "@primary_key": true,
         "description": "Primary key for this system, referenced by datacubes belonging to it.",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "vendor",
      "model",
      "type",
      "pk"
   ]
}

Validators:

field model: Required[Nullable[str]]#

A specific model instrument type from a vendor.

field name: Nullable[str]#

Name for the system. This is usually a human-readable name defined by the system owner or user. It may be changed over time as the system is used for different purposes, unlike the ID which typically doesn’t change.

field pk: str#

Primary key for this system, referenced by datacubes belonging to it.

Constraints:
  • func = <function validate_uuid at 0x7f1493ac61f0>

  • json_schema_input_type = PydanticUndefined

field serial_number: Nullable[str]#

System serial number. Indicates a unique instrument identifier within the same model line from a specific vendor. This is provided by the system vendor, unlike an ID or name which are usually created by the system owner or user.

field type_: Required[Nullable[str]] (alias 'type')#

Indicates the type of instrument that’s generating data.

field vendor: Required[Nullable[str]]#

The instrument vendor or manufacturer, like ‘PerkinElmer’ or ‘Agilent’.