123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import sys
- import time
- from typing import Dict, List, Optional, Tuple
- from uuid import UUID
- from dataladmetadatamodel.metadatarootrecord import MetadataRootRecord
- from dataladmetadatamodel.uuidset import UUIDSet
- from dataladmetadatamodel.versionlist import VersionList
- from tools.metadata_creator.mrrcreator import create_metadata_root_record
- from tools.metadata_creator.utils import get_dataset_id, get_dataset_version, read_datasets
- def create_uuid_set(mapper_family: str,
- realm: str,
- path: str,
- parameter_set_count: int
- ) -> Optional[UUIDSet]:
- uuid_set = UUIDSet(mapper_family, realm)
- for path, dir_entry in read_datasets(path):
- dataset_id = get_dataset_id(dir_entry.path)
- if dataset_id is None:
- print(f"cannot determine id of dataset at {dir_entry.path}", file=sys.stderr)
- continue
- version = get_dataset_version(dir_entry.path)
- if version is None:
- print(f"cannot determine version of dataset at {dir_entry.path}", file=sys.stderr)
- continue
- version_list = VersionList()
- version_list.set_versioned_element(
- version,
- str(time.time()),
- path,
- create_metadata_root_record(
- mapper_family,
- realm,
- dataset_id,
- version,
- dir_entry.path,
- path,
- parameter_set_count
- )
- )
- uuid_set.set_version_list(
- dataset_id,
- version_list
- )
- return uuid_set
- def create_uuid_set_for_mrrs(mapper_family: str,
- realm: str,
- metadata_root_records: Dict[Tuple[UUID, str, str], MetadataRootRecord]
- ) -> UUIDSet:
- uuid_version_list = dict()
- uuid_set = UUIDSet(mapper_family, realm)
- for id_version_path, metadata_root_record in metadata_root_records.items():
- uuid, dataset_version, relative_path = id_version_path
- version_list = uuid_version_list.get(
- uuid,
- VersionList())
- version_list.set_versioned_element(
- dataset_version,
- str(time.time()),
- relative_path,
- metadata_root_record
- )
- uuid_version_list[uuid] = version_list
- for uuid, version_list in uuid_version_list.items():
- uuid_set.set_version_list(uuid, version_list)
- return uuid_set
|