def test_normalize(self): dataset_flagged_specifier = TypeSpecifier(name='dataset', flags={'cube'}) self.assertEqual(TypeSpecifier.normalize(dataset_flagged_specifier), dataset_flagged_specifier) self.assertEqual(TypeSpecifier.normalize('dataset[cube]'), dataset_flagged_specifier) dataset_specifier = TypeSpecifier(name='dataset') self.assertEqual(TypeSpecifier.normalize(dataset_specifier), dataset_specifier) self.assertEqual(TypeSpecifier.normalize('dataset'), dataset_specifier)
def _predicate(extension: Extension) -> bool: extension_parts = extension.name.split(':', maxsplit=4) if len(extension_parts) < 3: raise DataStoreError( f'Illegal data opener/writer extension name "{extension.name}"' ) extension_type = TypeSpecifier.parse(extension_parts[0]) type_ok = type_specifier is None or extension_type == TYPE_SPECIFIER_ANY or \ extension_type == TypeSpecifier.normalize(type_specifier) format_ok = format_id is None or extension_parts[ 1] == '*' or extension_parts[1] == format_id storage_ok = storage_id is None or extension_parts[ 2] == '*' or extension_parts[2] == storage_id return type_ok and format_ok and storage_ok
def __init__(self, data_id: str, type_specifier: Union[str, TypeSpecifier], crs: str = None, bbox: Tuple[float, float, float, float] = None, spatial_res: float = None, time_range: Tuple[Optional[str], Optional[str]] = None, time_period: str = None, open_params_schema: JsonObjectSchema = None): assert_given(data_id, 'data_id') self._assert_valid_type_specifier(type_specifier) self.data_id = data_id self.type_specifier = TypeSpecifier.normalize(type_specifier) self.crs = crs self.bbox = tuple(bbox) if bbox else None self.spatial_res = spatial_res self.time_range = tuple(time_range) if time_range else None self.time_period = time_period self.open_params_schema = open_params_schema