def load_dmodel_common(cls, info, ndim, dataset, dataset_cls): desc = parseutils.make_typed_desc(cls, 'dmodel') info = copy.deepcopy(info) if dataset: dataset_desc = parseutils.make_typed_desc(dataset_cls, 'dataset') if not isinstance(dataset, dataset_cls): raise RuntimeError( f"{desc} " f"is not compatible with " f"{dataset_desc}") info.update(dict( size=dataset.size(), step=info.get('step', dataset.step()), rpix=info.get('rpix', dataset.rpix()), rval=info.get('rval', dataset.rval()), rota=info.get('rota', dataset.rota()), dtype=info.get('dtype', str(dataset.dtype)))) opts = parseutils.parse_options_for_callable(info, desc, cls.__init__) for attr in ['size', 'step', 'cval', 'scale']: if attr in opts: opts[attr] = opts[attr][:ndim] if 'dtype' in opts: opts['dtype'] = np.dtype(opts['dtype']).type if 'psf' in opts: opts['psf'] = gbkfit.psflsf.psf_parser.load(opts['psf']) if 'lsf' in opts: opts['lsf'] = gbkfit.psflsf.lsf_parser.load(opts['lsf']) return opts
def load(cls, info): desc = parseutils.make_typed_desc(cls, 'gmodel component') opts = parseutils.parse_options_for_callable(info, desc, cls.__init__) opts.update( dict(rptraits=traits.rpt_parser.load(opts.get('rptraits')), sptraits=traits.spt_parser.load(opts.get('sptraits')), wptraits=traits.wpt_parser.load(opts.get('wptraits')))) return cls(**opts)
def load(cls, info, **kwargs): info = _parse_min_and_max(info, **kwargs) desc = parseutils.make_typed_desc(cls, 'prior') opts = parseutils.parse_options_for_callable( info, desc, cls.__init__, fun_rename_args=dict( minimum='min', maximum='max')) return cls(**opts)
def load(cls, info): desc = parseutils.make_typed_desc(cls, 'fitter') opts = parseutils.parse_options_for_callable(info, desc, cls.__init__) if 'crossover' in opts: opts['crossover'] = pymooutils.crossover_parser.load( opts['crossover']) if 'mutation' in opts: opts['mutation'] = pymooutils.mutation_parser.load( opts['mutation']) if 'selection' in opts: opts['selection'] = pymooutils.selection_parser.load( opts['selection']) if 'termination' in opts: opts['termination'] = pymooutils.termination_parser.load( opts['termination']) return cls(**opts)
def __init__(self, data): desc = parseutils.make_typed_desc(self.__class__, 'dataset') # At least one data item must be defined if not data: raise RuntimeError(f"{desc} contains no data items") if all([v is None for v in data.values()]): raise RuntimeError() # All data items must have the same properties _ensure_same_attrib_value(data, 'size', desc) _ensure_same_attrib_value(data, 'step', desc) _ensure_same_attrib_value(data, 'rpix', desc) _ensure_same_attrib_value(data, 'rval', desc) _ensure_same_attrib_value(data, 'rota', desc) _ensure_same_attrib_value(data, 'dtype', desc) # We need to copy the data to ensure they are kept intact self._data = copy.deepcopy(data)
def load_dataset_common(cls, info, names, **kwargs): prefix = kwargs.get('prefix', '') desc = parseutils.make_typed_desc(cls, 'dataset') opts = parseutils.parse_options_for_callable( info, desc, cls.__init__, add_optional=['step', 'rpix', 'rval', 'rota']) step = opts.pop('step', None) rpix = opts.pop('rpix', None) rval = opts.pop('rval', None) rota = opts.pop('rota', None) for name in names: if name in opts: opts[name] = data_parser.load(opts[name], step, rpix, rval, rota, prefix=prefix) return opts
def load(cls, info): desc = parseutils.make_typed_desc(cls, 'fitter') opts = parseutils.parse_options_for_callable(info, desc, cls.__init__) opts.update(moves=load_moves_with_weights(opts.get('moves'))) return cls(**opts)
def load(cls, info): desc = parseutils.make_typed_desc(cls, 'fitter') opts = parseutils.parse_options_for_callable(info, desc, cls.__init__) return cls(**opts)
def load(cls, info): desc = parseutils.make_typed_desc(cls, 'gmodel') opts = parseutils.parse_options_for_callable(info, desc, cls.__init__) opts.update(components=_dcmp_parser.load(info['components'])) return cls(**opts)
def _load_psf_common(cls, info): desc = parseutils.make_typed_desc(cls, 'PSF') return parseutils.parse_options_for_callable(info, desc, cls.__init__)