Source code for semi_cr.core.lab.utils.data.collection


from dataclasses import dataclass, field

import numpy as np
from qcodes.parameters import ManualParameter, Parameter


[docs] @dataclass class ParameterCollection: params: dict[str, ManualParameter | Parameter] = field(default_factory=dict)
[docs] def add(self, name: str, param: ManualParameter | Parameter) -> None: self.params[name] = param
[docs] def get(self, name: str) -> ManualParameter | Parameter: return self.params[name]
def __getattr__(self, name: str) -> ManualParameter | Parameter: try: return self.params[name] except KeyError: raise AttributeError(name) from None
[docs] @dataclass class DataCollection: data: dict[str, np.ndarray] = field(default_factory=dict)
[docs] def add(self, name: str, values) -> None: self.data[name] = np.asarray(values)
[docs] def get(self, name: str) -> np.ndarray: return self.data[name]
def __getattr__(self, name: str) -> np.ndarray: try: return self.data[name] except KeyError: raise AttributeError(name) from None