Source code for touchstone.parser.models.touchstone_options
"""
Data classes representing options parsed from Touchstone files.
The option line (beginning with ``#``) in a Touchstone file specifies the
frequency unit, parameter type, data format, and reference impedance.
This module defines the :class:`TouchstoneOptions` dataclass to hold
those parsed values.
"""
from dataclasses import dataclass
from .data_format import DataFormat
from .frequency_unit import FrequencyUnit
from .parameter_type import ParameterType
[docs]
@dataclass(frozen=True)
class TouchstoneOptions:
"""Represents the option line configuration parsed from a Touchstone file.
A Touchstone option line has the form::
# <frequency_unit> <parameter_type> <data_format> R <impedance>
For example: ``# GHz S MA R 50``
Attributes:
frequency_unit: The frequency unit for data points.
Defaults to :attr:`~FrequencyUnit.GHZ`.
parameter_type: The network parameter type.
Defaults to :attr:`~ParameterType.S`.
data_format: The data format for parameter values.
Defaults to :attr:`~DataFormat.MA`.
reference_impedance: The reference impedance in ohms.
Defaults to ``50.0``.
"""
frequency_unit: FrequencyUnit = FrequencyUnit.GHZ
parameter_type: ParameterType = ParameterType.S
data_format: DataFormat = DataFormat.MA
reference_impedance: float = 50.0
[docs]
def __str__(self) -> str:
"""Return the option line string representation.
Returns:
str: A string formatted as a Touchstone option line,
e.g. ``# GHZ S MA R 50.0``.
"""
return (
f"# {self.frequency_unit.name} {self.parameter_type.name} "
f"{self.data_format.name} R {self.reference_impedance}"
)
[docs]
@classmethod
def default(cls) -> "TouchstoneOptions":
"""Create a TouchstoneOptions instance with default values.
Returns:
TouchstoneOptions: Default options (GHz, S, MA, 50 Ω).
"""
return cls()