prsctrl.measurement.settings.PrsSettings#

class PrsSettings(modes: dict[str, ~prsctrl.measurement.settings.ModeSettings]=<factory>, general: MeasurementSettings = <factory>, laser: LaserSettings | None = None, led: LedSettings | None = None, monochromators: list[MonochromatorSettings] = <factory>)[source]#

Bases: SettingsClass

All settings for a photoreflectance or phototransmittance measurement.

Methods

as_dict

Convenience wrapper for dataclasses.asdict(self)

from_dict

Recursively construct a SettingsClass from a dictionary.

load_yaml

prepare

Apply pump power density setting.

save_yaml

Attributes

laser

led

modes

Mode key (ref/tra): mode settings

general

monochromators

A list of monochromator setting settings is supported to allow for dual monochromator setups.

__annotations__ = {'general': <class 'prsctrl.measurement.settings.MeasurementSettings'>, 'laser': typing.Optional[prsctrl.measurement.settings.LaserSettings], 'led': typing.Optional[prsctrl.measurement.settings.LedSettings], 'modes': dict[str, prsctrl.measurement.settings.ModeSettings], 'monochromators': list[prsctrl.measurement.settings.MonochromatorSettings]}#
__dataclass_fields__ = {'general': Field(name='general',type=<class 'prsctrl.measurement.settings.MeasurementSettings'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'prsctrl.measurement.settings.MeasurementSettings'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'laser': Field(name='laser',type=typing.Optional[prsctrl.measurement.settings.LaserSettings],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'led': Field(name='led',type=typing.Optional[prsctrl.measurement.settings.LedSettings],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'modes': Field(name='modes',type=dict[str, prsctrl.measurement.settings.ModeSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'monochromators': Field(name='monochromators',type=list[prsctrl.measurement.settings.MonochromatorSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}#
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)#
__dict__ = mappingproxy({'__module__': 'prsctrl.measurement.settings', '__firstlineno__': 186, '__annotations__': {'modes': dict[str, prsctrl.measurement.settings.ModeSettings], 'general': <class 'prsctrl.measurement.settings.MeasurementSettings'>, 'laser': typing.Optional[prsctrl.measurement.settings.LaserSettings], 'led': typing.Optional[prsctrl.measurement.settings.LedSettings], 'monochromators': list[prsctrl.measurement.settings.MonochromatorSettings]}, '__doc__': '\nAll settings for a photoreflectance or phototransmittance measurement.\n', 'laser': None, 'led': None, 'prepare': <function PrsSettings.prepare>, '__static_attributes__': ('laser', 'led'), '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'modes': Field(name='modes',type=dict[str, prsctrl.measurement.settings.ModeSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'general': Field(name='general',type=<class 'prsctrl.measurement.settings.MeasurementSettings'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'prsctrl.measurement.settings.MeasurementSettings'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'laser': Field(name='laser',type=typing.Optional[prsctrl.measurement.settings.LaserSettings],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'led': Field(name='led',type=typing.Optional[prsctrl.measurement.settings.LedSettings],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'monochromators': Field(name='monochromators',type=list[prsctrl.measurement.settings.MonochromatorSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function PrsSettings.__init__>, '__repr__': <function PrsSettings.__repr__>, '__eq__': <function PrsSettings.__eq__>, '__match_args__': ('modes', 'general', 'laser', 'led', 'monochromators')})#
__eq__(other)#

Return self==value.

__firstlineno__ = 186#
__hash__ = None#
__init__(modes: dict[str, ~prsctrl.measurement.settings.ModeSettings]=<factory>, general: MeasurementSettings = <factory>, laser: LaserSettings | None = None, led: LedSettings | None = None, monochromators: list[MonochromatorSettings] = <factory>) None#
__match_args__ = ('modes', 'general', 'laser', 'led', 'monochromators')#
__module__ = 'prsctrl.measurement.settings'#
__or__(other)#

Merge with another settings class or a dictionary.

__replace__(**changes)#
__repr__()#

Return repr(self).

__static_attributes__ = ('laser', 'led')#
__weakref__#

list of weak references to the object

as_dict() dict#

Convenience wrapper for dataclasses.asdict(self)

classmethod from_dict(data: dict)#

Recursively construct a SettingsClass from a dictionary. If the value of a field is another SettingsClass, from_dict will be called for that field as well. Handled are: - SettingsClass - list[SettingsClass] - dict[<any>, SettingsClass] - all of the above as Optional

Raises:
  • ValueError – If data contains a value that has the wrong type for the field of cls (ONLY if the type is a subclass of SettingsClass! Other types are not enforced)

  • KeyError – If data contains a key that is not a field name of cls

general: MeasurementSettings#
laser: LaserSettings | None = None#
led: LedSettings | None = None#
classmethod load_yaml(yaml_path: str, loader=<class 'yaml.loader.Loader'>)#
modes: dict[str, ModeSettings]#

Mode key (ref/tra): mode settings

monochromators: list[MonochromatorSettings]#

A list of monochromator setting settings is supported to allow for dual monochromator setups.

prepare(power_density_to_laser_power_mW: Callable[[float], float] | None = None, power_density_to_led_current_A: Callable[[float], float] | None = None)[source]#

Apply pump power density setting. :param power_density_to_laser_power_mW: Function to convert pump power density to laser power density. :param power_density_to_led_current_A: Function to convert pump power density to led current density.

save_yaml(yaml_path: str)#