piel.types.experimental

Contents

piel.types.experimental#

Submodules#

Attributes#

Classes#

Cryostat

This represents the fundamental data structure to identify a component with connection and internal or external connectivity.

TemperatureStage

Standard definition for a generic temperature stage.

Sourcemeter

Represents a sourcemeter.

SourcemeterConfiguration

This class corresponds to the configuration of data which is just inherent to the Sourcemeter connectivity and configuration,

Multimeter

Represents a multimeter.

MultimeterConfiguration

This class corresponds to the configuration of data which is just inherent to the Multimeter connectivity and configuration,

Device

Corresponds to the abstraction of a given device measurement.

DeviceConfiguration

A base model class that serves as the foundation for other measurement in the project.

MeasurementDevice

Corresponds to the abstraction of a given device measurement.

ExperimentInstance

This is a specific instance of an measurement configuration. It can be the result of serialization a given

Experiment

This represents the fundamental data structure of an element in connectivity

ExperimentCollection

This class contains a collection of different experiments,

VNA

Represents a vector-network analyser.

VNAConfiguration

This class corresponds to the configuration of data which is just inherent to the VNA connectivity and configuration,

MeasurementConfiguration

Standard definition for a measurement configuration.

Measurement

Standard definition for a measurement. This should be the container for all the measurement files, it is not the data container.

MeasurementCollection

Generic class for MeasurementCollection

DCSweepMeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

DCMeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

MeasurementData

This represents the fundamental data structure of an element in connectivity

MeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

ExperimentData

This is a definition of a collection of measurement data.

ExperimentDataCollection

This represents the fundamental data structure of an element in connectivity

VNASParameterMeasurementData

This represents the fundamental data structure of an element in connectivity

VNASParameterMeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

VNAPowerSweepMeasurementData

This represents the fundamental data structure of an element in connectivity

FrequencyMeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

PropagationDelayMeasurementData

Standard definition for a collection of files that are part of a propagation delay measurement.

PropagationDelayMeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

OscilloscopeMeasurementData

Standard definition for a collection of files that are part of a generic oscilloscope measurement

OscilloscopeMeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

ElectroOpticDCMeasurement

Standard definition for a measurement. This should be the container for all the measurement files, it is not the data container.

ElectroOpticDCMeasurementCollection

Generic class for MeasurementCollection

VNASParameterMeasurementConfiguration

Standard definition for a measurement configuration.

VNAPowerSweepMeasurementConfiguration

Standard definition for a measurement configuration.

VNASParameterMeasurement

Standard definition for a collection of files that are part of a S-Parameter VNA measurement.

VNAPowerSweepMeasurement

Standard definition for a collection of files that are part of a VNA measurement.

VNAPowerSweepMeasurementCollection

Generic class for MeasurementCollection

VNASParameterMeasurementCollection

Generic class for MeasurementCollection

PropagationDelayMeasurement

Standard definition for a collection of files that are part of a propagation delay measurement.

PropagationDelayMeasurementCollection

Generic class for MeasurementCollection

PropagationDelayMeasurementConfiguration

Standard definition for a measurement configuration.

OscilloscopeMeasurement

Generic, extensible OscilloscopeMeasurement

OscilloscopeMeasurementCollection

Generic class for MeasurementCollection

OscilloscopeMeasurementConfiguration

Standard definition for a measurement configuration.

Oscilloscope

Represents an oscilloscope

OscilloscopeConfiguration

This class corresponds to the configuration of data which is just inherent to the Oscilloscope connectivity and configuration,

WaveformGeneratorConfiguration

This class corresponds to the configuration of data which is just inherent to the WaveformGenerator connectivity and configuration,

WaveformGenerator

Represents a vector-network analyser.

Package Contents#

class Cryostat(/, **data: Any)[source]#

Bases: piel.types.connectivity.abstract.Component

This represents the fundamental data structure to identify a component with connection and internal or external connectivity.

temperature_stages: list[TemperatureStage] = []#
class TemperatureStage(/, **data: Any)[source]#

Bases: piel.types.environment.Environment, piel.types.connectivity.abstract.Component

Standard definition for a generic temperature stage.

surface_area_m2: float = None#
class Sourcemeter(/, **data: Any)[source]#

Bases: piel.types.experimental.device.Device

Represents a sourcemeter.

configuration: SourcemeterConfiguration = None#
class SourcemeterConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.device.DeviceConfiguration

This class corresponds to the configuration of data which is just inherent to the Sourcemeter connectivity and configuration, not the measurement setup connectivity.

