diff --git a/src/flowrep/api/tools.py b/src/flowrep/api/tools.py index 8268cd07..3844c52f 100644 --- a/src/flowrep/api/tools.py +++ b/src/flowrep/api/tools.py @@ -5,6 +5,8 @@ for downstream library developers. """ +from flowrep.base_models import is_valid_label as is_valid_label +from flowrep.base_models import validate_label as validate_label from flowrep.compiler.source import flowrep2python as flowrep2python from flowrep.converters.python_workflow_definition import ( OutputContractError as OutputContractError, @@ -15,6 +17,7 @@ from flowrep.parsers.atomic_parser import atomic as atomic from flowrep.parsers.atomic_parser import parse_atomic as parse_atomic from flowrep.parsers.dataclass_parser import dataclass as dataclass +from flowrep.parsers.label_helpers import unique_suffix as unique_suffix from flowrep.parsers.workflow_parser import parse_workflow as parse_workflow from flowrep.parsers.workflow_parser import workflow as workflow from flowrep.prospective.constant_recipe import is_jsonable as is_jsonable diff --git a/src/flowrep/base_models.py b/src/flowrep/base_models.py index 9003f494..8000bb5a 100644 --- a/src/flowrep/base_models.py +++ b/src/flowrep/base_models.py @@ -42,7 +42,7 @@ def is_valid_label(label: str) -> bool: ) -def _validate_label(v: str) -> str: +def validate_label(v: str) -> str: if not isinstance(v, str) or not is_valid_label(v): raise ValueError( f"Label must be a valid Python identifier and not in " @@ -51,7 +51,7 @@ def _validate_label(v: str) -> str: return v -Label = Annotated[str, pydantic.BeforeValidator(_validate_label)] +Label = Annotated[str, pydantic.BeforeValidator(validate_label)] T = TypeVar("T", bound=Hashable)