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