voltage_set_V: float | None = None#
voltage_range_V: tuple | None = None#
current_limit_A: float | None = None#
voltage_limit_V: float | None = None#
class Multimeter(/, **data: Any)[source]#

Bases: piel.types.experimental.device.Device

Represents a multimeter.

class MultimeterConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.device.DeviceConfiguration

This class corresponds to the configuration of data which is just inherent to the Multimeter connectivity and configuration,

class Device(/, **data: Any)[source]#

Bases: piel.types.connectivity.physical.PhysicalComponent

Corresponds to the abstraction of a given device measurement.

configuration: DeviceConfiguration | None = None#
serial_number: str = ''#
class DeviceConfiguration(/, **data: Any)[source]#

Bases: piel.types.core.PielBaseModel

A base model class that serves as the foundation for other measurement in the project. This class extends pydantic’s BaseModel and includes additional configuration settings for strict validation and immutability.

Config#

A nested class to configure the behavior of the model. arbitrary_types_allowed (bool): Allows arbitrary measurement. extra (str): Forbids extra attributes not defined in the model. validate_assignment (bool): Validates fields on assignment. strict (bool): Enforces strict type validation. allow_mutation (bool): Prevents mutation of the model’s fields.

supplied_parameters() list[str]#

Returns a list of parameter names that have been supplied (i.e., are not None).

class MeasurementDevice(/, **data: Any)[source]#

Bases: Device

Corresponds to the abstraction of a given device measurement.

measurement: piel.types.experimental.measurements.core.MeasurementConfiguration | None = None#

Contains the measurement information.

class ExperimentInstance(/, **data: Any)[source]#

Bases: piel.types.connectivity.core.Instance

This is a specific instance of an measurement configuration. It can be the result of serialization a given experiment configuration. The experiment contains all devices that correspond a specific setup. Each device contains a particular configuration, or may have information about the environment, etc.

components: list[piel.types.connectivity.generic.ComponentTypes] | tuple[piel.types.connectivity.generic.ComponentTypes] = []#

Contains all references to the instantiated devices.

connections: list[piel.types.connectivity.generic.ConnectionTypes] | tuple[piel.types.connectivity.generic.ConnectionTypes] = []#

All the connectivity information is stored here.

goal: str = ''#

The goal of the experiment test.

parameters: dict#

A dictionary of reference parameters in this measurement instance. Does not contain all the serialised measurement data.

index: int = 0#

A defined index of the experiment instance tuple.

date_configured: str = ''#

The date the experiment was configured.

date_measured: str = ''#

The date the experiment was measured.

measurement_configuration_list: list[piel.types.experimental.measurements.generic.MeasurementConfigurationTypes] = []#
class Experiment(/, **data: Any)[source]#

Bases: piel.types.connectivity.core.Instance

This represents the fundamental data structure of an element in connectivity

name: str = ''#

Every experiment is required to have a name.

goal: str = ''#

The goal of the complete experiment.

experiment_instances: list[ExperimentInstance] = []#

Contains all the experiment instances.

parameters_list: list[dict]#

List of basic important parameters in dictionaries used to do basic metadata analysis of the experiment.

parent_directory: piel.types.core.PathTypes = ''#

Optional parameter to specify the parent_directory of the Experiment, where the directories containing the data and metadata of the ExperimentInstances are constructed.

__getitem__#
property parameters#
class ExperimentCollection(/, **data: Any)[source]#

Bases: piel.types.connectivity.core.Instance

This class contains a collection of different experiments, each which may contain a large set of measurements internally.

experiment_list: list[Experiment] = []#
class VNA(/, **data: Any)[source]#

Bases: piel.types.experimental.device.Device

Represents a vector-network analyser.

configuration: VNAConfiguration | None = None#

Just overwrites this section of the device definition.

ports: tuple[piel.types.connectivity.physical.PhysicalPort] | list[piel.types.connectivity.physical.PhysicalPort]#

Defaults to a two-port VNA, defined as PORT1 and PORT2.

class VNAConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.device.DeviceConfiguration

This class corresponds to the configuration of data which is just inherent to the VNA connectivity and configuration, not the measurement setup connectivity.

calibration_setting_name: str = ''#
measurement_configuration: piel.types.experimental.measurements.generic.FrequencyMeasurementConfigurationTypes = None#
class MeasurementConfiguration(/, **data: Any)[source]#

Bases: piel.types.connectivity.abstract.Instance

Standard definition for a measurement configuration.

name: str = ''#
parent_directory: piel.types.core.PathTypes = ''#
measurement_type: str = ''#
class Measurement(/, **data: Any)[source]#

Bases: piel.types.connectivity.abstract.Instance

