summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/faker/providers/internet/el_GR
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/providers/internet/el_GR
parent4f884c9abc32990b4061a1bb6997b4b37e58ea0b (diff)
venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/faker/providers/internet/el_GR')
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/internet/el_GR/__init__.py81
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/internet/el_GR/__pycache__/__init__.cpython-311.pycbin0 -> 4692 bytes
2 files changed, 81 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/faker/providers/internet/el_GR/__init__.py b/venv/lib/python3.11/site-packages/faker/providers/internet/el_GR/__init__.py
new file mode 100644
index 0000000..879da2c
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/faker/providers/internet/el_GR/__init__.py
@@ -0,0 +1,81 @@
+import re
+
+from faker.utils.decorators import slugify_domain
+
+from .. import Provider as InternetProvider
+
+
+class Provider(InternetProvider):
+ free_email_domains = (
+ "hol.gr",
+ "gmail.com",
+ "hotmail.gr",
+ "yahoo.gr",
+ "googlemail.gr",
+ "otenet.gr",
+ "forthnet.gr",
+ )
+ tlds = ("com", "com", "com", "net", "org", "gr", "gr", "gr")
+
+ @slugify_domain
+ def user_name(self) -> str:
+ pattern: str = self.random_element(self.user_name_formats)
+ return latinize(self.bothify(self.generator.parse(pattern)))
+
+ @slugify_domain
+ def domain_word(self) -> str:
+ company = self.generator.format("company")
+ company_elements = company.split(" ")
+ company = latinize(company_elements.pop(0))
+ return company
+
+
+# ``slugify`` doesn't replace greek glyphs.
+
+
+def remove_accents(value: str) -> str:
+ """
+ Remove accents from characters in the given string.
+ """
+ search = "ΆΈΉΊΌΎΏάέήίόύώΪϊΐϋΰ"
+ replace = "ΑΕΗΙΟΥΩαεηιουωΙιιυυ"
+
+ def replace_accented_character(match):
+ matched = match.group(0)
+ if matched in search:
+ return replace[search.find(matched)]
+ return matched
+
+ return re.sub(r"[{}]+".format(search), replace_accented_character, value)
+
+
+def latinize(value: str) -> str:
+ """
+ Converts (transliterates) greek letters to latin equivalents.
+ """
+
+ def replace_double_character(match):
+ search = ("Θ Χ Ψ " "θ χ ψ " "ΟΥ ΑΥ ΕΥ " "Ου Αυ Ευ " "ου αυ ευ").split()
+ replace = ("TH CH PS " "th ch ps " "OU AU EU " "Ou Au Eu " "ou au eu").split()
+ matched = match.group(0)
+ if matched in search:
+ return replace[search.index(matched)]
+ return matched
+
+ search = "ΑΒΓΔΕΖΗΙΚΛΜΝΞΟΠΡΣΣΤΥΦΩαβγδεζηικλμνξοπρσςτυφω"
+ replace = "AVGDEZIIKLMNXOPRSSTUFOavgdeziiklmnxoprsstyfo"
+
+ def replace_greek_character(match):
+ matched = list(match.group(0))
+ value = (replace[search.find(char)] for char in matched)
+ return "".join(value)
+
+ return re.sub(
+ r"[{}]+".format(search),
+ replace_greek_character,
+ re.sub(
+ r"([ΘΧΨθχψ]+|ΟΥ|ΑΥ|ΕΥ|Ου|Αυ|Ευ|ου|αυ|ευ)",
+ replace_double_character,
+ remove_accents(value),
+ ),
+ )
diff --git a/venv/lib/python3.11/site-packages/faker/providers/internet/el_GR/__pycache__/__init__.cpython-311.pyc b/venv/lib/python3.11/site-packages/faker/providers/internet/el_GR/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 0000000..3c86cb7
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/faker/providers/internet/el_GR/__pycache__/__init__.cpython-311.pyc
Binary files differ