ts_ids_components.particle_sizer.system module#
System component for particle sizer IDSs.
ParticleSizerSystem extends the generic
System component with the
fields common to particle sizer instruments: serial number, software,
firmware, and a list of attached Accessory objects.
ParticleSizerSystem carries a pk
(UUIDPrimaryKey) so a
consuming IDS can declare it as a top-level array (systems: List[ParticleSizerSystem])
and results/datacubes can reference the specific system that produced them
via fk_system, rather than relying on a file-wide singleton. pk
values must be generated deterministically by the task script (seeded from
file content and task script identity), not by this component.
Vendor-specific configuration (e.g. Wyatt DynaPro’s numbered tag/value
parameters from the .dexp file) is intentionally left out of this shared
component – it belongs in the vendor-specific IDS, not the component library.
- Model Accessory[source]#
Bases:
IdsElementAn accessory or module attached to a particle sizer instrument – e.g. a dispersion unit (Malvern Mastersizer’s Hydro/Aero), an autosampler, a sample-prep chamber, or an additional detector channel.
A particle sizer can be equipped with more than one accessory, so
ParticleSizerSystemholds these as a list. Modeled as an object (rather than a bare serial-number string) so the serial number stays tied to the accessory it identifies and so additional accessory attributes can be captured as instruments report them. In some raw data (e.g. the Mastersizer CSV export) only the serial number is available, in which casenameis left unset.Show JSON schema
{ "description": "An accessory or module attached to a particle sizer instrument -- e.g. a\ndispersion unit (Malvern Mastersizer's Hydro/Aero), an autosampler, a\nsample-prep chamber, or an additional detector channel.\n\nA particle sizer can be equipped with more than one accessory, so\n:py:class:`ParticleSizerSystem` holds these as a list. Modeled as an\nobject (rather than a bare serial-number string) so the serial number\nstays tied to the accessory it identifies and so additional accessory\nattributes can be captured as instruments report them. In some raw data\n(e.g. the Mastersizer CSV export) only the serial number is available, in\nwhich case ``name`` is left unset.", "type": "object", "properties": { "name": { "description": "Name or type of the accessory, e.g. 'Hydro MV' or 'Aero S'. Unset when the raw data reports only the serial number.", "type": [ "string", "null" ] }, "serial_number": { "description": "Serial number of the accessory, as reported by the instrument.", "type": [ "string", "null" ] } }, "additionalProperties": false }
- Validators:
- Model ParticleSizerSystem[source]#
Bases:
System,SerialNumber,Software,FirmwareInstrument system information common to particle sizer instruments, across Dynamic Light Scattering (DLS), Electrophoretic Light Scattering (ELS/Zeta), Static Light Scattering (SLS), and Laser Diffraction (LD) vendors (e.g. Malvern Zetasizer, Wyatt DynaPro, Malvern Mastersizer).
Show JSON schema
{ "description": "Instrument system information common to particle sizer instruments,\nacross Dynamic Light Scattering (DLS), Electrophoretic Light Scattering\n(ELS/Zeta), Static Light Scattering (SLS), and Laser Diffraction (LD)\nvendors (e.g. Malvern Zetasizer, Wyatt DynaPro, Malvern Mastersizer).", "type": "object", "properties": { "firmware": { "description": "System firmware metadata.", "items": { "$ref": "#/definitions/Firmware" }, "type": "array" }, "software": { "description": "Software applications that most recently handled the data (file) or the applications the data (file) is intended for. For example, applications can include Electronic Lab Notebooks (ELN), Instrument Control Software (ICS), Chromatography Data Systems (CDS), or instrument-specific analysis software.", "items": { "$ref": "#/definitions/Software" }, "type": "array" }, "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" ] }, "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 results/datacubes belonging to it.", "type": "string" }, "accessories": { "description": "Accessories or modules attached to the instrument (dispersion unit, autosampler, sample-prep chamber, additional detector channel, etc.). Empty when none are reported.", "items": { "$ref": "#/definitions/Accessory" }, "type": "array" } }, "additionalProperties": false, "required": [ "vendor", "model", "type", "pk" ], "definitions": { "Accessory": { "additionalProperties": false, "description": "An accessory or module attached to a particle sizer instrument -- e.g. a\ndispersion unit (Malvern Mastersizer's Hydro/Aero), an autosampler, a\nsample-prep chamber, or an additional detector channel.\n\nA particle sizer can be equipped with more than one accessory, so\n:py:class:`ParticleSizerSystem` holds these as a list. Modeled as an\nobject (rather than a bare serial-number string) so the serial number\nstays tied to the accessory it identifies and so additional accessory\nattributes can be captured as instruments report them. In some raw data\n(e.g. the Mastersizer CSV export) only the serial number is available, in\nwhich case ``name`` is left unset.", "properties": { "name": { "description": "Name or type of the accessory, e.g. 'Hydro MV' or 'Aero S'. Unset when the raw data reports only the serial number.", "type": [ "string", "null" ] }, "serial_number": { "description": "Serial number of the accessory, as reported by the instrument.", "type": [ "string", "null" ] } }, "type": "object" }, "Firmware": { "additionalProperties": false, "description": "System firmware metadata.", "properties": { "name": { "description": "Firmware name.", "type": [ "string", "null" ] }, "version": { "description": "Firmware version.", "type": [ "string", "null" ] } }, "required": [ "name", "version" ], "type": "object" }, "Software": { "additionalProperties": false, "description": "Software application that most recently handled the data (file) or the application\nthe data (file) is intended for. For example, applications can include Electronic\nLab Notebooks (ELN), Instrument Control Software (ICS), Chromatography Data Systems\n(CDS), or instrument-specific analysis software.", "properties": { "name": { "description": "Software name.", "type": [ "string", "null" ] }, "version": { "description": "Software version.", "type": [ "string", "null" ] } }, "required": [ "name", "version" ], "type": "object" } } }
- Validators:
- field accessories: List[Accessory]#
Accessories or modules attached to the instrument (dispersion unit, autosampler, sample-prep chamber, additional detector channel, etc.). Empty when none are reported.
- field firmware: List[system.Firmware]#
System firmware metadata.
- field pk: str#
Primary key for this system, referenced by results/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 software: List[system.Software]#
Software applications that most recently handled the data (file) or the applications the data (file) is intended for. For example, applications can include Electronic Lab Notebooks (ELN), Instrument Control Software (ICS), Chromatography Data Systems (CDS), or instrument-specific analysis software.