summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/faker/utils/text.py
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:10:44 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:10:44 -0400
commit6d7ba58f880be618ade07f8ea080fe8c4bf8a896 (patch)
treeb1c931051ffcebd2bd9d61d98d6233ffa289bbce /venv/lib/python3.11/site-packages/faker/utils/text.py
parent4f884c9abc32990b4061a1bb6997b4b37e58ea0b (diff)
venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/faker/utils/text.py')
-rw-r--r--venv/lib/python3.11/site-packages/faker/utils/text.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/faker/utils/text.py b/venv/lib/python3.11/site-packages/faker/utils/text.py
new file mode 100644
index 0000000..5083918
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/faker/utils/text.py
@@ -0,0 +1,28 @@
+import re
+import unicodedata
+
+from typing import Pattern
+
+_re_pattern: Pattern = re.compile(r"[^\w\s-]", flags=re.U)
+_re_pattern_allow_dots: Pattern = re.compile(r"[^\.\w\s-]", flags=re.U)
+_re_spaces: Pattern = re.compile(r"[-\s]+", flags=re.U)
+
+
+def slugify(value: str, allow_dots: bool = False, allow_unicode: bool = False) -> str:
+ """
+ Converts to lowercase, removes non-word characters (alphanumerics and
+ underscores) and converts spaces to hyphens. Also strips leading and
+ trailing whitespace. Modified to optionally allow dots.
+
+ Adapted from Django 1.9
+ """
+ pattern: Pattern = _re_pattern_allow_dots if allow_dots else _re_pattern
+
+ value = str(value)
+ if allow_unicode:
+ value = unicodedata.normalize("NFKC", value)
+ value = pattern.sub("", value).strip().lower()
+ return _re_spaces.sub("-", value)
+ value = unicodedata.normalize("NFKD", value).encode("ascii", "ignore").decode("ascii")
+ value = pattern.sub("", value).strip().lower()
+ return _re_spaces.sub("-", value)