Source code for pystac_client.conformance
from __future__ import annotations
import re
from enum import Enum
[docs]class ConformanceClasses(Enum):
"""Enumeration class for Conformance Classes"""
# defined conformance classes regexes
CORE = "/core"
COLLECTIONS = "/collections"
# this is ogcapi-features instead of just features for historical reasons,
# even thought this is a STAC API conformance class
FEATURES = "/ogcapi-features"
ITEM_SEARCH = "/item-search"
CONTEXT = "/item-search#context"
FIELDS = "/item-search#fields"
SORT = "/item-search#sort"
QUERY = "/item-search#query"
FILTER = "/item-search#filter"
[docs] @classmethod
def get_by_name(cls, name: str) -> ConformanceClasses:
for member in cls:
if member.name == name.upper():
return member
raise ValueError(
f"Invalid conformance class '{name}'. Options are: {list(cls)}"
)
def __str__(self) -> str:
return f"{self.name}"
def __repr__(self) -> str:
return str(self)
@property
def valid_uri(self) -> str:
return f"https://api.stacspec.org/v1.0.*{self.value}"
@property
def pattern(self) -> re.Pattern[str]:
return re.compile(
rf"{re.escape('https://api.stacspec.org/v1.0.')}(.*){re.escape(self.value)}"
)