Skip to content

Commit b5a67e1

Browse files
authored
Merge pull request #279 from spicyPug02/update-snake-case-regex-util
Fix str to snake to capture uppercase words followed by an underscore
2 parents ef8ebf0 + 03c4fe1 commit b5a67e1

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## 0.13.0 (UNRELEASED)
44

5+
- Fixed `str_to_snake_case` utility to capture fully capitalized words followed by an underscore.
6+
57

68
## 0.12.0 (2024-02-05)
79

ariadne_codegen/utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def str_to_snake_case(name: str) -> str:
5555
# lower-case letters that optionally start with a single upper-case letter
5656
lowercase_words = r"[A-Z]?[a-z]+"
5757
# upper-case letters, excluding last letter if it is followed by a lower-case letter
58-
uppercase_words = r"[A-Z]+(?=[A-Z][a-z]|\d|\W|$)"
58+
uppercase_words = r"[A-Z]+(?=[A-Z][a-z]|\d|\W|_|$)"
5959
numbers = r"\d+"
6060

6161
words = re.findall(rf"{lowercase_words}|{uppercase_words}|{numbers}", name)

tests/test_utils.py

+3
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,12 @@ class TestClass(Efg):
8484
("Test", "test"),
8585
("TEST", "test"),
8686
("test_word", "test_word"),
87+
("TEST_word", "test_word"),
88+
("testTEST__Word3", "test_test_word_3"),
8789
("TestWord", "test_word"),
8890
("testWord", "test_word"),
8991
("TESTWord", "test_word"),
92+
("TEST%Word", "test_word"),
9093
("testWORD", "test_word"),
9194
("testW", "test_w"),
9295
("TestW", "test_w"),

0 commit comments

Comments
 (0)