def load_from_meta(meta: dict) -> Component: if 'load_path' in meta: return load_from_meta_file(meta['load_path']) cls = meta.get('class_path', None) or meta.get('classpath', None) assert cls, f'{meta} doesn\'t contain classpath field' cls = str_to_type(cls) return cls.from_config(meta)
def from_meta(meta: dict, **kwargs): """ Parameters ---------- meta kwargs Returns ------- KerasComponent """ cls = str_to_type(meta['class_path']) obj: KerasComponent = cls() assert 'load_path' in meta, f'{meta} doesn\'t contain load_path field' obj.load(meta['load_path']) return obj
def from_config(cls, config: dict): """ Args: config: kwargs: config: dict: Returns: """ cls = config.get('classpath', None) assert cls, f'{config} doesn\'t contain classpath field' cls = str_to_type(cls) config = dict(config) config.pop('classpath') return cls(**config)
def _load_vocabs(vd, vocabs: dict, vocab_cls=Vocab): """ Args: vd: vocabs: vocab_cls: Default class for the new vocab """ for key, value in vocabs.items(): if 'idx_to_token' in value: cls = value.get('type', None) if cls: cls = str_to_type(cls) else: cls = vocab_cls vocab = cls() vocab.copy_from(value) vd[key] = vocab else: # nested Vocab # noinspection PyTypeChecker vd[key] = nested = VocabDict() VocabDict._load_vocabs(nested, value, vocab_cls)
def from_config(config: dict, **kwargs): """Build an object from config. Args: config: A ``dict`` holding parameters for its constructor. It has to contain a `classpath` key, which has a classpath str as its value. ``classpath`` will determine the type of object being deserialized. kwargs: Arguments not used. Returns: A deserialized object. """ cls = config.get('classpath', None) assert cls, f'{config} doesn\'t contain classpath field' cls = str_to_type(cls) deserialized_config = dict(config) for k, v in config.items(): if isinstance(v, dict) and 'classpath' in v: deserialized_config[k] = Configurable.from_config(v) if cls.from_config == Configurable.from_config: deserialized_config.pop('classpath') return cls(**deserialized_config) else: return cls.from_config(deserialized_config)
def from_config(meta: dict, **kwargs): cls = str_to_type(meta['classpath']) component = load_from_meta(meta['component']) return cls(component, meta['input_key'], meta['output_key'], **meta['kwargs'])
def from_config(meta: dict, **kwargs): cls = str_to_type(meta['classpath']) function = meta['function'] function = object_from_classpath(function) return cls(function)