Skip to content

Commit c641aba

Browse files
committed
Fix docstrings
1 parent 2b3679c commit c641aba

File tree

4 files changed

+54
-54
lines changed

4 files changed

+54
-54
lines changed

CHANGELOG.rst

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
Version 12.1.0
2+
--------------
3+
4+
- Methods ``gender_code()`` and ``gender_symbol()`` have been added for the ``Person`` provider.
5+
- The methods ``gender()`` and ``sex()`` no longer accept arguments like ``iso5218`` and ``symbol``. Please use ``gender_code()`` and ``gender_symbol()`` instead.
6+
- Added a stub for ``mimesis.providers.generic.py``, enabling type hints for ``Generic``.
7+
8+
19
Version 12.0.0
210
--------------
311

mimesis/data/int/person.py

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
"""Provides all the generic data related to the personal information."""
22

3-
43
BLOOD_GROUPS = (
54
"O+",
65
"A+",
@@ -12,11 +11,9 @@
1211
"AB−",
1312
)
1413

15-
GENDER_SYMBOLS = (
16-
"♂",
17-
"♀",
18-
"⚲",
19-
)
14+
GENDER_SYMBOLS = ("♂", "♀", "⚲")
15+
16+
GENDER_CODES = (0, 1, 2, 9)
2017

