def test_yaml_save_load_roundtrip(extension): data = {'some': ['data']} with NamedTemporaryFile() as f: path = Path(f.name).with_suffix(extension) save_to_yaml(data, path) f.flush() data_deserialized = load_yaml(path) assert data == data_deserialized
def from_yaml(path: Pathlike) -> 'FeatureSet': data = load_yaml(path) return FeatureSet( feature_extractor=FeatureExtractor.from_dict( data['feature_extractor']), features=[ Features(**feature_data) for feature_data in data['features'] ], )
def load_manifest(path: Pathlike) -> Manifest: """Generic utility for reading an arbitrary manifest.""" raw_data = load_yaml(path) data_set = None for manifest_type in [RecordingSet, SupervisionSet, FeatureSet, CutSet]: try: data_set = manifest_type.from_dicts(raw_data) except Exception: pass if data_set is None: raise ValueError(f'Unknown type of manifest: {path}') return data_set
def from_yaml(path: Pathlike) -> 'CutSet': raw_cuts = load_yaml(path) def deserialize_one(raw_cut: dict) -> AnyCut: cut_type = raw_cut.pop('type') if cut_type == 'Cut': return Cut.from_dict(raw_cut) if cut_type == 'MixedCut': return MixedCut.from_dict(raw_cut) raise ValueError( f"Unexpected cut type during deserialization: '{cut_type}'") return CutSet.from_cuts(deserialize_one(cut) for cut in raw_cuts)
def from_yaml(cls, path: Pathlike) -> 'FeatureExtractor': return cls.from_dict(load_yaml(path))
def from_yaml(path: Pathlike) -> 'RecordingSet': raw_recordings = load_yaml(path) return RecordingSet.from_recordings( Recording.from_dict(raw_rec) for raw_rec in raw_recordings)
def from_yaml(path: Pathlike) -> 'SupervisionSet': raw_segments = load_yaml(path) return SupervisionSet.from_segments( SupervisionSegment.from_dict(s) for s in raw_segments)