diff --git a/gto/constants.py b/gto/constants.py index 8ac794bd..84ae1653 100644 --- a/gto/constants.py +++ b/gto/constants.py @@ -41,8 +41,8 @@ def tag_to_name(value): return value.replace(SEPARATOR_IN_TAG, SEPARATOR_IN_NAME) -dirname = "[a-z0-9-_./]+" # improve? -name = r"[a-z0-9]([a-z0-9-/_]*[a-z0-9])?" +dirname = "[a-zA-Z0-9-_./]+" # improve? +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 87d1c79d..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): @@ -66,6 +67,8 @@ def test_check_fullname_is_valid(name): "model", "dvclive=model", "some/folder=some/model", + "Some/folder/A=model", + "Some/folder/A=Model", ], ) def test_check_fullname_in_tag_is_valid(name):