2118
USERNAMES = [
2219
"aaa",

mimesis/providers/person.py

+28-25
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
BLOOD_GROUPS,
1111
CALLING_CODES,
1212
EMAIL_DOMAINS,
13+
GENDER_CODES,
1314
GENDER_SYMBOLS,
1415
USERNAMES,
1516
)
@@ -79,7 +80,7 @@ def name(self, gender: Gender | None = None) -> str:
7980
def first_name(self, gender: Gender | None = None) -> str:
8081
"""Generates a random first name.
8182
82-
..note: An alias for self.name().
83+
..note: An alias for :meth:`~.name`.
8384
8485
:param gender: Gender's enum object.
8586
:return: First name.
@@ -107,7 +108,7 @@ def surname(self, gender: Gender | None = None) -> str:
107108
def last_name(self, gender: Gender | None = None) -> str:
108109
"""Generates a random last name.
109110
110-
..note: An alias for self.surname().
111+
..note: An alias for :meth:`~.surname`.
111112
112113
:param gender: Gender's enum object.
113114
:return: Last name.
@@ -269,42 +270,44 @@ def email(
269270

270271
return f"{name}{domain}"
271272

272-
def gender(self, iso5218: bool = False, symbol: bool = False) -> str | int:
273-
"""Generates a random gender.
273+
def gender_symbol(self) -> str:
274+
"""Generate a random sex symbol.
274275
275-
Get a random title of gender code for the representation
276+
:Example:
277+
278+
"""
279+
return self.random.choice(GENDER_SYMBOLS)
280+
281+
def gender_code(self) -> int:
282+
"""Generate a random ISO/IEC 5218 gender code.
283+
284+
Generate a random title of gender code for the representation
276285
of human sexes is an international standard that defines a
277286
representation of human sexes through a language-neutral single-digit
278287
code or symbol of gender.
279288
280-
:param iso5218:
281-
Codes for the representation of human sexes is an international
282-
standard (0 - not known, 1 - male, 2 - female, 9 - not applicable).
283-
:param symbol: Symbol of gender.
284-
:return: Title of gender.
289+
Codes for the representation of human sexes is an international
290+
standard (0 - not known, 1 - male, 2 - female, 9 - not applicable).
285291
286-
:Example:
287-
Male
292+
:return:
288293
"""
289-
if iso5218:
290-
return self.random.choice([0, 1, 2, 9])
294+
return self.random.choice(GENDER_CODES)
291295

292-
if symbol:
293-
return self.random.choice(GENDER_SYMBOLS)
296+
def gender(self) -> str:
297+
"""Generates a random gender title.
294298
299+
:Example:
300+
Male
301+
"""
295302
genders: list[str] = self._extract(["gender"])
296303
return self.random.choice(genders)
297304

298-
def sex(self, *args: t.Any, **kwargs: t.Any) -> str | int:
299-
"""An alias for method self.gender().
300-
301-
See docstrings of method self.gender() for details.
305+
def sex(self) -> str:
306+
"""An alias for method :meth:`~.gender`.
302307
303-
:param args: Positional arguments.
304-
:param kwargs: Keyword arguments.
305-
:return: Sex
308+
:return: Sex.
306309
"""
307-
return self.gender(*args, **kwargs)
310+
return self.gender()
308311

309312
def height(self, minimum: float = 1.5, maximum: float = 2.0) -> str:
310313
"""Generates a random height in meters.
@@ -455,7 +458,7 @@ def phone_number(self, mask: str = "", placeholder: str = "#") -> str:
455458
return self.random.generate_string_by_mask(mask=mask, digit=placeholder)
456459

457460
def telephone(self, *args: t.Any, **kwargs: t.Any) -> str:
458-
"""An alias for method self.phone_number()."""
461+
"""An alias for :meth:`~.phone_number`."""
459462
return self.phone_number(*args, **kwargs)
460463

461464
def identifier(self, mask: str = "##-##/##") -> str:

tests/test_providers/test_person.py

+15-23
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import pytest
44

55
from mimesis import Person, random
6-
from mimesis.data import BLOOD_GROUPS, GENDER_SYMBOLS
6+
from mimesis.data import BLOOD_GROUPS, GENDER_CODES, GENDER_SYMBOLS
77
from mimesis.enums import Gender, TitleType
88
from mimesis.exceptions import NonEnumerableError
99

@@ -250,32 +250,22 @@ def test_full_name(self, person, gender):
250250
with pytest.raises(NonEnumerableError):
251251
person.full_name(gender="nil")
252252

253+
def test_gender_code(self, _person):
254+
code = _person.gender_code()
255+
assert code in GENDER_CODES
256+
257+
def test_gender_symbol(self, _person):
258+
symbol = _person.gender_symbol()
259+
assert symbol in GENDER_SYMBOLS
260+
253261
def test_gender(self, person):
254262
result = person.gender()
255263
assert result in person._data["gender"]
256264

257-
result = person.gender(symbol=True)
258-
assert result in GENDER_SYMBOLS
259-
260-
# The four codes specified in ISO/IEC 5218 are:
261-
# 0 = not known, 1 = male, 2 = female, 9 = not applicable.
262-
codes = [0, 1, 2, 9]
263-
iso5218 = person.gender(iso5218=True)
264-
assert iso5218 in codes
265-
266265
def test_sex(self, person):
267266
result = person.sex()
268267
assert result in person._data["gender"]
269268

270-
result = person.gender(symbol=True)
271-
assert result in GENDER_SYMBOLS
272-
273-
# The four codes specified in ISO/IEC 5218 are:
274-
# 0 = not known, 1 = male, 2 = female, 9 = not applicable.
275-
codes = [0, 1, 2, 9]
276-
iso5218 = person.gender(iso5218=True)
277-
assert iso5218 in codes
278-
279269
def test_profession(self, person):
280270
result = person.occupation()
281271
assert result in person._data["occupation"]
@@ -420,15 +410,17 @@ def test_full_name(self, p1, p2):
420410
gender=Gender.FEMALE, reverse=True
421411
)
422412

413+
def test_gender_code(self, p1, p2):
414+
assert p1.gender_code() == p2.gender_code()
415+
416+
def test_gender_symbol(self, p1, p2):
417+
assert p1.gender_symbol() == p2.gender_symbol()
418+
423419
def test_gender(self, p1, p2):
424420
assert p1.gender() == p2.gender()
425-
assert p1.gender(iso5218=True, symbol=True) == p2.gender(
426-
iso5218=True, symbol=True
427-
)
428421

429422
def test_sex(self, p1, p2):
430423
assert p1.sex() == p2.sex()
431-
assert p1.sex(iso5218=True, symbol=True) == p2.sex(iso5218=True, symbol=True)
432424

433425
def test_occupation(self, p1, p2):
434426
assert p1.occupation() == p2.occupation()

0 commit comments

Comments
 (0)