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

1from faker.utils.datasets import add_ordereddicts 

2 

3from .. import BaseProvider, ElementsType 

4 

5localized = True 

6 

7 

8class Provider(BaseProvider): 

9 formats: ElementsType[str] = ["{{first_name}} {{last_name}}"] 

10 

11 first_names: ElementsType[str] = ["John", "Jane"] 

12 

13 last_names: ElementsType[str] = ["Doe"] 

14 

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 ] 

200 

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) 

207 

208 def first_name(self) -> str: 

209 return self.random_element(self.first_names) 

210 

211 def last_name(self) -> str: 

212 return self.random_element(self.last_names) 

213 

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) 

221 

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) 

229 

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) 

237 

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() 

242 

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() 

247 

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() 

252 

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() 

257 

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() 

262 

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() 

267 

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 "" 

282 

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() 

287 

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() 

292 

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() 

297 

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 "" 

312 

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() 

317 

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() 

322 

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() 

327 

328 def language_name(self) -> str: 

329 """Generate a random i18n language name (e.g. English).""" 

330 return self.random_element(self.language_names)