diff --git a/gto/constants.py b/gto/constants.py index 0fd294d6..84ae1653 100644 --- a/gto/constants.py +++ b/gto/constants.py @@ -42,7 +42,7 @@ def tag_to_name(value): dirname = "[a-zA-Z0-9-_./]+" # improve? -name = r"[a-z0-9]([a-z0-9-/_]*[a-z0-9])?" +name = r"[a-zA-Z0-9]([a-zA-Z0-9-/_]*[a-zA-Z0-9])?" semver = r"(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)(?:-(?P(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?" counter = "?P[0-9]+" name_re = re.compile(f"^{name}$") diff --git a/tests/test_constants.py b/tests/test_constants.py index ad3d8bd7..60081cac 100644 --- a/tests/test_constants.py +++ b/tests/test_constants.py @@ -19,6 +19,8 @@ "model-prod-v1", "model_prod_v1", "dvclive/model", + "model_A", + "DVCLive/Model", ], ) def test_check_name_is_valid(name): @@ -40,8 +42,6 @@ def test_check_name_is_valid(name): "model@1", "model#1", "@namespace/model", - "DVCLive/Model", - "model A", ], ) def test_check_name_is_invalid(name): @@ -54,6 +54,7 @@ def test_check_name_is_invalid(name): "model", "dvclive:model", "some/folder:some/model", + "some/Other_Folder:some/model", ], ) def test_check_fullname_is_valid(name): @@ -67,6 +68,7 @@ def test_check_fullname_is_valid(name): "dvclive=model", "some/folder=some/model", "Some/folder/A=model", + "Some/folder/A=Model", ], ) def test_check_fullname_in_tag_is_valid(name):