Merge branch 'develop' into documentation

This commit is contained in:
fjosw 2021-11-12 14:02:03 +00:00
commit 09e3db8dbb

View file

@ -189,53 +189,25 @@ class Obs:
else: else:
fft = True fft = True
if 'S' in kwargs: def _parse_kwarg(kwarg_name):
tmp = kwargs.get('S') if kwarg_name in kwargs:
if isinstance(tmp, list): tmp = kwargs.get(kwarg_name)
if len(tmp) != len(self.e_names):
raise Exception('Length of S array does not match ensembles.')
for e, e_name in enumerate(self.e_names):
if tmp[e] <= 0:
raise Exception('S has to be larger than 0.')
self.S[e_name] = tmp[e]
else:
if isinstance(tmp, (int, float)): if isinstance(tmp, (int, float)):
if tmp <= 0: if tmp <= 0:
raise Exception('S has to be larger than 0.') raise Exception(kwarg_name + ' has to be larger than 0.')
for e, e_name in enumerate(self.e_names): for e, e_name in enumerate(self.e_names):
self.S[e_name] = tmp getattr(self, kwarg_name)[e_name] = tmp
else: else:
raise TypeError('S is not in proper format.') raise TypeError(kwarg_name + ' is not in proper format.')
else:
for e, e_name in enumerate(self.e_names):
if e_name in Obs.S_dict:
self.S[e_name] = Obs.S_dict[e_name]
else:
self.S[e_name] = Obs.S_global
if 'tau_exp' in kwargs:
tmp = kwargs.get('tau_exp')
if isinstance(tmp, list):
if len(tmp) != len(self.e_names):
raise Exception('Length of tau_exp array does not match ensembles.')
for e, e_name in enumerate(self.e_names):
if tmp[e] < 0:
raise Exception('tau_exp smaller than 0.')
self.tau_exp[e_name] = tmp[e]
else: else:
if isinstance(tmp, (int, float)): for e, e_name in enumerate(self.e_names):
if tmp < 0: if e_name in getattr(Obs, kwarg_name + '_dict'):
raise Exception('tau_exp smaller than 0.') getattr(self, kwarg_name)[e_name] = getattr(Obs, kwarg_name + '_dict')[e_name]
for e, e_name in enumerate(self.e_names): else:
self.tau_exp[e_name] = tmp getattr(self, kwarg_name)[e_name] = getattr(Obs, kwarg_name + '_global')
else:
raise TypeError('tau_exp is not in proper format.') _parse_kwarg('S')
else: _parse_kwarg('tau_exp')
for e, e_name in enumerate(self.e_names):
if e_name in Obs.tau_exp_dict:
self.tau_exp[e_name] = Obs.tau_exp_dict[e_name]
else:
self.tau_exp[e_name] = Obs.tau_exp_global
if 'N_sigma' in kwargs: if 'N_sigma' in kwargs:
self.N_sigma = kwargs.get('N_sigma') self.N_sigma = kwargs.get('N_sigma')