Standard definition for a measurement. This should be the container for all the measurement files, it is not the data container.

name: str = ''#
type: str = ''#
parent_directory: piel.types.core.PathTypes = ''#
class MeasurementCollection(/, **data: Any)[source]#

Bases: piel.types.connectivity.abstract.Instance

Generic class for MeasurementCollection

type: str = ''#
collection: list[Measurement] = []#
class DCSweepMeasurementDataCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

collection: list[piel.types.signal.dc_data.SignalDCCollection] = []#
class DCMeasurementDataCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

collection: list[DCMeasurementDataTypes] | DCSweepMeasurementDataCollection = []#
DCMeasurementDataTypes#
DCMeasurementDataCollectionTypes#
class MeasurementData(/, **data: Any)[source]#

Bases: piel.types.connectivity.core.Instance

This represents the fundamental data structure of an element in connectivity

type: str | None = ''#
class MeasurementDataCollection(/, **data: Any)[source]#

Bases: piel.types.connectivity.core.Instance

This represents the fundamental data structure of an element in connectivity

type: str = ''#
collection: list[MeasurementData] = []#
__getitem__#
class ExperimentData(/, **data: Any)[source]#

Bases: piel.types.connectivity.core.Instance

This is a definition of a collection of measurement data.

experiment: piel.types.experimental.experiment.Experiment = None#
data: piel.types.experimental.measurements.data.generic.MeasurementDataCollectionTypes = None#
__getitem__#
class ExperimentDataCollection(/, **data: Any)[source]#

Bases: piel.types.connectivity.core.Instance

This represents the fundamental data structure of an element in connectivity

