Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/faker/providers/person/__init__.py: 22%
103 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1from faker.utils.datasets import add_ordereddicts
3from .. import BaseProvider, ElementsType
5localized = True
8class Provider(BaseProvider):
9 formats: ElementsType[str] = ["{{first_name}} {{last_name}}"]
11 first_names: ElementsType[str] = ["John", "Jane"]
13 last_names: ElementsType[str] = ["Doe"]
15 # https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
16 language_names: ElementsType[str] = [
17 "Afar",
18 "Abkhazian",
19 "Avestan",
20 "Afrikaans",
21 "Akan",
22 "Amharic",
23 "Aragonese",
24 "Arabic",
25 "Assamese",
26 "Avaric",
27 "Aymara",
28 "Azerbaijani",
29 "Bashkir",
30 "Belarusian",
31 "Bulgarian",
32 "Bihari languages",
33 "Bislama",
34 "Bambara",
35 "Bengali",
36 "Tibetan",
37 "Breton",
38 "Bosnian",
39 "Catalan",
40 "Chechen",
41 "Chamorro",
42 "Corsican",
43 "Cree",
44 "Czech",
45 "Church Slavic",
46 "Chuvash",
47 "Welsh",
48 "Danish",
49 "German",
50 "Divehi",
51 "Dzongkha",
52 "Ewe",
53 "Greek",
54 "English",
55 "Esperanto",
56 "Spanish",
57 "Estonian",
58 "Basque",
59 "Persian",
60 "Fulah",
61 "Finnish",
62 "Fijian",
63 "Faroese",
64 "French",
65 "Western Frisian",
66 "Irish",
67 "Gaelic",
68 "Galician",
69 "Guarani",
70 "Gujarati",
71 "Manx",
72 "Hausa",
73 "Hebrew",
74 "Hindi",
75 "Hiri Motu",
76 "Croatian",
77 "Haitian",
78 "Hungarian",
79 "Armenian",
80 "Herero",
81 "Interlingua",
82 "Indonesian",
83 "Interlingue",
84 "Igbo",
85 "Sichuan Yi",
86 "Inupiaq",
87 "Ido",
88 "Icelandic",
89 "Italian",
90 "Inuktitut",
91 "Japanese",
92 "Javanese",
93 "Georgian",
94 "Kongo",
95 "Kikuyu",
96 "Kuanyama",
97 "Kazakh",
98 "Kalaallisut",
99 "Central Khmer",
100 "Kannada",
101 "Korean",
102 "Kanuri",
103 "Kashmiri",
104 "Kurdish",
105 "Komi",
106 "Cornish",
107 "Kirghiz",
108 "Latin",
109 "Luxembourgish",
110 "Ganda",
111 "Limburgan",
112 "Lingala",
113 "Lao",
114 "Lithuanian",
115 "Luba-Katanga",
116 "Latvian",
117 "Malagasy",
118 "Marshallese",
119 "Maori",
120 "Macedonian",
121 "Malayalam",
122 "Mongolian",
123 "Marathi",
124 "Malay",
125 "Maltese",
126 "Burmese",
127 "Nauru",
128 "North Ndebele",
129 "Nepali",
130 "Ndonga",
131 "Dutch",
132 "Norwegian Nynorsk",
133 "Norwegian",
134 "South Ndebele",
135 "Navajo",
136 "Chichewa",
137 "Occitan",
138 "Ojibwa",
139 "Oromo",
140 "Oriya",
141 "Ossetian",
142 "Panjabi",
143 "Pali",
144 "Polish",
145 "Pushto",
146 "Portuguese",
147 "Quechua",
148 "Romansh",
149 "Rundi",
150 "Romanian",
151 "Russian",
152 "Kinyarwanda",
153 "Sanskrit",
154 "Sardinian",
155 "Sindhi",
156 "Northern Sami",
157 "Sango",
158 "Sinhala",
159 "Slovak",
160 "Slovenian",
161 "Samoan",
162 "Shona",
163 "Somali",
164 "Albanian",
165 "Serbian",
166 "Swati",
167 "Sotho, Southern",
168 "Sundanese",
169 "Swedish",
170 "Swahili",
171 "Tamil",
172 "Telugu",
173 "Tajik",
174 "Thai",
175 "Tigrinya",
176 "Turkmen",
177 "Tagalog",
178 "Tswana",
179 "Tonga",
180 "Turkish",
181 "Tsonga",
182 "Tatar",
183 "Twi",
184 "Tahitian",
185 "Uighur",
186 "Ukrainian",
187 "Urdu",
188 "Uzbek",
189 "Venda",
190 "Vietnamese",
191 "Walloon",
192 "Wolof",
193 "Xhosa",
194 "Yiddish",
195 "Yoruba",
196 "Zhuang",
197 "Chinese",
198 "Zulu",
199 ]
201 def name(self) -> str:
202 """
203 :example 'John Doe'
204 """
205 pattern: str = self.random_element(self.formats)
206 return self.generator.parse(pattern)
208 def first_name(self) -> str:
209 return self.random_element(self.first_names)
211 def last_name(self) -> str:
212 return self.random_element(self.last_names)
214 def name_male(self) -> str:
215 if hasattr(self, "formats_male"):
216 formats = self.formats_male # type: ignore[attr-defined]
217 else:
218 formats = self.formats
219 pattern: str = self.random_element(formats)
220 return self.generator.parse(pattern)
222 def name_nonbinary(self) -> str:
223 if hasattr(self, "formats_nonbinary"):
224 formats = self.formats_nonbinary # type: ignore[attr-defined]
225 else:
226 formats = self.formats
227 pattern: str = self.random_element(formats)
228 return self.generator.parse(pattern)
230 def name_female(self) -> str:
231 if hasattr(self, "formats_female"):
232 formats = self.formats_female # type: ignore[attr-defined]
233 else:
234 formats = self.formats
235 pattern: str = self.random_element(formats)
236 return self.generator.parse(pattern)
238 def first_name_male(self) -> str:
239 if hasattr(self, "first_names_male"):
240 return self.random_element(self.first_names_male) # type: ignore[attr-defined]
241 return self.first_name()
243 def first_name_nonbinary(self) -> str:
244 if hasattr(self, "first_names_nonbinary"):
245 return self.random_element(self.first_names_nonbinary) # type: ignore[attr-defined]
246 return self.first_name()
248 def first_name_female(self) -> str:
249 if hasattr(self, "first_names_female"):
250 return self.random_element(self.first_names_female) # type: ignore[attr-defined]
251 return self.first_name()
253 def last_name_male(self) -> str:
254 if hasattr(self, "last_names_male"):
255 return self.random_element(self.last_names_male) # type: ignore[attr-defined]
256 return self.last_name()
258 def last_name_nonbinary(self) -> str:
259 if hasattr(self, "last_names_nonbinary"):
260 return self.random_element(self.last_names_nonbinary) # type: ignore[attr-defined]
261 return self.last_name()
263 def last_name_female(self) -> str:
264 if hasattr(self, "last_names_female"):
265 return self.random_element(self.last_names_female) # type: ignore[attr-defined]
266 return self.last_name()
268 def prefix(self) -> str:
269 if hasattr(self, "prefixes"):
270 return self.random_element(self.prefixes) # type: ignore[attr-defined]
271 if hasattr(self, "prefixes_male") and hasattr(self, "prefixes_female") and hasattr(self, "prefixes_nonbinary"):
272 prefixes = add_ordereddicts(
273 self.prefixes_male, # type: ignore[attr-defined]
274 self.prefixes_female, # type: ignore[attr-defined]
275 self.prefixes_nonbinary, # type: ignore[attr-defined]
276 )
277 return self.random_element(prefixes)
278 if hasattr(self, "prefixes_male") and hasattr(self, "prefixes_female"):
279 prefixes = self.random_element((self.prefixes_male, self.prefixes_female)) # type: ignore[attr-defined]
280 return self.random_element(prefixes)
281 return ""
283 def prefix_male(self) -> str:
284 if hasattr(self, "prefixes_male"):
285 return self.random_element(self.prefixes_male) # type: ignore[attr-defined]
286 return self.prefix()
288 def prefix_nonbinary(self) -> str:
289 if hasattr(self, "prefixes_nonbinary"):
290 return self.random_element(self.prefixes_nonbinary) # type: ignore[attr-defined]
291 return self.prefix()
293 def prefix_female(self) -> str:
294 if hasattr(self, "prefixes_female"):
295 return self.random_element(self.prefixes_female) # type: ignore[attr-defined]
296 return self.prefix()
298 def suffix(self) -> str:
299 if hasattr(self, "suffixes"):
300 return self.random_element(self.suffixes) # type: ignore[attr-defined]
301 if hasattr(self, "suffixes_male") and hasattr(self, "suffixes_female") and hasattr(self, "suffixes_nonbinary"):
302 suffixes = add_ordereddicts(
303 self.suffixes_male, # type: ignore[attr-defined]
304 self.suffixes_female, # type: ignore[attr-defined]
305 self.suffixes_nonbinary, # type: ignore[attr-defined]
306 )
307 return self.random_element(suffixes)
308 if hasattr(self, "suffixes_male") and hasattr(self, "suffixes_female"):
309 suffixes = self.random_element((self.suffixes_male, self.suffixes_female)) # type: ignore[attr-defined]
310 return self.random_element(suffixes)
311 return ""
313 def suffix_male(self) -> str:
314 if hasattr(self, "suffixes_male"):
315 return self.random_element(self.suffixes_male) # type: ignore[attr-defined]
316 return self.suffix()
318 def suffix_nonbinary(self) -> str:
319 if hasattr(self, "suffixes_nonbinary"):
320 return self.random_element(self.suffixes_nonbinary) # type: ignore[attr-defined]
321 return self.suffix()
323 def suffix_female(self) -> str:
324 if hasattr(self, "suffixes_female"):
325 return self.random_element(self.suffixes_female) # type: ignore[attr-defined]
326 return self.suffix()
328 def language_name(self) -> str:
329 """Generate a random i18n language name (e.g. English)."""
330 return self.random_element(self.language_names)