Skip to content

Commit f12658e

Browse files
committed
Use regex constraints in run validation too
1 parent a8484f7 commit f12658e

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

simvue/run.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
from .executor import Executor
3838
from .factory.proxy import Simvue
3939
from .metrics import get_gpu_metrics, get_process_cpu, get_process_memory
40-
from .models import RunInput
40+
from .models import RunInput, FOLDER_REGEX, NAME_REGEX
4141
from .serialization import serialize_object
4242
from .system import get_system
4343
from .metadata import git_info
@@ -449,11 +449,13 @@ def _error(self, message: str, join_threads: bool = True) -> None:
449449
@pydantic.validate_call
450450
def init(
451451
self,
452-
name: typing.Optional[str] = None,
452+
name: typing.Optional[
453+
typing.Annotated[str, pydantic.Field(pattern=NAME_REGEX)]
454+
] = None,
453455
metadata: typing.Optional[dict[str, typing.Any]] = None,
454456
tags: typing.Optional[list[str]] = None,
455457
description: typing.Optional[str] = None,
456-
folder: str = "/",
458+
folder: typing.Annotated[str, pydantic.Field(pattern=FOLDER_REGEX)] = "/",
457459
running: bool = True,
458460
retention_period: typing.Optional[str] = None,
459461
resources_metrics_interval: typing.Optional[int] = HEARTBEAT_INTERVAL,
@@ -1027,7 +1029,9 @@ def save_object(
10271029
self,
10281030
obj: typing.Any,
10291031
category: typing.Literal["input", "output", "code"],
1030-
name: typing.Optional[str] = None,
1032+
name: typing.Optional[
1033+
typing.Annotated[str, pydantic.Field(pattern=NAME_REGEX)]
1034+
] = None,
10311035
allow_pickle: bool = False,
10321036
) -> bool:
10331037
"""Save an object to the Simvue server
@@ -1084,7 +1088,9 @@ def save_file(
10841088
category: typing.Literal["input", "output", "code"],
10851089
filetype: typing.Optional[str] = None,
10861090
preserve_path: bool = False,
1087-
name: typing.Optional[str] = None,
1091+
name: typing.Optional[
1092+
typing.Annotated[str, pydantic.Field(pattern=NAME_REGEX)]
1093+
] = None,
10881094
) -> bool:
10891095
"""Upload file to the server
10901096
@@ -1345,7 +1351,7 @@ def close(self) -> bool:
13451351
@pydantic.validate_call
13461352
def set_folder_details(
13471353
self,
1348-
path: str,
1354+
path: typing.Annotated[str, pydantic.Field(pattern=FOLDER_REGEX)],
13491355
metadata: typing.Optional[dict[str, typing.Union[int, str, float]]] = None,
13501356
tags: typing.Optional[list[str]] = None,
13511357
description: typing.Optional[str] = None,
@@ -1448,7 +1454,7 @@ def add_alerts(
14481454
@pydantic.validate_call
14491455
def create_alert(
14501456
self,
1451-
name: str,
1457+
name: typing.Annotated[str, pydantic.Field(pattern=NAME_REGEX)],
14521458
source: typing.Literal["events", "metrics", "user"] = "metrics",
14531459
description: typing.Optional[str] = None,
14541460
frequency: typing.Optional[pydantic.PositiveInt] = None,

0 commit comments

Comments
 (0)