collection: list[ExperimentData] = []#
MeasurementDataTypes#
MeasurementDataCollectionTypes#
FrequencyMeasurementDataTypes#
class VNASParameterMeasurementData(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementData

This represents the fundamental data structure of an element in connectivity

type: str = 'VNASParameterMeasurementData'#
network: piel.types.signal.frequency.transmission.FrequencyTransmissionModel = None#
class VNASParameterMeasurementDataCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

type: str = 'VNASParameterMeasurementDataCollection'#
collection: list[VNASParameterMeasurementData] = []#
class VNAPowerSweepMeasurementData(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementData

This represents the fundamental data structure of an element in connectivity

type: str = 'VNAPowerSweepMeasurementData'#
network: piel.types.signal.frequency.transmission.FrequencyTransmissionModel | None = None#
class FrequencyMeasurementDataCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

type: str = 'FrequencyMeasurementDataCollection'#
collection: list[FrequencyMeasurementDataTypes] = []#
class PropagationDelayMeasurementData(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementData

Standard definition for a collection of files that are part of a propagation delay measurement.

The collection includes the device waveform, the measurement files and the reference waveform as per a propagation delay measurement.

measurements#

The collection of signal measurements.

Type:

Optional[SignalMetricsMeasurementCollection]

dut_waveform#

The device waveform.

Type:

Optional[TimeSignalData]

reference_waveform#

The reference waveform.

Type:

Optional[TimeSignalData]

type: str = 'PropagationDelayMeasurementData'#
measurements: piel.types.metrics.ScalarMetricCollection | None = None#
dut_waveform: piel.types.signal.time_data.TimeSignalData | None = None#
reference_waveform: piel.types.signal.time_data.TimeSignalData | None = None#
class PropagationDelayMeasurementDataCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

type: str = 'PropagationDelayMeasurementDataCollection'#
collection: list[PropagationDelayMeasurementData] = []#
class OscilloscopeMeasurementData(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementData

Standard definition for a collection of files that are part of a generic oscilloscope measurement

The collection includes a list of waveform files, and a measurements file.

measurements#

The collection of signal measurements.

Type:

Optional[SignalMetricsMeasurementCollection]

waveform_list#

The collection of waveforms.

Type:

MultiTimeSignalData

type: str = 'OscilloscopeMeasurementData'#
measurements: piel.types.metrics.ScalarMetricCollection | None = None#
waveform_list: piel.types.signal.time_data.MultiTimeSignalData = []#
class OscilloscopeMeasurementDataCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.data.core.MeasurementDataCollection

This represents the fundamental data structure of an element in connectivity

type: str = 'OscilloscopeMeasurementDataCollection'#
collection: list[OscilloscopeMeasurementData] = []#
VoltageCurrentSignalNamePair#
class ElectroOpticDCMeasurement(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.Measurement

Standard definition for a measurement. This should be the container for all the measurement files, it is not the data container.

dc_transmission_file: piel.types.core.PathTypes#
connection: piel.types.connectivity.generic.ConnectionTypes#
class ElectroOpticDCMeasurementCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementCollection

Generic class for MeasurementCollection

collection: list[ElectroOpticDCMeasurement]#
class VNASParameterMeasurementConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementConfiguration

Standard definition for a measurement configuration.

measurement_configuration_type: str = 'VNASParameterMeasurementConfiguration'#
frequency_range_Hz: tuple[float, float] | list[float] = []#
sweep_points: int = 0#
test_port_power_dBm: float = 0.0#
class VNAPowerSweepMeasurementConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementConfiguration

Standard definition for a measurement configuration.

measurement_configuration_type: str = 'VNAPowerSweepMeasurementConfiguration'#
base_frequency_Hz: float = 0.0#
power_range_dBm: tuple[float, float] | list[float] = []#
class VNASParameterMeasurement(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.Measurement

Standard definition for a collection of files that are part of a S-Parameter VNA measurement.

type: str = 'VNASParameterMeasurement'#
spectrum_file: piel.types.core.PathTypes = ''#
class VNAPowerSweepMeasurement(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.Measurement

Standard definition for a collection of files that are part of a VNA measurement.

type: str = 'VNAPowerSweepMeasurement'#
spectrum_file: piel.types.core.PathTypes = ''#
class VNAPowerSweepMeasurementCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementCollection

Generic class for MeasurementCollection

type: str = 'VNAPowerSweepMeasurementCollection'#
collection: list[VNAPowerSweepMeasurement] = []#
class VNASParameterMeasurementCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementCollection

Generic class for MeasurementCollection

type: str = 'VNASParameterMeasurementCollection'#
collection: list[VNASParameterMeasurement] = []#
class PropagationDelayMeasurement(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.Measurement

Standard definition for a collection of files that are part of a propagation delay measurement. The collection includes the device name, the measurement name and the date of the measurement. This configuration requires a device waveform, a measurement file and a reference waveform as per a propagation delay measurement. TODO add link to the documentation of the propagation delay measurement.

type: str = 'PropagationDelayMeasurement'#
dut_waveform_file: piel.types.core.PathTypes = ''#
reference_waveform_file: piel.types.core.PathTypes = ''#
measurements_file: piel.types.core.PathTypes = ''#
class PropagationDelayMeasurementCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementCollection

Generic class for MeasurementCollection

type: str = 'PropagationDelayMeasurementCollection'#
collection: list[PropagationDelayMeasurement] = []#
class PropagationDelayMeasurementConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementConfiguration

Standard definition for a measurement configuration.

measurement_configuration_type: str = 'PropagationDelayMeasurementConfiguration'#
class OscilloscopeMeasurement(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.Measurement

Generic, extensible OscilloscopeMeasurement

type: str = 'OscilloscopeMeasurement'#
waveform_file_list: list[piel.types.core.PathTypes] = []#
measurements_file: piel.types.core.PathTypes = ''#
class OscilloscopeMeasurementCollection(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementCollection

Generic class for MeasurementCollection

type: str = 'OscilloscopeMeasurementCollection'#
collection: list[OscilloscopeMeasurement] = []#
class OscilloscopeMeasurementConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.measurements.core.MeasurementConfiguration

Standard definition for a measurement configuration.

measurement_configuration_type: str = 'OscilloscopeMeasurementConfiguration'#
FrequencyMeasurementConfigurationTypes#
FrequencyMeasurementTypes#
MeasurementTypes#
MeasurementConfigurationTypes#
MeasurementCollectionTypes#
class Oscilloscope(/, **data: Any)[source]#

Bases: piel.types.experimental.device.MeasurementDevice

Represents an oscilloscope

configuration: OscilloscopeConfiguration | None = None#

Just overwrites this section of the device definition.

class OscilloscopeConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.device.DeviceConfiguration

This class corresponds to the configuration of data which is just inherent to the Oscilloscope connectivity and configuration, not the measurement setup connectivity.

bandwidth_Hz: piel.types.metrics.ScalarMetric = None#
class WaveformGeneratorConfiguration(/, **data: Any)[source]#

Bases: piel.types.experimental.device.DeviceConfiguration

This class corresponds to the configuration of data which is just inherent to the WaveformGenerator connectivity and configuration, not the measurement setup connectivity.

signal: piel.types.signal.time_sources.SignalTimeSources = None#

Contains an instantiation of the signal configuration applied as a reference.

class WaveformGenerator(/, **data: Any)[source]#

Bases: piel.types.experimental.device.Device

Represents a vector-network analyser.

configuration: WaveformGeneratorConfiguration = None#

Just overwrites this section of the device definition.