piel.types#
Top Level Types Declaration, all should be imported here.
These types are intended to be pure static types. They can only contain parameter definitions of the data types, add data type validators, and the only functions that can be added in these types is overwriting the base class base hidden methods. No other methods can be added here. This is because these classes are intended to be pure data types which are operated upon purely. If we begin adding custom methods on the type definitions, not only do they become bloated, but functional composition complexity is increased and the “static” data types become a hell to manage.
Submodules#
- piel.types.analogue
- piel.types.connectivity
- piel.types.constants
- piel.types.core
- piel.types.digital
- piel.types.digital_electro_optic
- piel.types.electrical
- piel.types.electro_optic
- piel.types.electronic
- piel.types.environment
- piel.types.experimental
- piel.types.file_system
- piel.types.integration
- piel.types.materials
- piel.types.metrics
- piel.types.photonic
- piel.types.physical
- piel.types.quantity
- piel.types.radio_frequency
- piel.types.reference
- piel.types.signal
- piel.types.symbolic
- piel.types.units
Attributes#
Corresponds to all the implemented timing metrics accordingly. |
|
Default zero-time metrics defined. |
|
Alias for measurement representing digital bits. |
|
A type representing binary digital bits. |
|
An iterable collection of AbstractBitsType elements. |
|
A literal type representing supported HDL simulators. |
|
A literal type representing top-level hardware description languages. |
|
A list of strings representing the names of logic signals. |
|
Alias for phase map measurement. |
|
A literal type for phase transition measurement. |
|
PhotonicCircuitComponent: |
|
MaterialReferenceType: |
|
MaterialReferencesTypes: |
|
MaterialSpecificationType: |
|
PhotonicCircuitComponent: |
|
OpticalTransmissionCircuit: |
|
RecursiveNetlist: |
|
SParameterMatrixTuple: |
|
Different ways to represent frequency-domain information. In principle, both array and individual representations of |
|
Corresponds to a container that contains a s-parameter transmission model, for example. |
|
Collection of DataTimeSignals that can be used to analyse a set of signals together in a particular files flow. |
|
Classes#
A base model class that serves as the foundation for other measurement in the project. |
|
This represents the fundamental data structure of an element in connectivity |
|
This represents the fundamental data structure to identify a connection between two connection. |
|
This represents the fundamental data structure to identify a component with connection and internal or external connectivity. |
|
This represents the fundamental data structure to identify a port. |
|
This represents the fundamental data structure of an element in connectivity |
|
Represents the data of a physical component or device. |
|
Describes a set of physical connection which are all connected. Represents a physical connection between interfaces. |
|
This refers to any form of physical port which can be connected to. The socket refers to the corresponding physical location where such a port is connected to. |
|
Note that a given metrics needs to be matched to a given environment in which the measurements are performed. |
|
This class contains stastical timing information about a given path. |
|
A dispersive time-metrics is useful to represent multi-frequency timing information |
|
A model representing a truth table for a digital circuit, including its input and output connection. |
|
A model representing a mapping between digital bits and their corresponding phases. |
|
Data structure to define a corresponding environment. |
|
This represents the fundamental data structure to identify a component with connection and internal or external connectivity. |
|
Standard definition for a generic temperature stage. |
|
Represents a sourcemeter. |
|
This class corresponds to the configuration of data which is just inherent to the Sourcemeter connectivity and configuration, |
|
Represents a multimeter. |
|
This class corresponds to the configuration of data which is just inherent to the Multimeter connectivity and configuration, |
|
Corresponds to the abstraction of a given device measurement. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
Corresponds to the abstraction of a given device measurement. |
|
This is a specific instance of an measurement configuration. It can be the result of serialization a given |
|
This represents the fundamental data structure of an element in connectivity |
|
This class contains a collection of different experiments, |
|
Represents a vector-network analyser. |
|
This class corresponds to the configuration of data which is just inherent to the VNA connectivity and configuration, |
|
Standard definition for a measurement configuration. |
|
Standard definition for a measurement. This should be the container for all the measurement files, it is not the data container. |
|
Generic class for MeasurementCollection |
|
This represents the fundamental data structure of an element in connectivity |
|
This represents the fundamental data structure of an element in connectivity |
|
This represents the fundamental data structure of an element in connectivity |
|
This represents the fundamental data structure of an element in connectivity |
|
This is a definition of a collection of measurement data. |
|
This represents the fundamental data structure of an element in connectivity |
|
This represents the fundamental data structure of an element in connectivity |
|
This represents the fundamental data structure of an element in connectivity |
|
This represents the fundamental data structure of an element in connectivity |
|
This represents the fundamental data structure of an element in connectivity |
|
Standard definition for a collection of files that are part of a propagation delay measurement. |
|
This represents the fundamental data structure of an element in connectivity |
|
Standard definition for a collection of files that are part of a generic oscilloscope measurement |
|
This represents the fundamental data structure of an element in connectivity |
|
Standard definition for a measurement. This should be the container for all the measurement files, it is not the data container. |
|
Generic class for MeasurementCollection |
|
Standard definition for a measurement configuration. |
|
Standard definition for a measurement configuration. |
|
Standard definition for a collection of files that are part of a S-Parameter VNA measurement. |
|
Standard definition for a collection of files that are part of a VNA measurement. |
|
Generic class for MeasurementCollection |
|
Generic class for MeasurementCollection |
|
Standard definition for a collection of files that are part of a propagation delay measurement. |
|
Generic class for MeasurementCollection |
|
Standard definition for a measurement configuration. |
|
Generic, extensible OscilloscopeMeasurement |
|
Generic class for MeasurementCollection |
|
Standard definition for a measurement configuration. |
|
Represents an oscilloscope |
|
This class corresponds to the configuration of data which is just inherent to the Oscilloscope connectivity and configuration, |
|
This class corresponds to the configuration of data which is just inherent to the WaveformGenerator connectivity and configuration, |
|
Represents a vector-network analyser. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
All units are in watts. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
All units are in watts. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A DC cable is a single core cable that is used to transmit direct current. |
|
A coaxial cable is a type of electrical cable that has an inner conductor surrounded by a tubular insulating layer, |
|
Represents the data of a physical component or device. |
|
Represents the data of a physical component or device. |
|
Represents the data of a physical component or device. |
|
Represents the data of a physical component or device. |
|
Represents the data of a physical component or device. |
|
Represents a physical RF (Radio Frequency) component with frequency-related properties. |
|
Represents a physical RF (Radio Frequency) component with frequency-related properties. |
|
A typed dictionary representing a phase transition for Fock states in an electro-optic model. |
|
A model representing transitions between optical states, specifically for Fock states in an electro-optic system. |
|
In this class, we define the corresponding relevant metrics to enable characterizing a modulator device. |
|
This is an equivalent model of an Electro-Optical modulator. |
|
In this class, we define the corresponding relevant metrics to enable characterizing a modulator device. |
|
This is an equivalent model of an Electro-Optical modulator. |
|
Represents the data of a physical component or device. |
|
A model representing an electronic chip in a photonic circuit. |
|
Represents a physical RF (Radio Frequency) component with frequency-related properties. |
|
This represents the fundamental data structure of an element in connectivity |
|
A model representing the metrics for a high-voltage amplifier (HVA) or a Power Amplifier (PA). |
|
Represents a physical RF (Radio Frequency) component with frequency-related properties. |
|
A model representing the metrics for a low-noise amplifier (LNA). |
|
Represents a physical RF (Radio Frequency) component with frequency-related properties. |
|
Standard definition for a scalar metrics. It includes the value, mean, min, max, standard deviation and count. |
|
A collection of scalar metrics useful when analyzing multiple aspects of a design. |
|
This represents the fundamental data structure of an element in connectivity |
|
Represents a DC signal with all relevant components as defined by Ohm's law but specified through a collection of data defined by a OperatingPointContainer |
|
This is used to define a collection of SignalInstances which compose a DC signal. For example, |
|
Contains magnitude and phase frequency response information. |
|
This represents the fundamental data structure of an element in connectivity |
|
This corresponds to a transmission component or array collection of the power or frequency transmission. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
Creates a mapping between a given input and a given scalar metrics response. |
|
It is not logically possible to decouple the output signal from the connection at which this is measured, due to the |
|
Applicable when you have multiple inputs and multiple paths |
|
Standard definition for a relationship between a relevant files signal and a time reference array. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A base model class that serves as the foundation for other measurement in the project. |
|
A base model class that serves as the foundation for other measurement in the project. |
Package Contents#
- PathTypes#
- class PielBaseModel(/, **data: Any)[source]#
Bases:
pydantic.BaseModelA 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[source]#
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).
- NumericalTypes#
- ArrayTypes#
- TupleIntType#
- TupleFloatType#
- TupleNumericalType#
- PackageArrayType#
- ModuleType#
- class Instance(/, **data: Any)[source]#
Bases:
piel.types.PielBaseModelThis represents the fundamental data structure of an element in connectivity
- name: str = ''#
- attrs: dict#
- c#
- class Connection(/, **data: Any)[source]#
Bases:
piel.types.connectivity.core.InstanceThis represents the fundamental data structure to identify a connection between two connection.
Note that any connection has a
- time: piel.types.connectivity.timing.TimeMetricsTypes#
- class Component(/, **data: Any)[source]#
Bases:
piel.types.connectivity.core.InstanceThis represents the fundamental data structure to identify a component with connection and internal or external connectivity.
- connections: list[Connection] = []#
- components: list[Component] = []#
Note the recursive relationship that a component can be composed of multiple components.
- metrics: list[piel.types.connectivity.metrics.ComponentMetrics] = []#
Note that a given component might have a set of metrics corresponding to multiple variations of the testing conditions.
- class Port(/, **data: Any)[source]#
Bases:
piel.types.connectivity.core.InstanceThis represents the fundamental data structure to identify a port.
- parent_component_name: str = ''#
- ConnectionTypes#
- PortTypes#
- ComponentTypes#
- class ComponentCollection(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceThis represents the fundamental data structure of an element in connectivity
- components: list[ComponentTypes] = []#
- class PhysicalComponent(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.ComponentRepresents the data of a physical component or device.
- ports: list[PhysicalPort | piel.types.connectivity.abstract.Port] | tuple[PhysicalPort | piel.types.connectivity.abstract.Port] = []#
- connections: list[PhysicalConnection | piel.types.connectivity.abstract.Connection] | tuple[PhysicalConnection | piel.types.connectivity.abstract.Connection] = []#
- components: list[piel.types.connectivity.abstract.Component | PhysicalComponent] = []#
Note the recursive relationship that a component can be composed of multiple components.
- environment: piel.types.environment.Environment#
- manufacturer: str = ''#
The manufacturer of the device.
- model: str = ''#
The model of the device.
- class PhysicalConnection(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelDescribes a set of physical connection which are all connected. Represents a physical connection between interfaces.
The components represent the physical implementation of the connections for the same connection index.
- connections: list[piel.types.connectivity.abstract.Connection | Any] = []#
- components: tuple[piel.types.connectivity.abstract.Component, Ellipsis] | list[piel.types.connectivity.abstract.Component] = []#
- class PhysicalPort(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.PortThis refers to any form of physical port which can be connected to. The socket refers to the corresponding physical location where such a port is connected to.
- domain: piel.types.signal.core.ElectricalSignalDomains | None = None#
- connector: str = ''#
- manifold: str = ''#
- class ComponentMetrics(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceNote that a given metrics needs to be matched to a given environment in which the measurements are performed. For example, room temperature metrics are not equivalent to cryogenic metrics measurements, and as such require a collection of variables.
- reference: piel.types.reference.Reference#
- environment: piel.types.environment.Environment#
- class TimeMetric(/, **data: Any)[source]#
Bases:
piel.types.metrics.ScalarMetricThis class contains stastical timing information about a given path.
Notes
Each component has some relevant time metrics which characterize the propagation of a signal across it. Now, this is more intricate in the case of dispersive of multi-frequency signals propagating through a device since propagation is dependent on signal frequency. One way to conceptualize it is that each frequency corresponds to an individual frequency, but this ignores recombination or superposition between the frequencies in a dispersive model.
Also, timing information is in relation to the input signal that is being propagated through a component.
We can create a higher level dispersive time metrics for multi-frequency components based on this one.
The relevant timing we are interested in is as follows, as it has multiple definitions
In-to-Out Timing Propagation through a component
Group Delay of a signal through an interconnect
10% to 90% rise time of the output waveform of an active component
Having a shared timing definition is essential to perform correct timing analysis
- value: piel.types.core.NumericalTypes = 0#
- mean: piel.types.core.NumericalTypes | None = 0#
- min: piel.types.core.NumericalTypes | None = 0#
- max: piel.types.core.NumericalTypes | None = 0#
- standard_deviation: piel.types.core.NumericalTypes | None = 0#
- unit: piel.types.units.Unit#
- class DispersiveTimeMetrics(/, **data: Any)[source]#
Bases:
piel.types.connectivity.core.InstanceA dispersive time-metrics is useful to represent multi-frequency timing information based on the harmonic nature of signals.
- frequency_group: dict[float, TimeMetric]#
Definition of a mutli-frequency component.
- TimeMetricsTypes#
Corresponds to all the implemented timing metrics accordingly.
- ZeroTimeMetrics#
Default zero-time metrics defined.
- DigitalLogicModule#
- AbstractBitsType#
Alias for measurement representing digital bits. Can be one of: - str: A string representation of bits. - bytes: A byte representation of bits. - int: An integer representation of bits.
- Type:
AbstractBitsType
- BitsType#
A type representing binary digital bits. It is an alias for the ‘str’ type.
- Type:
BitsType
- BitsList#
An iterable collection of AbstractBitsType elements. Represents a sequence of digital bits.
- Type:
BitsList
- DigitalRunID#
- HDLSimulator#
A literal type representing supported HDL simulators. Can be one of: - “icarus”: Refers to Icarus Verilog simulator. - “verilator”: Refers to Verilator simulator.
- Type:
HDLSimulator
- HDLTopLevelLanguage#
A literal type representing top-level hardware description languages. Can be one of: - “verilog”: Refers to the Verilog HDL. - “vhdl”: Refers to the VHDL HDL.
- Type:
HDLTopLevelLanguage
- LogicSignalsList#
A list of strings representing the names of logic signals.
- Type:
LogicSignalsList
- LogicImplementationType#
- class TruthTable(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA model representing a truth table for a digital circuit, including its input and output connection.
- input_ports#
List of input signal names for the truth table.
- Type:
LogicSignalsList
- output_ports#
List of output signal names for the truth table.
- Type:
LogicSignalsList
- Properties:
keys_list (list[str]): A combined list of input and output signal names. dataframe (pd.DataFrame): A pandas DataFrame representation of the truth table, excluding input and output connection. implementation_dictionary (dict): A dictionary including only the keys specified within input_ports and output_ports.
- model_config#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- input_ports: LogicSignalsList#
List of input signal names for the truth table.
- Type:
input_ports (LogicSignalsList)
- output_ports: LogicSignalsList#
List of output signal names for the truth table.
- Type:
output_ports (LogicSignalsList)
- property ports_list: list[str]#
Returns a combined list of input and output signal names.
- Returns:
The concatenated list of input and output connection.
- Return type:
list[str]
- property dataframe: pandas.DataFrame#
Returns a pandas DataFrame representation of the truth table, excluding the input and output connection.
- Returns:
A DataFrame with the truth table files, excluding input and output port keys.
- Return type:
pd.DataFrame
- property implementation_dictionary: dict#
Returns a dictionary including only the keys specified within input_ports and output_ports.
- Returns:
A dictionary with keys that are part of the input and output connection.
- Return type:
dict
- TruthTableLogicType#
- class BitPhaseMap(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA model representing a mapping between digital bits and their corresponding phases.
- bits#
An iterable collection of bits. Can be a list, tuple, or numpy array of elements that match the AbstractBitsType.
- Type:
list[AbstractBitsType] | tuple[AbstractBitsType] | np.ndarray
- phase#
An iterable collection of phases. Can be a list, tuple, or numpy array of elements that match the NumericalTypes.
- Type:
list[NumericalTypes] | tuple[NumericalTypes] | np.ndarray
- Properties:
- dataframe (pd.DataFrame):
A pandas DataFrame representation of the BitPhaseMap, combining the bits and phases into a tabular format.
- bits: list[piel.types.digital.BitsType] | tuple[piel.types.digital.BitsType] | numpy.ndarray#
bits (list[AbstractBitsType] | tuple[AbstractBitsType] | np.ndarray): An iterable collection of bits. Can be a list, tuple, or numpy array of elements that are of type AbstractBitsType.
- phase: list[piel.types.core.NumericalTypes] | tuple[piel.types.core.NumericalTypes] | numpy.ndarray#
phase (list[NumericalTypes] | tuple[NumericalTypes] | np.ndarray): An iterable collection of phases. Can be a list, tuple, or numpy array of elements that are of type NumericalTypes.
- property dataframe: pandas.DataFrame#
Returns a pandas DataFrame representation of the BitPhaseMap.
- Returns:
A DataFrame containing the bits and their corresponding phases.
- Return type:
pd.DataFrame
- class Environment(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelData structure to define a corresponding environment.
- temperature_K: float = 293#
- region: str = ''#
- class Cryostat(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.ComponentThis 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.ComponentStandard definition for a generic temperature stage.
- surface_area_m2: float = None#
- class Sourcemeter(/, **data: Any)[source]#
Bases:
piel.types.experimental.device.DeviceRepresents a sourcemeter.
- configuration: SourcemeterConfiguration = None#
- class SourcemeterConfiguration(/, **data: Any)[source]#
Bases:
piel.types.experimental.device.DeviceConfigurationThis 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.DeviceRepresents a multimeter.
- class MultimeterConfiguration(/, **data: Any)[source]#
Bases:
piel.types.experimental.device.DeviceConfigurationThis 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.PhysicalComponentCorresponds to the abstraction of a given device measurement.
- configuration: DeviceConfiguration | None = None#
- serial_number: str = ''#
- class DeviceConfiguration(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA 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:
DeviceCorresponds 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.InstanceThis 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.InstanceThis 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.InstanceThis 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.DeviceRepresents 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.DeviceConfigurationThis 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.InstanceStandard 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.InstanceStandard 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.InstanceGeneric class for MeasurementCollection
- type: str = ''#
- collection: list[Measurement] = []#
- class DCSweepMeasurementDataCollection(/, **data: Any)[source]#
Bases:
piel.types.experimental.measurements.data.core.MeasurementDataCollectionThis 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.MeasurementDataCollectionThis 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.InstanceThis represents the fundamental data structure of an element in connectivity
- type: str | None = ''#
- class MeasurementDataCollection(/, **data: Any)[source]#
Bases:
piel.types.connectivity.core.InstanceThis 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.InstanceThis 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.InstanceThis 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.MeasurementDataThis 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.MeasurementDataCollectionThis 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.MeasurementDataThis 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.MeasurementDataCollectionThis 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.MeasurementDataStandard 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.MeasurementDataCollectionThis 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.MeasurementDataStandard 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.MeasurementDataCollectionThis 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.MeasurementStandard 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.MeasurementCollectionGeneric class for MeasurementCollection
- collection: list[ElectroOpticDCMeasurement]#
- class VNASParameterMeasurementConfiguration(/, **data: Any)[source]#
Bases:
piel.types.experimental.measurements.core.MeasurementConfigurationStandard 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.MeasurementConfigurationStandard 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.MeasurementStandard 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.MeasurementStandard 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.MeasurementCollectionGeneric class for MeasurementCollection
- type: str = 'VNAPowerSweepMeasurementCollection'#
- collection: list[VNAPowerSweepMeasurement] = []#
- class VNASParameterMeasurementCollection(/, **data: Any)[source]#
Bases:
piel.types.experimental.measurements.core.MeasurementCollectionGeneric class for MeasurementCollection
- type: str = 'VNASParameterMeasurementCollection'#
- collection: list[VNASParameterMeasurement] = []#
- class PropagationDelayMeasurement(/, **data: Any)[source]#
Bases:
piel.types.experimental.measurements.core.MeasurementStandard 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.MeasurementCollectionGeneric class for MeasurementCollection
- type: str = 'PropagationDelayMeasurementCollection'#
- collection: list[PropagationDelayMeasurement] = []#
- class PropagationDelayMeasurementConfiguration(/, **data: Any)[source]#
Bases:
piel.types.experimental.measurements.core.MeasurementConfigurationStandard definition for a measurement configuration.
- measurement_configuration_type: str = 'PropagationDelayMeasurementConfiguration'#
- class OscilloscopeMeasurement(/, **data: Any)[source]#
Bases:
piel.types.experimental.measurements.core.MeasurementGeneric, 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.MeasurementCollectionGeneric class for MeasurementCollection
- type: str = 'OscilloscopeMeasurementCollection'#
- collection: list[OscilloscopeMeasurement] = []#
- class OscilloscopeMeasurementConfiguration(/, **data: Any)[source]#
Bases:
piel.types.experimental.measurements.core.MeasurementConfigurationStandard 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.MeasurementDeviceRepresents an oscilloscope
- configuration: OscilloscopeConfiguration | None = None#
Just overwrites this section of the device definition.
- class OscilloscopeConfiguration(/, **data: Any)[source]#
Bases:
piel.types.experimental.device.DeviceConfigurationThis 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.DeviceConfigurationThis 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.DeviceRepresents a vector-network analyser.
- configuration: WaveformGeneratorConfiguration = None#
Just overwrites this section of the device definition.
- class CoaxialCableGeometryType(/, **data: Any)[source]#
Bases:
piel.types.quantity.QuantityA 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).
- core_cross_sectional_area_m2: float | None = 0#
The cross-sectional area of the core in meters squared.
- length_m: float = 0#
The length of the cable in meters.
- sheath_cross_sectional_area_m2: float | None = 0#
The cross-sectional area of the sheath in meters squared.
- total_cross_sectional_area_m2: float | None = 0#
The total cross-sectional area of the cable in meters squared.
- class CoaxialCableHeatTransferType(/, **data: Any)[source]#
Bases:
piel.types.quantity.QuantityAll units are in watts.
- core: float | None = 0#
The computed heat transfer in watts for the core of the cable.
- sheath: float | None = 0#
The computed heat transfer in watts for the sheath of the cable.
- dielectric: float | None = 0#
The computed heat transfer in watts for the dielectric of the cable.
- total: float = 0#
The total computed heat transfer in watts for the cable.
- units: str = 'W'#
- class CoaxialCableMaterialSpecificationType(/, **data: Any)[source]#
Bases:
piel.types.quantity.QuantityA 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][source]#
Returns a list of parameter names that have been supplied (i.e., are not None).
- core: piel.types.materials.MaterialReferenceType | None = None#
The material of the core.
- sheath: piel.types.materials.MaterialReferenceType | None = None#
The material of the sheath.
- dielectric: piel.types.materials.MaterialReferenceType | None = None#
The material of the dielectric.
- class DCCableGeometryType(/, **data: Any)[source]#
Bases:
piel.types.quantity.QuantityA 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).
- core_cross_sectional_area_m2: float = 0#
The cross-sectional area of the core in meters squared.
- length_m: float = 0#
The length of the cable in meters.
- total_cross_sectional_area_m2: float = 0#
The total cross-sectional area of the cable in meters squared.
- class DCCableHeatTransferType(/, **data: Any)[source]#
Bases:
piel.types.quantity.QuantityAll units are in watts.
- core: float | None = 0#
The computed heat transfer in watts for the core of the cable.
- total: float = 0#
The total computed heat transfer in watts for the cable.
- units: str = 'W'#
- class DCCableMaterialSpecificationType(/, **data: Any)[source]#
Bases:
piel.types.quantity.QuantityA 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).
- core: piel.types.materials.MaterialReferenceType | None = None#
The material of the core.
- class DCCable(/, **data: Any)[source]#
Bases:
CableA DC cable is a single core cable that is used to transmit direct current.
- geometry: DCCableGeometryType | None = None#
- heat_transfer: DCCableHeatTransferType | None = None#
- material_specification: DCCableMaterialSpecificationType | None = None#
- class CoaxialCable(/, **data: Any)[source]#
Bases:
piel.types.radio_frequency.RFPhysicalComponentA coaxial cable is a type of electrical cable that has an inner conductor surrounded by a tubular insulating layer, surrounded by a tubular conducting shield.
- geometry: CoaxialCableGeometryType | None#
- heat_transfer: CoaxialCableHeatTransferType | None = None#
- material_specification: CoaxialCableMaterialSpecificationType | None = None#
- class PCB(/, **data: Any)[source]#
Bases:
piel.types.connectivity.physical.PhysicalComponentRepresents the data of a physical component or device.
- class Short(/, **data: Any)[source]#
Bases:
piel.types.PhysicalComponentRepresents the data of a physical component or device.
- ports: list[piel.types.PhysicalPort]#
- class Open(/, **data: Any)[source]#
Bases:
piel.types.PhysicalComponentRepresents the data of a physical component or device.
- ports: list[piel.types.PhysicalPort]#
- class Load(/, **data: Any)[source]#
Bases:
piel.types.PhysicalComponentRepresents the data of a physical component or device.
- ports: list[piel.types.PhysicalPort]#
- class Through(/, **data: Any)[source]#
Bases:
piel.types.PhysicalComponentRepresents the data of a physical component or device.
- ports: list[piel.types.PhysicalPort]#
- class PowerSplitter(/, **data: Any)[source]#
Bases:
piel.types.radio_frequency.RFPhysicalComponentRepresents a physical RF (Radio Frequency) component with frequency-related properties.
This class extends the PhysicalComponent class to include RF-specific attributes.
Attributes:#
- networkFrequencyTransmissionModel | None
A representation of the component’s frequency network, typically containing s-parameter data. This is currently a placeholder and may be None.
- metricsFrequencyMetricCollection
A collection of frequency-related metrics for this RF component, including bandwidth and center transmission.
Inherits all attributes from PhysicalComponent.
Notes:#
The ‘network’ attribute is currently using a placeholder type (Any | None) and is intended to be updated with a proper s-parameter representation in the future.
This class combines physical component properties with RF-specific metrics, making it suitable for modeling and analyzing RF devices in a physical context.
- class BiasTee(/, **data: Any)[source]#
Bases:
piel.types.radio_frequency.RFPhysicalComponentRepresents a physical RF (Radio Frequency) component with frequency-related properties.
This class extends the PhysicalComponent class to include RF-specific attributes.
Attributes:#
- networkFrequencyTransmissionModel | None
A representation of the component’s frequency network, typically containing s-parameter data. This is currently a placeholder and may be None.
- metricsFrequencyMetricCollection
A collection of frequency-related metrics for this RF component, including bandwidth and center transmission.
Inherits all attributes from PhysicalComponent.
Notes:#
The ‘network’ attribute is currently using a placeholder type (Any | None) and is intended to be updated with a proper s-parameter representation in the future.
This class combines physical component properties with RF-specific metrics, making it suitable for modeling and analyzing RF devices in a physical context.
- class FockStatePhaseTransition[source]#
Bases:
typing_extensions.TypedDictA typed dictionary representing a phase transition for Fock states in an electro-optic model.
- phase#
The phase mapping for the transition.
- Type:
PhaseMapType
- input_fock_state#
The input Fock state as a tuple of integers.
- Type:
TupleIntType
- output_fock_state#
The output Fock state as a tuple of integers.
- Type:
TupleIntType
- target_mode_output#
Indicates whether the target mode is output (1 or True) or not (0 or False).
- Type:
Optional[bool | int]
- phase: PhaseMapType#
- input_fock_state: piel.types.core.TupleIntType#
- output_fock_state: piel.types.core.TupleIntType#
- target_mode_output: bool | int | None | None#
- class OpticalStateTransitionCollection(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA model representing transitions between optical states, specifically for Fock states in an electro-optic system.
- mode_amount#
The number of modes in the system.
- Type:
int
- target_mode_index#
The index of the target mode in the system.
- Type:
int
- transmission_data#
A list of Fock state phase transition mappings.
- Type:
list[FockStatePhaseTransition]
- Properties:
transition_dataframe (pd.DataFrame): A DataFrame representation of the transmission files. target_output_dataframe (pd.DataFrame): A DataFrame filtered to include only the transitions where target_mode_output is 1.
- _ignore_keys: list[str] = ['unitary', 'raw_output']#
- model_config#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mode_amount: int | None = None#
mode_amount (int): The number of modes in the system.
- target_mode_index: int | None = None#
target_mode_index (int): The index of the target mode in the system.
- transmission_data: list[OpticalTransmission]#
transmission_data (list[FockStatePhaseTransition]): A list of dictionaries representing the phase transitions for Fock states.
- property dataframe: pandas.DataFrame#
Returns a full pandas DataFrame representation of the transmission files.
- Returns:
A DataFrame containing the transmission files for the optical states.
- Return type:
pd.DataFrame
- property keys_list: list[str]#
Returns a list of keys from the first entry in the transmission files, excluding specified keys.
- Returns:
A list of keys from the first transmission files entry, excluding the keys specified in _ignore_keys.
- Return type:
List[str]
Notes
The keys specified in _ignore_keys will be excluded from the list of connection.
- property transition_dataframe: pandas.DataFrame#
Returns a pandas DataFrame representation of the transmission files, excluding specific keys.
- Returns:
A DataFrame containing the transmission files for the optical states, with specified keys excluded.
- Return type:
pd.DataFrame
Notes
The keys ‘unitary’ and ‘raw_output’ will be excluded from the transmission files.
- property target_output_dataframe: pandas.DataFrame#
Returns a pandas DataFrame filtered to include only the transitions where target_mode_output is 1.
- Returns:
A DataFrame containing only the transitions where the target mode is an output.
- Return type:
pd.DataFrame
- PhaseMapType#
Alias for phase map measurement. Can be one of: - TupleFloatType: A tuple of float values. - TupleIntType: A tuple of integer values.
- Type:
PhaseMapType
- PhaseTransitionTypes#
A literal type for phase transition measurement. Can be one of: - “cross”: Refers to a cross-type phase transition. - “bar”: Refers to a bar-type phase transition.
- Type:
PhaseTransitionTypes
- SwitchFunctionParameter#
- SParameterCollection#
- class ElectroOpticModulatorMetrics(/, **data: Any)[source]#
Bases:
piel.types.connectivity.metrics.ComponentMetricsIn this class, we define the corresponding relevant metrics to enable characterizing a modulator device.
- class ElectroOpticModulator(/, **data: Any)[source]#
Bases:
piel.types.connectivity.physical.PhysicalComponentThis is an equivalent model of an Electro-Optical modulator.
- metrics: list[ElectroOpticModulatorMetrics] = []#
Note that a given component might have a set of metrics corresponding to multiple variations of the testing conditions.
- class PulsedLaserMetrics(/, **data: Any)[source]#
Bases:
piel.types.connectivity.metrics.ComponentMetricsIn this class, we define the corresponding relevant metrics to enable characterizing a modulator device.
- wavelength_nm: piel.types.metrics.ScalarMetric#
- pulse_power_W: piel.types.metrics.ScalarMetric#
- average_power_W: piel.types.metrics.ScalarMetric#
- pulse_repetition_rate_Hz: piel.types.metrics.ScalarMetric#
- pulse_width_s: piel.types.metrics.ScalarMetric#
- class PulsedLaser(/, **data: Any)[source]#
Bases:
piel.types.connectivity.physical.PhysicalComponentThis is an equivalent model of an Electro-Optical modulator.
- metrics: list[PulsedLaserMetrics] = []#
Note that a given component might have a set of metrics corresponding to multiple variations of the testing conditions.
- class ElectronicCircuit(/, **data: Any)[source]#
Bases:
piel.types.connectivity.physical.PhysicalComponentRepresents the data of a physical component or device.
- class ElectronicChip(/, **data: Any)[source]#
Bases:
piel.types.connectivity.physical.PhysicalComponentA model representing an electronic chip in a photonic circuit.
- ElectronicCircuitComponent#
PhotonicCircuitComponent: A type representing a component in a photonic circuit, as defined in the gdsfactory framework. This type is used to handle and manipulate photonic components in circuit designs.
- class RFTwoPortAmplifier(/, **data: Any)[source]#
Bases:
piel.types.electronic.core.RFElectronicCircuitRepresents a physical RF (Radio Frequency) component with frequency-related properties.
This class extends the PhysicalComponent class to include RF-specific attributes.
Attributes:#
- networkFrequencyTransmissionModel | None
A representation of the component’s frequency network, typically containing s-parameter data. This is currently a placeholder and may be None.
- metricsFrequencyMetricCollection
A collection of frequency-related metrics for this RF component, including bandwidth and center transmission.
Inherits all attributes from PhysicalComponent.
Notes:#
The ‘network’ attribute is currently using a placeholder type (Any | None) and is intended to be updated with a proper s-parameter representation in the future.
This class combines physical component properties with RF-specific metrics, making it suitable for modeling and analyzing RF devices in a physical context.
- class RFAmplifierCollection(/, **data: Any)[source]#
Bases:
piel.types.connectivity.generic.ComponentCollectionThis represents the fundamental data structure of an element in connectivity
- components: list[RFAmplifierTypes] = []#
- RFAmplifierTypes#
- class PowerAmplifierMetrics(/, **data: Any)[source]#
Bases:
piel.types.connectivity.metrics.ComponentMetricsA model representing the metrics for a high-voltage amplifier (HVA) or a Power Amplifier (PA).
- footprint_mm2#
The physical footprint of the amplifier in square millimeters.
- Type:
- bandwidth_Hz#
The operational bandwidth of the amplifier in Hertz, given as a range (min, max).
- Type:
- power_added_efficiency#
The power added efficiency of the amplifier, given as a range (min, max).
- Type:
- power_consumption_mW#
The power consumption of the amplifier in milliwatts, given as a range (min, max).
- Type:
- power_gain_dB#
The power gain of the amplifier in decibels, given as a range (min, max).
- Type:
- saturated_power_output_dBm#
The saturated power output of the amplifier in dBm.
- Type:
- supply_voltage_V#
The supply voltage of the amplifier in volts.
- Type:
- technology_nm#
The technology node of the amplifier in nanometers.
- Type:
- technology_material#
The material technology used in the amplifier.
- Type:
Optional[str]
- footprint_mm2: piel.types.metrics.ScalarMetric#
footprint_mm2 ( ScalarMetric ): The physical footprint of the amplifier in square millimeters.
- bandwidth_Hz: piel.types.metrics.ScalarMetric#
bandwidth_Hz ( ScalarMetric ): The operational bandwidth of the amplifier in Hertz, given as a range (min, max).
- power_added_efficiency: piel.types.metrics.ScalarMetric#
power_added_efficiency ( ScalarMetric ): The power added efficiency of the amplifier, given as a range (min, max).
- power_consumption_mW: piel.types.metrics.ScalarMetric#
power_consumption_mW ( ScalarMetric ): The power consumption of the amplifier in milliwatts, given as a range (min, max).
- power_gain_dB: piel.types.metrics.ScalarMetric#
power_gain_dB ( ScalarMetric ): The power gain of the amplifier in decibels, given as a range (min, max).
- saturated_power_output_dBm: piel.types.metrics.ScalarMetric#
saturated_power_output_dBm ( ScalarMetric ): The saturated power output of the amplifier in dBm.
- supply_voltage_V: piel.types.metrics.ScalarMetric#
supply_voltage_V ( ScalarMetric ): The supply voltage of the amplifier in volts.
- technology_nm: piel.types.metrics.ScalarMetric#
technology_nm ( ScalarMetric ): The technology node of the amplifier in nanometers.
- technology_material: str = ''#
technology_material (Optional[str]): The material technology used in the amplifier.
- class PowerAmplifier(/, **data: Any)[source]#
Bases:
piel.types.electronic.amplifier.RFTwoPortAmplifierRepresents a physical RF (Radio Frequency) component with frequency-related properties.
This class extends the PhysicalComponent class to include RF-specific attributes.
Attributes:#
- networkFrequencyTransmissionModel | None
A representation of the component’s frequency network, typically containing s-parameter data. This is currently a placeholder and may be None.
- metricsFrequencyMetricCollection
A collection of frequency-related metrics for this RF component, including bandwidth and center transmission.
Inherits all attributes from PhysicalComponent.
Notes:#
The ‘network’ attribute is currently using a placeholder type (Any | None) and is intended to be updated with a proper s-parameter representation in the future.
This class combines physical component properties with RF-specific metrics, making it suitable for modeling and analyzing RF devices in a physical context.
- metrics: list[PowerAmplifierMetrics] = []#
Note that a given component might have a set of metrics corresponding to multiple variations of the testing conditions.
- class LNAMetrics(/, **data: Any)[source]#
Bases:
piel.types.connectivity.metrics.ComponentMetricsA model representing the metrics for a low-noise amplifier (LNA).
- footprint_mm2#
The physical footprint of the amplifier in square millimeters.
- Type:
- bandwidth_Hz#
The operational bandwidth of the amplifier in Hertz, given as a range (min, max).
- Type:
- noise_figure#
The noise figure of the amplifier, given as a range (min, max).
- Type:
- power_consumption_mW#
The power consumption of the amplifier in milliwatts, given as a range (min, max).
- Type:
- power_gain_dB#
The power gain of the amplifier in decibels, given as a range (min, max).
- Type:
- supply_voltage_V#
The supply voltage of the amplifier in volts.
- Type:
- technology_nm#
The technology node of the amplifier in nanometers.
- Type:
- technology_material#
The material technology used in the amplifier.
- Type:
Optional[str]
- footprint_mm2: piel.types.metrics.ScalarMetric#
footprint_mm2 ( ScalarMetric ): The physical footprint of the amplifier in square millimeters.
- bandwidth_Hz: piel.types.metrics.ScalarMetric#
bandwidth_Hz ( ScalarMetric ): The operational bandwidth of the amplifier in Hertz, given as a range (min, max).
- noise_figure: piel.types.metrics.ScalarMetric#
noise_figure ( ScalarMetric ): The noise figure of the amplifier, given as a range (min, max).
- power_consumption_mW: piel.types.metrics.ScalarMetric#
power_consumption_mW ( ScalarMetric ): The power consumption of the amplifier in milliwatts, given as a range (min, max).
- power_gain_dB: piel.types.metrics.ScalarMetric#
power_gain_dB ( ScalarMetric ): The power gain of the amplifier in decibels, given as a range (min, max).
- supply_voltage_V: piel.types.metrics.ScalarMetric#
supply_voltage_V ( ScalarMetric ): The supply voltage of the amplifier in volts.
- technology_nm: piel.types.metrics.ScalarMetric#
technology_nm ( ScalarMetric ): The technology node of the amplifier in nanometers.
- technology_material: str = ''#
technology_material (Optional[str]): The material technology used in the amplifier.
- class LowNoiseTwoPortAmplifier(/, **data: Any)[source]#
Bases:
piel.types.electronic.amplifier.RFTwoPortAmplifierRepresents a physical RF (Radio Frequency) component with frequency-related properties.
This class extends the PhysicalComponent class to include RF-specific attributes.
Attributes:#
- networkFrequencyTransmissionModel | None
A representation of the component’s frequency network, typically containing s-parameter data. This is currently a placeholder and may be None.
- metricsFrequencyMetricCollection
A collection of frequency-related metrics for this RF component, including bandwidth and center transmission.
Inherits all attributes from PhysicalComponent.
Notes:#
The ‘network’ attribute is currently using a placeholder type (Any | None) and is intended to be updated with a proper s-parameter representation in the future.
This class combines physical component properties with RF-specific metrics, making it suitable for modeling and analyzing RF devices in a physical context.
- metrics: list[LNAMetrics] = []#
Note that a given component might have a set of metrics corresponding to multiple variations of the testing conditions.
- ProjectType#
- CircuitComponent#
- MaterialReferenceType#
MaterialReferenceType: A tuple used to reference materials, where: - The first element is a mandatory string, usually representing the material name or identifier. - The second element is an optional string, which might provide additional details or context about the material.
- MaterialReferencesTypes#
MaterialReferencesTypes: A list of material references, where each reference is a tuple as defined by MaterialReferenceType. This is used to handle collections of material references in applications.
- MaterialSpecificationType#
MaterialSpecificationType: A literal type used for defining material specifications. This is typically used to enforce specific string values in material specifications.
- class ScalarMetric(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceStandard definition for a scalar metrics. It includes the value, mean, min, max, standard deviation and count.
- value: piel.types.core.NumericalTypes | None = None#
- mean: piel.types.core.NumericalTypes | None = None#
- min: piel.types.core.NumericalTypes | None = None#
- max: piel.types.core.NumericalTypes | None = None#
- standard_deviation: piel.types.core.NumericalTypes | None = None#
- count: piel.types.core.NumericalTypes | None = None#
- unit: piel.types.units.Unit#
- property data#
- property table#
- class ScalarMetricCollection(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceA collection of scalar metrics useful when analyzing multiple aspects of a design.
- metrics: list[ScalarMetric] = []#
- property data#
- property table#
Composes a full table with the names and all the individual metrics that are part of this collection.
- Returns:
A DataFrame containing all scalar metrics with their respective values.
- Return type:
pd.DataFrame
- PhotonicCircuitComponent#
PhotonicCircuitComponent: A type representing a component in a photonic circuit, as defined in the gdsfactory framework. This type is used to handle and manipulate photonic components in circuit designs.
- OpticalTransmissionCircuit#
OpticalTransmissionCircuit: A callable type representing an optical transmission circuit in the SAX framework. This is used for functions that model the behavior of optical circuits.
- RecursiveNetlist#
RecursiveNetlist: A type representing a recursive netlist in the SAX framework. This type is used to describe the hierarchical structure of photonic circuits.
- SParameterMatrixTuple#
SParameterMatrixTuple: A tuple representing an S-parameter matrix used in circuit simulations. It includes: - ArrayTypes: A matrix (numpy or jax array) representing the S-parameters. - ConnectionTypes: A tuple of strings representing the corresponding port names.
- ElectricalSignalDomains#
- QuantityTypesDC#
- class SignalDCCollection(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceThis represents the fundamental data structure of an element in connectivity
- class SignalTraceDC(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceRepresents a DC signal with all relevant components as defined by Ohm’s law but specified through a collection of data defined by a OperatingPointContainer
The values are the values of the signal. The name is the name of the signal. Can be both an operating point or a sweep collection of data.
A DC signal might have a current and a voltage attached to it, so it would be a collection of data. Current and voltage are both physical representations of electrical quantities in this case in the context of DC operation. These operating points can reference an array of data points that are collected from a DC sweep.
- unit: piel.types.units.Unit#
Intended for DC electrical types such as voltage, current, power and resistance.
- values: piel.types.core.ArrayTypes = []#
The values of the operating points in an array format.
- class SignalDC(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceThis is used to define a collection of SignalInstances which compose a DC signal. For example, the voltage and current of the same signal would be `SignalInstance`s but the total signal is the collection of these data references.
These DC signals may refer to a single trace, with a collection of voltage, current, resistance or power data points. These may still be referencing the original node.
- trace_list: list[SignalTraceDC] = []#
- class Phasor(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceContains magnitude and phase frequency response information. Can represent both an array or individual response. Equivalent to a single-frequency response. Contains a very clear notation to translate with a complex number and this term.
\[Ae^{i(\omega t+ heta)}\]- magnitude: piel.types.core.NumericalTypes | piel.types.core.ArrayTypes#
Should represent an absolute value real number.
- phase: piel.types.core.NumericalTypes | piel.types.core.ArrayTypes#
Should represent an absolute value real number.
- frequency: piel.types.core.NumericalTypes | piel.types.core.ArrayTypes#
Should represent an absolute value real number.
- frequency_unit: piel.types.units.Unit#
- phase_unit: piel.types.units.Unit#
- magnitude_unit: piel.types.units.Unit#
- property data#
- property table#
- PhasorTypes#
Different ways to represent frequency-domain information. In principle, both array and individual representations of complex numbers which can represent phasors. These could be input-arrays, as input components.
Contains a very clear notation to translate with a complex number that is a full input-representation.
\[Ae^{i(\omega t+ heta)}\]
- class PathTransmission(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceThis represents the fundamental data structure of an element in connectivity
- connection: piel.types.connectivity.generic.ConnectionTypes#
- transmission: piel.types.signal.frequency.generic.PhasorTypes#
A frequency-domain representation of transmission requires the full input response which can be represented as an array, an individual value, or a static-typed data structure - as per performance requirements.
- class NetworkTransmission(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceThis corresponds to a transmission component or array collection of the power or frequency transmission. For example, for the reflected power (ie S11 transmission), this contains magnitude and phase information from a source. Instead of responding to a given input. Note that this does not contain mode information, but could be extended to implement this.
This can represent frequency to single-state conversion and a sckit-rf collective model too, based on its definition.
This implementation is flexible because making the transmission individual is kind of essential when dealing with both electronic-photonic s-parameter state management, or otherwise it involves writing a mapping function. This is not the fastest approach, but certainly complete. Maybe someone can come up with a more complete approach that is not so resource intensive or we can abstract this into defined base-types (but I think this is it though if any validation is to be applied?)
This can also be equivalent to a sckit-rf Network static data container, just that it decomposes each specific transmission to a given frequency or power-point. It implements translation between RF models and Photonic models which are more-port specific as defined by SAX. This enables more specific electronic-photonic state mapping.
- input: piel.types.signal.frequency.generic.PhasorTypes#
The combined definition of the input state input with magnitude and phase information. Could be extended to a spectral input incidence. The length of the PhasorType should match the length of the equivalent PathTransmission for one dimension of the input representation.
- network: list[PathTransmission] = []#
Contains the entire frequency transmission response per component. Can be defined both per state and per full collection.
TODO implement port mapping already.
- FrequencyTransmissionModel#
Corresponds to a container that contains a s-parameter transmission model, for example.
This type alias is currently a placeholder (Any | None). The idea is that this is a collective static data representation compatible with both a sax-translation as with the standard sckit-rf network models.
- FrequencyTransmissionList#
- class FrequencyMetricCollection(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA 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).
- metrics: list[FrequencyMetric] = []#
- class FrequencyMetric(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelCreates a mapping between a given input and a given scalar metrics response.
- This assumes the following relationships structure:
Network(INPUT) = OUTPUT
This means that there is a directional relationship between the input and the transmission output. This type of metric includes this dimensionality assuming the metric is always related to the transmission output and that the input can be represented in the frequency domain as input. However, for the sake of completeness the input will just be called input, in case there is a higher dimensionality input into a frequency network.
This may still be valid also for other DC networks and inputs in higher-dimensional relationships as a given response might be a result of multiple values within a higher level system.
- input: piel.types.signal.frequency.core.Phasor | None = None#
- metric: piel.types.metrics.ScalarMetric#
- property table#
- class ElectroOpticDCPathTransmission(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceIt is not logically possible to decouple the output signal from the connection at which this is measured, due to the vectorial and non-scalar nature of the electro-optic network relationship.
- input_dc: piel.types.signal.dc_data.SignalDC#
- class ElectroOpticDCNetworkTransmission(/, **data: Any)[source]#
Bases:
piel.types.connectivity.abstract.InstanceApplicable when you have multiple inputs and multiple paths
- path_transmission_list: list[ElectroOpticDCPathTransmission] = []#
- class TimeSignalData(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelStandard definition for a relationship between a relevant files signal and a time reference array. Sources could be both measurement and simulation.
- time_s: piel.types.core.ArrayTypes = []#
- data: piel.types.core.ArrayTypes = []#
- data_name: str = ''#
- time_s_unit: piel.types.units.Unit#
- data_unit: piel.types.units.Unit#
- DataTimeSignalData#
- EdgeTransitionAnalysisTypes#
- MultiTimeSignalData#
- MultiDataTimeSignal#
Collection of DataTimeSignals that can be used to analyse a set of signals together in a particular files flow.
- MultiDataTimeSignalCollectionTypes = ['equivalent', 'different']#
- MultiDataTimeSignalAnalysisTypes#
- DataTimeSignalAnalysisTypes#
- class ExponentialSource(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA 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).
- voltage_1_V: float#
- voltage_2_V: float#
- rise_delay_time_s: float#
- rise_time_constant_s: float#
- fall_delay_time_s: float#
- fall_time_constant_s: float#
- class PulseSource(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA 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).
- voltage_1_V: float#
- voltage_2_V: float#
- delay_time_s: float#
- rise_time_s: float#
- fall_time_s: float#
- pulse_width_s: float#
- period_s: float#
- class PiecewiseLinearSource(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA 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).
- time_voltage_pairs: List[tuple]#
- class SineSource(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA 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).
- offset_voltage_V: float#
- amplitude_V: float#
- frequency_Hz: float#
- delay_time_s: float | None#
- damping_factor: float | None#
- SignalTimeSources#
- class SymbolicValue(/, **data: Any)[source]#
Bases:
piel.types.core.PielBaseModelA 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).
- name: str = ''#
- label: str = ''#
Label used in plots and more.
- shorthand: str = ''#
- symbol: str = ''#
- class Reference(/, **data: Any)[source]#
Bases:
piel.types.PielBaseModelA 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).
- text: str = ''#
- bibtex_id: str = ''#
- bibtex: str = ''#
- class Quantity(/, **data: Any)[source]#
Bases:
piel.types.symbolic.SymbolicValueA 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).
- name: str = ''#
- value: piel.types.core.NumericalTypes | None = None#
- unit: piel.types.units.Unit#
- __add__#
- __mul__#
- __sub__#
- __radd__#
- __rmul__#
- __rsub__#
- __truediv__#
- __rtruediv__#
- __iadd__#
- __imul__#
- __isub__#
- class Unit(/, **data: Any)[source]#
Bases:
piel.types.symbolic.SymbolicValueA 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).
- datum: BaseSIUnitNameList | str#
- base: piel.types.core.NumericalTypes = 1#
In the format 1eN
- __mul__#
- __rmul__#
- __add__#
- __radd__#
- __truediv__#
- __rtruediv__#
- BaseSIUnitNameList#
- A#
- dB#
- dBm#
- degree#
- GHz#
- Hz#
- nm#
- ns#
- m#
- MHz#
- mm2#
- mW#
- ohm#
- ps#
- ratio#
- s#
- us#
- W#
- V#