Skip to content
Snippets Groups Projects

Revised CalCat API

Merged Thomas Kluyver requested to merge calcat-api-2 into master
1 file
+ 6
6
Compare changes
  • Side-by-side
  • Inline
@@ -83,7 +83,7 @@ class ModulesConstantVersions:
@@ -83,7 +83,7 @@ class ModulesConstantVersions:
constants: Dict[str, SingleConstantVersion] # Keys e.g. 'LPD00'
constants: Dict[str, SingleConstantVersion] # Keys e.g. 'LPD00'
def select_modules(self, *aggregators) -> "ModulesConstantVersions":
def select_modules(self, aggregators) -> "ModulesConstantVersions":
d = {aggr: scv for (aggr, scv) in self.constants.items() if aggr in aggregators}
d = {aggr: scv for (aggr, scv) in self.constants.items() if aggr in aggregators}
return ModulesConstantVersions(d)
return ModulesConstantVersions(d)
@@ -173,7 +173,7 @@ class CalibrationData(Mapping):
@@ -173,7 +173,7 @@ class CalibrationData(Mapping):
res = cls(d, modules)
res = cls(d, modules)
if modules:
if modules:
res = res.select_modules(*modules)
res = res.select_modules(modules)
return res
return res
@classmethod
@classmethod
@@ -227,14 +227,14 @@ class CalibrationData(Mapping):
@@ -227,14 +227,14 @@ class CalibrationData(Mapping):
def qm_names(self):
def qm_names(self):
return [module_index_to_qm(n) for n in self.module_nums]
return [module_index_to_qm(n) for n in self.module_nums]
def require_calibrations(self, *calibrations):
def require_calibrations(self, calibrations):
"""Drop any modules missing the specified constant types"""
"""Drop any modules missing the specified constant types"""
mods = set(self.aggregators)
mods = set(self.aggregators)
for cal_type in calibrations:
for cal_type in calibrations:
mods.intersection_update(self[cal_type].constants)
mods.intersection_update(self[cal_type].constants)
return self.select_modules(mods)
return self.select_modules(mods)
def select_calibrations(self, *calibrations, require_all=True):
def select_calibrations(self, calibrations, require_all=True):
if require_all:
if require_all:
missing = set(calibrations) - set(self.constant_groups)
missing = set(calibrations) - set(self.constant_groups)
if missing:
if missing:
@@ -248,9 +248,9 @@ class CalibrationData(Mapping):
@@ -248,9 +248,9 @@ class CalibrationData(Mapping):
# TODO: missing for some modules?
# TODO: missing for some modules?
return type(self)(d, self.aggregators)
return type(self)(d, self.aggregators)
def select_modules(self, *aggregators):
def select_modules(self, aggregators):
return type(self)({
return type(self)({
cal_type: mcv.select_modules(*aggregators).constants
cal_type: mcv.select_modules(aggregators).constants
for (cal_type, mcv) in self.constant_groups.items()
for (cal_type, mcv) in self.constant_groups.items()
}, sorted(aggregators))
}, sorted(aggregators))
Loading