Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-Faker for openSUSE:Factory checked in at 2022-12-08 16:50:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-Faker (Old) and /work/SRC/openSUSE:Factory/.python-Faker.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Faker" Thu Dec 8 16:50:49 2022 rev:35 rq:1041185 version:15.3.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python-Faker/python-Faker.changes 2022-12-02 15:47:32.000605199 +0100 +++ /work/SRC/openSUSE:Factory/.python-Faker.new.1835/python-Faker.changes 2022-12-08 16:51:13.859496951 +0100 @@ -1,0 +2,12 @@ +Wed Dec 7 14:05:18 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com> + +- Update to v15.3.4 - 2022-11-30 + * Fix it_IT SSN generation with latin chars in name or surname. Thanks @panicofr. + +- Update to v15.3.3 - 2022-11-22 + * Fix seeding with multiple locales. Thanks @johntmyers. + +- Update to v15.3.2 - 2022-11-14 + * Fix implicit Optional issues. Thanks @palfrey. + +------------------------------------------------------------------- Old: ---- Faker-15.3.1.tar.gz New: ---- Faker-15.3.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-Faker.spec ++++++ --- /var/tmp/diff_new_pack.naJ387/_old 2022-12-08 16:51:14.355499489 +0100 +++ /var/tmp/diff_new_pack.naJ387/_new 2022-12-08 16:51:14.359499510 +0100 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python3-%{**}} %global skip_python2 1 Name: python-Faker -Version: 15.3.1 +Version: 15.3.4 Release: 0 Summary: Python package that generates fake data License: MIT ++++++ Faker-15.3.1.tar.gz -> Faker-15.3.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/CHANGELOG.md new/Faker-15.3.4/CHANGELOG.md --- old/Faker-15.3.1/CHANGELOG.md 2022-11-07 19:23:29.000000000 +0100 +++ new/Faker-15.3.4/CHANGELOG.md 2022-11-30 20:12:04.000000000 +0100 @@ -1,5 +1,17 @@ ## Changelog +### [v15.3.4 - 2022-11-30](https://github.com/joke2k/faker/compare/v15.3.3...v15.3.4) + +* Fix `it_IT` `SSN` generation with latin chars in name or surname. Thanks @panicofr. + +### [v15.3.3 - 2022-11-22](https://github.com/joke2k/faker/compare/v15.3.2...v15.3.3) + +* Fix seeding with multiple locales. Thanks @johntmyers. + +### [v15.3.2 - 2022-11-14](https://github.com/joke2k/faker/compare/v15.3.1...v15.3.2) + +* Fix implicit Optional issues. Thanks @palfrey. + ### [v15.3.1 - 2022-11-07](https://github.com/joke2k/faker/compare/v15.3.0...v15.3.1) * Update the `word_list` for `pl_PL`. Thanks @BeRT2me. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/Faker.egg-info/PKG-INFO new/Faker-15.3.4/Faker.egg-info/PKG-INFO --- old/Faker-15.3.1/Faker.egg-info/PKG-INFO 2022-11-07 19:24:00.000000000 +0100 +++ new/Faker-15.3.4/Faker.egg-info/PKG-INFO 2022-11-30 20:12:33.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: Faker -Version: 15.3.1 +Version: 15.3.4 Summary: Faker is a Python package that generates fake data for you. Home-page: https://github.com/joke2k/faker Author: joke2k diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/PKG-INFO new/Faker-15.3.4/PKG-INFO --- old/Faker-15.3.1/PKG-INFO 2022-11-07 19:24:02.158607000 +0100 +++ new/Faker-15.3.4/PKG-INFO 2022-11-30 20:12:35.047217600 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: Faker -Version: 15.3.1 +Version: 15.3.4 Summary: Faker is a Python package that generates fake data for you. Home-page: https://github.com/joke2k/faker Author: joke2k diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/VERSION new/Faker-15.3.4/VERSION --- old/Faker-15.3.1/VERSION 2022-11-07 19:23:46.000000000 +0100 +++ new/Faker-15.3.4/VERSION 2022-11-30 20:12:18.000000000 +0100 @@ -1 +1 @@ -15.3.1 +15.3.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/__init__.py new/Faker-15.3.4/faker/__init__.py --- old/Faker-15.3.1/faker/__init__.py 2022-11-07 19:23:46.000000000 +0100 +++ new/Faker-15.3.4/faker/__init__.py 2022-11-30 20:12:18.000000000 +0100 @@ -2,6 +2,6 @@ from faker.generator import Generator from faker.proxy import Faker -VERSION = "15.3.1" +VERSION = "15.3.4" __all__ = ("Factory", "Generator", "Faker") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/factory.py new/Faker-15.3.4/faker/factory.py --- old/Faker-15.3.1/faker/factory.py 2022-03-07 17:46:40.000000000 +0100 +++ new/Faker-15.3.4/faker/factory.py 2022-11-14 16:56:33.000000000 +0100 @@ -25,7 +25,7 @@ cls, locale: Optional[str] = None, providers: Optional[List[str]] = None, - generator: Generator = None, + generator: Optional[Generator] = None, includes: Optional[List[str]] = None, # Should we use weightings (more realistic) or weight every element equally (faster)? # By default, use weightings for backwards compatibility & realism diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/providers/__init__.py new/Faker-15.3.4/faker/providers/__init__.py --- old/Faker-15.3.1/faker/providers/__init__.py 2022-11-04 16:59:35.000000000 +0100 +++ new/Faker-15.3.4/faker/providers/__init__.py 2022-11-14 16:56:33.000000000 +0100 @@ -22,7 +22,7 @@ class BaseProvider: __provider__ = "base" - __lang__ = None + __lang__: Optional[str] = None __use_weighting__ = False # Locales supported by Linux Mint from `/usr/share/i18n/SUPPORTED` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/providers/date_time/__init__.py new/Faker-15.3.4/faker/providers/date_time/__init__.py --- old/Faker-15.3.1/faker/providers/date_time/__init__.py 2022-11-04 16:59:35.000000000 +0100 +++ new/Faker-15.3.4/faker/providers/date_time/__init__.py 2022-11-14 16:56:33.000000000 +0100 @@ -1900,7 +1900,7 @@ """ return self.date_time(end_datetime=end_datetime).strftime(pattern) - def date_object(self, end_datetime: datetime = None) -> dtdate: + def date_object(self, end_datetime: Optional[datetime] = None) -> dtdate: """ Get a date object between January 1, 1970 and now :example: datetime.date(2016, 9, 20) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/providers/geo/el_GR/__init__.py new/Faker-15.3.4/faker/providers/geo/el_GR/__init__.py --- old/Faker-15.3.1/faker/providers/geo/el_GR/__init__.py 2022-02-14 18:03:11.000000000 +0100 +++ new/Faker-15.3.4/faker/providers/geo/el_GR/__init__.py 2022-11-30 20:10:46.000000000 +0100 @@ -17,13 +17,13 @@ return str(self.local_latitude()), str(self.local_longitude()) def local_latitude(self) -> Decimal: - latitudes = list(map(lambda t: int(Decimal(t[0]) * 10000000), self.poly)) + latitudes = [int(Decimal(t[0]) * 10000000) for t in self.poly] return Decimal(str(self.generator.random.randint(min(latitudes), max(latitudes)) / 10000000)).quantize( Decimal(".000001") ) def local_longitude(self) -> Decimal: - longitudes = list(map(lambda t: int(Decimal(t[1]) * 10000000), self.poly)) + longitudes = [int(Decimal(t[1]) * 10000000) for t in self.poly] return Decimal(str(self.generator.random.randint(min(longitudes), max(longitudes)) / 10000000)).quantize( Decimal(".000001") ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/providers/internet/__init__.py new/Faker-15.3.4/faker/providers/internet/__init__.py --- old/Faker-15.3.1/faker/providers/internet/__init__.py 2022-11-04 16:59:35.000000000 +0100 +++ new/Faker-15.3.4/faker/providers/internet/__init__.py 2022-11-30 20:10:46.000000000 +0100 @@ -592,7 +592,7 @@ def mac_address(self) -> str: mac = [self.generator.random.randint(0x00, 0xFF) for _ in range(0, 6)] - return ":".join(map(lambda x: "%02x" % x, mac)) + return ":".join("%02x" % x for x in mac) def port_number(self, is_system: bool = False, is_user: bool = False, is_dynamic: bool = False) -> int: """Returns a network port number diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/providers/internet/el_GR/__init__.py new/Faker-15.3.4/faker/providers/internet/el_GR/__init__.py --- old/Faker-15.3.1/faker/providers/internet/el_GR/__init__.py 2022-02-14 18:03:11.000000000 +0100 +++ new/Faker-15.3.4/faker/providers/internet/el_GR/__init__.py 2022-11-30 20:10:46.000000000 +0100 @@ -68,7 +68,7 @@ def replace_greek_character(match): matched = list(match.group(0)) - value = map(lambda l: replace[search.find(l)], matched) + value = (replace[search.find(char)] for char in matched) return "".join(value) return re.sub( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/providers/lorem/__init__.py new/Faker-15.3.4/faker/providers/lorem/__init__.py --- old/Faker-15.3.1/faker/providers/lorem/__init__.py 2022-05-09 16:03:42.000000000 +0200 +++ new/Faker-15.3.4/faker/providers/lorem/__init__.py 2022-11-14 16:56:33.000000000 +0100 @@ -26,7 +26,7 @@ def words( self, nb: int = 3, - part_of_speech: str = None, + part_of_speech: Optional[str] = None, ext_word_list: Optional[Sequence[str]] = None, unique: bool = False, ) -> List[str]: @@ -73,7 +73,7 @@ samples = cast(List[str], self.random_choices(word_list, length=nb)) return samples - def word(self, part_of_speech: str = None, ext_word_list: Optional[Sequence[str]] = None) -> str: + def word(self, part_of_speech: Optional[str] = None, ext_word_list: Optional[Sequence[str]] = None) -> str: """Generate a word. This method uses |words| under the hood with the ``nb`` argument set to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/providers/misc/__init__.py new/Faker-15.3.4/faker/providers/misc/__init__.py --- old/Faker-15.3.1/faker/providers/misc/__init__.py 2022-03-07 17:46:46.000000000 +0100 +++ new/Faker-15.3.4/faker/providers/misc/__init__.py 2022-11-22 19:56:52.000000000 +0100 @@ -70,9 +70,9 @@ return res.hexdigest() def sha1(self, raw_output: bool = False) -> Union[bytes, str]: - """Generate a random SHA1 hash. + """Generate a random SHA-1 hash. - If ``raw_output`` is ``False`` (default), a hexadecimal string representation of the SHA1 hash + If ``raw_output`` is ``False`` (default), a hexadecimal string representation of the SHA-1 hash will be returned. If ``True``, a ``bytes`` object representation will be returned instead. :sample: raw_output=False @@ -84,9 +84,9 @@ return res.hexdigest() def sha256(self, raw_output: bool = False) -> Union[bytes, str]: - """Generate a random SHA256 hash. + """Generate a random SHA-256 hash. - If ``raw_output`` is ``False`` (default), a hexadecimal string representation of the SHA56 hash + If ``raw_output`` is ``False`` (default), a hexadecimal string representation of the SHA-256 hash will be returned. If ``True``, a ``bytes`` object representation will be returned instead. :sample: raw_output=False @@ -488,7 +488,7 @@ delimiter="|", ) - def json(self, data_columns: List = None, num_rows: int = 10, indent: int = None) -> str: + def json(self, data_columns: Optional[List] = None, num_rows: int = 10, indent: Optional[int] = None) -> str: """ Generate random JSON structure values. @@ -590,7 +590,7 @@ data = [create_json_structure(data_columns) for _ in range(num_rows)] return json.dumps(data, indent=indent) - def fixed_width(self, data_columns: list = None, num_rows: int = 10, align: str = "left") -> str: + def fixed_width(self, data_columns: Optional[list] = None, num_rows: int = 10, align: str = "left") -> str: """ Generate random fixed width values. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/providers/ssn/it_IT/__init__.py new/Faker-15.3.4/faker/providers/ssn/it_IT/__init__.py --- old/Faker-15.3.1/faker/providers/ssn/it_IT/__init__.py 2022-05-09 16:07:11.000000000 +0200 +++ new/Faker-15.3.4/faker/providers/ssn/it_IT/__init__.py 2022-11-30 20:10:46.000000000 +0100 @@ -1,5 +1,7 @@ """it_IT ssn provider (yields italian fiscal codes)""" +import unicodedata + from string import ascii_uppercase, digits from .. import Provider as SsnProvider @@ -8051,6 +8053,8 @@ else: name = self.generator.first_name_female().upper() + name = self._transliterate_name(name) + if len(name) < 3: return self._pad_shorter(name) @@ -8074,6 +8078,8 @@ str """ surname = self.generator.last_name().upper() + surname = self._transliterate_name(surname) + if len(surname) < 3: return self._pad_shorter(surname) @@ -8087,6 +8093,11 @@ return surname_part @staticmethod + def _transliterate_name(name: str) -> str: + nfkd_form: str = unicodedata.normalize("NFKD", name) + return "".join([c for c in nfkd_form if unicodedata.combining(c) == 0]) + + @staticmethod def _get_vowels(sequence: str) -> list: """ Returns list of vowels in provided string diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/faker/proxy.py new/Faker-15.3.4/faker/proxy.py --- old/Faker-15.3.1/faker/proxy.py 2022-05-06 16:26:13.000000000 +0200 +++ new/Faker-15.3.4/faker/proxy.py 2022-11-22 19:56:52.000000000 +0100 @@ -9,7 +9,7 @@ from .config import DEFAULT_LOCALE from .exceptions import UniquenessException from .factory import Factory -from .generator import Generator, Sentinel, random +from .generator import Generator, random from .typing import SeedType from .utils.distribution import choices_distribution @@ -153,8 +153,6 @@ elif len(factories) == 1: return factories[0] - if Generator._global_seed is not Sentinel: - random.seed(Generator._global_seed) # type: ignore if weights: factory = self._select_factory_distribution(factories, weights) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/mypy.ini new/Faker-15.3.4/mypy.ini --- old/Faker-15.3.1/mypy.ini 2022-02-14 18:03:11.000000000 +0100 +++ new/Faker-15.3.4/mypy.ini 2022-11-14 16:56:33.000000000 +0100 @@ -8,4 +8,5 @@ pretty = True follow_imports=silent ignore_missing_imports = True -show_error_codes = True \ No newline at end of file +show_error_codes = True +show_column_numbers = True \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/tests/providers/test_person.py new/Faker-15.3.4/tests/providers/test_person.py --- old/Faker-15.3.1/tests/providers/test_person.py 2022-10-24 20:37:32.000000000 +0200 +++ new/Faker-15.3.4/tests/providers/test_person.py 2022-11-30 20:10:46.000000000 +0100 @@ -211,22 +211,22 @@ first_name_pair = self.fake.first_name_pair() assert first_name_pair assert len(first_name_pair) == 3 - assert all(map(lambda s: isinstance(s, str), first_name_pair)) + assert all(isinstance(s, str) for s in first_name_pair) first_name_male_pair = self.fake.first_name_male_pair() assert first_name_male_pair assert len(first_name_male_pair) == 3 - assert all(map(lambda s: isinstance(s, str), first_name_male_pair)) + assert all(isinstance(s, str) for s in first_name_male_pair) first_name_female_pair = self.fake.first_name_female_pair() assert first_name_female_pair assert len(first_name_female_pair) == 3 - assert all(map(lambda s: isinstance(s, str), first_name_female_pair)) + assert all(isinstance(s, str) for s in first_name_female_pair) last_name_pair = self.fake.last_name_pair() assert last_name_pair assert len(last_name_pair) == 3 - assert all(map(lambda s: isinstance(s, str), last_name_pair)) + assert all(isinstance(s, str) for s in last_name_pair) class TestNeNP(unittest.TestCase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/tests/providers/test_ssn.py new/Faker-15.3.4/tests/providers/test_ssn.py --- old/Faker-15.3.1/tests/providers/test_ssn.py 2022-11-04 15:32:09.000000000 +0100 +++ new/Faker-15.3.4/tests/providers/test_ssn.py 2022-11-30 20:10:46.000000000 +0100 @@ -14,7 +14,7 @@ from validators.i18n.es import es_nie as is_nie from validators.i18n.es import es_nif as is_nif -from faker import Faker +from faker import Factory, Faker from faker.providers.ssn.el_GR import tin_checksum as gr_tin_checksum from faker.providers.ssn.en_CA import checksum as ca_checksum from faker.providers.ssn.es_CL import rut_check_digit as cl_rut_checksum @@ -904,6 +904,13 @@ def test_checksum(self) -> None: assert it_checksum("MDDMRA80L41H501") == "R" + def test_ssn_with_latin_chars(self): + generator = Factory.create("it_IT") + generator.last_name = mock.MagicMock(return_value="Foà ") + ssn = generator.ssn() + self.assertEqual(len(ssn), 16) + self.assertEqual(ssn[:3], "FOA") + class TestPtBR(unittest.TestCase): def setUp(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Faker-15.3.1/tests/test_proxy.py new/Faker-15.3.4/tests/test_proxy.py --- old/Faker-15.3.1/tests/test_proxy.py 2022-03-23 19:57:42.000000000 +0100 +++ new/Faker-15.3.4/tests/test_proxy.py 2022-11-22 19:56:52.000000000 +0100 @@ -130,11 +130,18 @@ def test_seed_class_locales(self): Faker.seed(2043) + count = 5 fake = Faker(["en_GB", "fr_FR", "en_IN"]) - name = fake.name() + first_list = [fake.name() for _ in range(count)] + # We convert the list to a set to remove duplicates and ensure + # that we have exactly `count` unique fake values + assert len(set(first_list)) == count - for _ in range(5): - assert fake.name() == name + Faker.seed(2043) + fake = Faker(["en_GB", "fr_FR", "en_IN"]) + second_list = [fake.name() for _ in range(count)] + + assert first_list == second_list def test_seed_instance(self): locale = ["de_DE", "en-US", "en-PH", "ja_JP"]