aboutsummaryrefslogtreecommitdiff
path: root/configlib/util.py
diff options
context:
space:
mode:
authorromangraef <romangraef@loves.dicksinhisan.us>2018-07-06 10:35:54 +0200
committerromangraef <romangraef@loves.dicksinhisan.us>2018-07-06 10:35:54 +0200
commitcbb9f2c3622ec96caf4ec9e58e84c8fbd3f45d23 (patch)
treebfe6aa26d7cab12334ae79b353ba2ec365f2b582 /configlib/util.py
downloadconfiglib-cbb9f2c3622ec96caf4ec9e58e84c8fbd3f45d23.tar.gz
configlib-cbb9f2c3622ec96caf4ec9e58e84c8fbd3f45d23.tar.bz2
configlib-cbb9f2c3622ec96caf4ec9e58e84c8fbd3f45d23.zip
Initial commit
Diffstat (limited to 'configlib/util.py')
-rw-r--r--configlib/util.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/configlib/util.py b/configlib/util.py
new file mode 100644
index 0000000..3c7618d
--- /dev/null
+++ b/configlib/util.py
@@ -0,0 +1,18 @@
+import re
+from typing import List
+
+
+def parse_case(any_case: str) -> List[str]:
+ if '_' in any_case:
+ return any_case.lower().split('_')
+ if '-' in any_case:
+ return any_case.lower().split('-')
+ return [word.lower() for word in re.split('(?<=[a-z0-9])(?=[A-Z])', any_case)]
+
+
+def snake_case(any_case: str) -> str:
+ return '_'.join(parse_case(any_case))
+
+
+def pascal_case(any_case: str) -> str:
+ return ''.join(word.capitalize() for word in parse_case(any_case))