Repository: iterative/gto (language: python)

Issue:
Allow caps in dirname



Discussion / hints:
related: https://github.com/iterative/gto/issues/403

Fix patch:
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"(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?: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<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?"
 counter = "?P<counter>[0-9]+"
 name_re = re.compile(f"^{name}$")


Test patch:
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):