Source code for ewokscore.graph.schema.metadata
from typing import Callable
from typing import Optional
from typing import Tuple
import networkx
from packaging.version import parse as parse_version
[docs]
class SchemaMetadata:
"""
Metadata associated to each schema version:
- ewokscore bounds: Versions of ewokscore that support this schema version
- update method: A function that updates this schema version to the next one
"""
def __init__(
self,
ewokscore_bounds: Tuple[str, Optional[str]],
update_method: Optional[Callable[[networkx.DiGraph], None]],
) -> None:
lower, upper = ewokscore_bounds
if upper:
self.ewokscore_bounds = parse_version(lower), parse_version(upper)
else:
self.ewokscore_bounds = parse_version(lower), None
self.update_method = update_method