Repository: joke2k/faker
Pull request #2023 (2024-04-12 06:38:01)

Add Job for cs_CZ
Add Job for cs_CZ (include tests).

george0st: I see issue in CI/CD

Patch:
diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index e0339585..1bb1bbce 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 24.8.0
+current_version = 24.13.0
 files = VERSION faker/__init__.py docs/conf.py
 commit = True
 tag = True
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c0e8d922..2a9dc688 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,26 @@
 ## Changelog
 
+### [v24.13.0 - 2024-04-25](https://github.com/joke2k/faker/compare/v24.12.0...v24.13.0)
+
+*  Add geo provider for `sk_SK`. Thanks @george0st.
+* Clean up data in `sk_SK` job provider. Thanks @george0st.
+
+### [v24.12.0 - 2024-04-25](https://github.com/joke2k/faker/compare/v24.11.0...v24.12.0)
+
+* Remove offensive word from `pl_PL` lorem provider. Thanks @Rey092.
+
+### [v24.11.0 - 2024-04-17](https://github.com/joke2k/faker/compare/v24.10.0...v24.11.0)
+
+* Tune `cs_CZ` phone number validation. Thanks @george0st.
+
+### [v24.10.0 - 2024-04-17](https://github.com/joke2k/faker/compare/v24.9.0...v24.10.0)
+
+* Update list of `first_name_*` and `last_name` in `pt_BR` `PersonProvider`. Thanks @dclobato.
+
+### [v24.9.0 - 2024-04-12](https://github.com/joke2k/faker/compare/v24.8.0...v24.9.0)
+
+* Update `uk_UA` phone provider. Thanks @lozik4.
+
 ### [v24.8.0 - 2024-04-09](https://github.com/joke2k/faker/compare/v24.7.1...v24.8.0)
 
 * Fix wrong pricetag format in `ru_RU` locale. Thanks @Pandede.
diff --git a/VERSION b/VERSION
index b4040276..3fe3b157 100644
--- a/VERSION
+++ b/VERSION
@@ -1,1 +1,1 @@
-24.8.0
+24.13.0
diff --git a/docs/conf.py b/docs/conf.py
index c462179e..24b9d5aa 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -51,9 +51,9 @@ copyright = "2014-{0}, Daniele Faraglia".format(datetime.now().year)
 # built documents.
 #
 # The short X.Y version.
-version = "24.8.0"
+version = "24.13.0"
 # The full version, including alpha/beta/rc tags.
-release = "24.8.0"
+release = "24.13.0"
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/faker/__init__.py b/faker/__init__.py
index f3a602e5..6f5532c0 100644
--- a/faker/__init__.py
+++ b/faker/__init__.py
@@ -2,6 +2,6 @@ from faker.factory import Factory
 from faker.generator import Generator
 from faker.proxy import Faker
 
-VERSION = "24.8.0"
+VERSION = "24.13.0"
 
 __all__ = ("Factory", "Generator", "Faker")
diff --git a/faker/providers/geo/sk_SK/__init__.py b/faker/providers/geo/sk_SK/__init__.py
new file mode 100644
index 00000000..0a104c87
--- /dev/null
+++ b/faker/providers/geo/sk_SK/__init__.py
@@ -0,0 +1,62 @@
+from .. import Provider as GeoProvider
+
+
+class Provider(GeoProvider):
+    # Source:
+    #   https://latitude.to/map/sk/slovakia/cities/
+    land_coords = (
+        ("48.14816", "17.10674", "Bratislava", "SK", "Europe/Bratislava"),
+        ("48.71395", "21.25808", "Košice", "SK", "Europe/Košice"),
+        ("48.99839", "21.23393", "Prešov", "SK", "Europe/Prešov"),
+        ("48.30763", "18.08453", "Nitra", "SK", "Europe/Nitra"),
+        ("49.22315", "18.73941", "Žilina", "SK", "Europe/Žilina"),
+        ("48.73946", "19.15349", "Banská Bystrica", "SK", "Europe/Banská Bystrica"),
+        ("48.37741", "17.58723", "Trnava", "SK", "Europe/Trnava"),
+        ("49.06651", "18.92399", "Martin", "SK", "Europe/Martin"),
+        ("48.89452", "18.04436", "Trenčín", "SK", "Europe/Trenčín"),
+        ("49.06144", "20.29798", "Poprad", "SK", "Europe/Poprad"),
+        ("48.77446", "18.6275", "Prievidza", "SK", "Europe/Prievidza"),
+        ("48.57442", "19.15324", "Zvolen", "SK", "Europe/Zvolen"),
+        ("49.12153", "18.42169", "Považská Bystrica", "SK", "Europe/Považská Bystrica"),
+        ("47.98544", "18.16195", "Nové Zámky", "SK", "Europe/Nové Zámky"),
+        ("48.75434", "21.9195", "Michalovce", "SK", "Europe/Michalovce"),
+        ("48.94464", "20.56153", "Spišská Nová Ves", "SK", "Europe/Spišská Nová Ves"),
+        ("48.21563", "18.60705", "Levice", "SK", "Europe/Levice"),
+        ("47.76356", "18.12263", "Komárno", "SK", "Europe/Komárno"),
+        ("48.93707", "21.91625", "Humenné", "SK", "Europe/Humenné"),
+        ("49.08061", "19.62218", "Liptovský Mikuláš", "SK", "Europe/Liptovský Mikuláš"),
+        ("49.29175", "21.27271", "Bardejov", "SK", "Europe/Bardejov"),
+        ("49.0748", "19.30751", "Ružomberok", "SK", "Europe/Ružomberok"),
+        ("48.59479", "17.82591", "Piešťany", "SK", "Europe/Piešťany"),
+        ("48.33249", "19.66708", "Lučenec", "SK", "Europe/Lučenec"),
+        ("48.95981", "18.16634", "Dubnica nad Váhom", "SK", "Europe/Dubnica nad Váhom"),
+        ("48.38284", "20.02239", "Rimavská Sobota", "SK", "Europe/Rimavská Sobota"),
+        ("49.43503", "18.78895", "Čadca", "SK", "Europe/Čadca"),
+        ("48.15127", "17.88062", "Šaľa", "SK", "Europe/Šaľa"),
+        ("48.62861", "18.38455", "Partizánske", "SK", "Europe/Partizánske"),
+        ("48.43174", "17.8031", "Hlohovec", "SK", "Europe/Hlohovec"),
+        ("47.99268", "17.61211", "Dunajská Streda", "SK", "Europe/Dunajská Streda"),
+        ("48.88836", "21.68479", "Vranov nad Topľou", "SK", "Europe/Vranov nad Topľou"),
+        ("48.62858", "21.71954", "Trebišov", "SK", "Europe/Trebišov"),
+        ("48.98857", "22.15099", "Snina", "SK", "Europe/Snina"),
+        ("48.67922", "17.36697", "Senica", "SK", "Europe/Senica"),
+        ("48.75763", "17.8309", "Nové Mesto nad Váhom", "SK", "Europe/Nové Mesto nad Váhom"),
+        ("49.13571", "20.43352", "Kežmarok", "SK", "Europe/Kežmarok"),
+        ("48.28986", "17.26664", "Pezinok", "SK", "Europe/Pezinok"),
+        ("48.80431", "19.63631", "Brezno", "SK", "Europe/Brezno"),
+        ("49.20983", "19.30341", "Dolný Kubín", "SK", "Europe/Dolný Kubín"),
+        ("48.59184", "18.84958", "Žiar nad Hronom", "SK", "Europe/Žiar nad Hronom"),
+        ("48.66009", "20.53758", "Rožňava", "SK", "Europe/Rožňava"),
+        ("48.7213", "18.25754", "Bánovce nad Bebravou", "SK", "Europe/Bánovce nad Bebravou"),
+        ("49.12494", "18.32597", "Púchov", "SK", "Europe/Púchov"),
+        ("48.7276", "18.76012", "Handlová", "SK", "Europe/Handlová"),
+        ("48.43604", "17.02188", "Malacky", "SK", "Europe/Malacky"),
+        ("49.3", "18.78333", "Kysucké Nové Mesto", "SK", "Europe/Kysucké Nové Mesto"),
+        ("48.19001", "17.72747", "Galanta", "SK", "Europe/Galanta"),
+        ("49.29859", "20.6862", "Stará Ľubovňa", "SK", "Europe/Stará Ľubovňa"),
+        ("48.38553", "18.40063", "Zlaté Moravce", "SK", "Europe/Zlaté Moravce"),
+        ("48.56082", "19.41954", "Detva", "SK", "Europe/Detva"),
+        ("48.8449", "17.22635", "Skalica", "SK", "Europe/Skalica"),
+        ("48.21951", "17.40043", "Senec", "SK", "Europe/Senec"),
+        ("49.02173", "20.59212", "Levoča", "SK", "Europe/Levoča"),
+    )
diff --git a/faker/providers/job/cs_CZ/__init__.py b/faker/providers/job/cs_CZ/__init__.py
new file mode 100644
index 00000000..e874a723
--- /dev/null
+++ b/faker/providers/job/cs_CZ/__init__.py
@@ -0,0 +1,487 @@
+from .. import Provider as JobProvider
+
+
+class Provider(JobProvider):
+    """Translated from Super class"""
+
+    jobs = (
+        "Administrátor, umění",
+        "Administrátor, státní služba",
+        "Advokát",
+        "Advokát pro ochranné známky",
+        "Akademický knihovník",
+        "Akupunkturista",
+        "Analytický chemik",
+        "Analytik finančního rizika",
+        "Angličtina jako lektorka cizího jazyka",
+        "Angličtina jako učitel druhého jazyka",
+        "Animátor",
+        "Arborista",
+        "Archeológ",
+        "Architekt",
+        "Architektonický technológ",
+        "Archivář",
+        "Arteterapeut",
+        "Asistent politika",
+        "Astronóm",
+        "Audiologický vědec",
+        "Automobilový inženýr",
+        "Autorizovaný likvidátor ztrát",
+        "Autorizovaný účetní",
+        "Autorizovaný účetní v oblasti veřejných financí",
+        "Bankéř",
+        "Báňský inženýr",
+        "Barista",
+        "Biochemik, klinický",
+        "Biomedicínsky inženýr",
+        "Biomedicínsky vědec",
+        "Bylinkář",
+        "Bytový manažér / referent",
+        "Charitatívní úředník",
+        "Chemický inženýr",
+        "Chemik, analytický",
+        "Chiropraktik",
+        "Chirurg",
+        "Copywriter, reklama",
+        "Cytogenetik",
+        "Daňový poradce",
+        "Dětská sestra",
+        "Dětský psychoterapeut",
+        "Diagnostický rádiograf",
+        "Dietológ",
+        "Dyzajnér, foukané sklo / vitráž",
+        "Dyzajnér, grafik",
+        "Dyzajnér, interiér / protor",
+        "Dyzajnér, keramika / hrčířství",
+        "Dyzajnér, multimédiá",
+        "Dyzajnér, móda / oblečení",
+        "Dyzajnér, nábytek",
+        "Dyzajnér, průmyslový / produkt",
+        "Dyzajnér, televíize / film",
+        "Dyzajnér, textil",
+        "Dyzajnér, výstava / výstava",
+        "Dyzajnér, šperky",
+        "Docent",
+        "Dodávateľ",
+        "Dospělý poradentský pracovník",
+        "Dozorce",
+        "Dramatický terapeut",
+        "Důstojník obchodního námořníctví",
+        "Důstojník pro ochranu přírody",
+        "Důstojník pro výcvik a vzdělávní ozbrojených síl",
+        "Editor funkcie časopisu",
+        "Ekológ",
+        "Ekonom",
+        "Elektroinženýr",
+        "Embryológ, klinický",
+        "Energetický inženýr",
+        "Energetický manažér",
+        "Environmentálny manažér",
+        "Ergonóm",
+        "Barevný technológ",
+        "Farmaceut Spoločenstva",
+        "Farmakológ",
+        "Filmový / video editor",
+        "Finanční kontrolor",
+        "Finanční manažér",
+        "Finanční obchodník",
+        "Finanční plánovač",
+        "Finanční poradce",
+        "Finanční ředitel",
+        "Firemní sekretářka",
+        "Fotograf",
+        "Fytoterapeut",
+        "Fyzik zdraví",
+        "Fyzik, lékař",
+        "Fyziologický vědec",
+        "Fyziológ cvičení",
+        "Fyzioterapeut",
+        "Foukač akla / dyzajnér",
+        "Genetik, molekulárny",
+        "Geochemik",
+        "Geodet minerálu",
+        "Geodet pojištění rizika",
+        "Geofyzik / terénní seismológ",
+        "Geológ, strojař",
+        "Geológ",
+        "Geovedec",
+        "Grafický dyzajnér",
+        "Grafik",
+        "Hasič",
+        "Hematológ",
+        "Herec",
+        "Herpetológ",
+        "Hlavní marketingový ředitel",
+        "Homeopat",
+        "Hotelový manažér",
+        "Hudebník",
+        "Hudební lektor",
+        "Hudební terapeut",
+        "Hutník",
+        "Hydrogeológ",
+        "Hydrografický geodet",
+        "Hydrológ",
+        "Hygienik práce",
+        "IT konzultant",
+        "Ilustrátor",
+        "Imunológ",
+        "Informační úředník",
+        "Investiční analytik",
+        "Investiční bankář, funkční",
+        "Investiční bankář, podnikový",
+        "Inspektor / hodnotitel reklamací",
+        "Inspektor historických budov / referent památkové ochrany",
+        "Inspektor plánovaní a rozvoje",
+        "Inspektor zdraví a bezpečnosti",
+        "Inženýr budov",
+        "Inženýr elektroniky",
+        "Inženyr kontroly a přístrojového vybavení",
+        "Inženýr zemědělství",
+        "Inženýr pro automobilový průmysl",
+        "Inženýr výrobních systémovů",
+        "Inženýr, bankovnictví",
+        "Inženýr, biomedicíny",
+        "Inženýr, chemický",
+        "Inženýr, elektronika",
+        "Inženýr, elektrotechnik",
+        "Inženýr, energie",
+        "Inženýr, komunikace",
+        "Inženýr, letecký",
+        "Inženýr, materiály",
+        "Inženýr, pozemky",
+        "Inženýr, zemědělství",
+        "Inženýr, řízení a přístrojové vybavení",
+        "Inženýr, ropa",
+        "Inženýr, statik",
+        "Inženýr, stavební služby",
+        "Inženýr, stavební (smluvní)",
+        "Inženýr, stavební inženier (poradenství)",
+        "Inženýr, technický prodej",
+        "Inženýr, voda",
+        "Inženýr, vysílání (provoz)",
+        "Inženýr, výroba",
+        "Inženýr, výroba",
+        "Inženýr, výrobní systémy",
+        "Inženýr, vrtaní",
+        "Inženýr, web",
+        "Inženýr, údržba",
+        "Inženýr, údržba (IT)",
+        "Inženýrský geológ",
+        "Kameraman",
+        "Kariérní informační úředník",
+        "Kariérní poradce",
+        "Kariérní poradce pro vysokoškolské vzdělání",
+        "Kartograf",
+        "Klinický biochemik",
+        "Klinický cytogenetik",
+        "Klinický embryológ",
+        "Klinický molekulárny genetik",
+        "Klinický psychológ",
+        "Klinický vědec, histokompatibilita a imunogenetika",
+        "Knihovník",
+        "Knihovník, veřejný",
+        "Kníhkupec",
+        "Komerční / rezidenční geodet",
+        "Komerční záhradník",
+        "Komunikační inženýr",
+        "Komunitní umělecký pracovník",
+        "Jednatel spoločnosti",
+        "Kontrolór",
+        "Konzervátor / restauratér nábytku",
+        "Konzervátor muzea / galérie",
+        "Konzervátor, muzeum / galéria",
+        "Konzervátor, nábytku",
+        "Konzultant pro důchody",
+        "Konzultace se stavebním inženýrem",
+        "Koordinátor dobrovolnictví",
+        "Kupující, maloobchod",
+        "Kurátor",
+        "Kurátor muzea / galérie",
+        "Lektor dalšího vzdělávání",
+        "Lektor, vysokoškolské vzdělání",
+        "Lektor, další vzdělání",
+        "Lékař všeobecného lekařství",
+        "Lékař, nemocnice",
+        "Lékař, všeobecná praxe",
+        "Lékárnik, komunita",
+        "Lékárnik, nemocnice",
+        "Lékářsky fyzik",
+        "Lékářsky ilustrátor",
+        "Lékářsky obchodní zástupca",
+        "Lékářsky sekretář",
+        "Lékářsky technický pracovník",
+        "Letecký dispečer",
+        "Letecký inženýr",
+        "Letecký sprostředkovateľ",
+        "Lexikograf",
+        "Licencovaný dopravce",
+        "Lobista",
+        "Logistika / podpora / administratívní důstojník ozbrojených síl",
+        "Manažér call centra",
+        "Manažér cestovní kanceláře",
+        "Manažér divadelní scény",
+        "Manažér farmy",
+        "Manažér fitnescentra",
+        "Manažér informačných systému",
+        "Manažér komerční umělecké galérie",
+        "Manažér logistiky a distribuce",
+        "Manažér stravování",
+        "Manažér umělecké galérie",
+        "Manažér zařízení",
+        "Manažér zábavného parku",
+        "Manžérsky konzultant",
+        "Marketingový manažér",
+        "Materiálový inženýr",
+        "Mediální plánovač",
+        "Meteorológ",
+        "Mikrobiológ",
+        "Moderátor, vysílání",
+        "Mořský vědec",
+        "Multimediální programy",
+        "Módní návrhář",
+        "Nemocniční lékař",
+        "Nemocniční lekárniík",
+        "Neurochirurg",
+        "Novinář novín",
+        "Novinář časopisu",
+        "Novinář, noviny",
+        "Novinář, vysílání",
+        "Novinář, časopis",
+        "Nákupčí médií",
+        "Nákupčí, průmyslu",
+        "Námořní architekt",
+        "Návrhář interiérů a prostor",
+        "Návrhář nábytku",
+        "Návrhář výstavy",
+        "Návrhář šperkov",
+        "Návrhářka keramiky",
+        "Obchodník s akciemi",
+        "Obchodník s dluhopisy",
+        "Obchodník s futures",
+        "Oceánograf",
+        "Ochranář, historické budovy",
+        "Odborník na životní prostředí",
+        "Oděvní / textilní technológ",
+        "Onkológ",
+        "Operatívní výzkumník",
+        "Operační důstojních diplomatických služeb",
+        "Operačn důstojník ozbrojených síl",
+        "Optik, výdej",
+        "Optometrista",
+        "Ortoptista",
+        "Osobní asistent",
+        "Osteopat",
+        "Oční lékař",
+        "Palubní průvodce",
+        "Patent attorney",
+        "Patológ",
+        "Pedagogický psychológ",
+        "Pedikér",
+        "Personalista",
+        "Pilot letecké společnosti",
+        "Plánovač dopravy",
+        "Plánovač reklamního účtu",
+        "Plánovač tisku",
+        "Podnikový investiční bankéř",
+        "Podnikový pokladník",
+        "Pojistný matematik",
+        "Pojišťovací makléř",
+        "Pojišťovák",
+        "Police officer",
+        "Poradce pro zdraví a bezpečnosť",
+        "Poradce pro životní prostředí",
+        "Poradenský pracovník",
+        "Poradenský psychológ",
+        "Potravinářsky technológ",
+        "Zemědělský konzultant",
+        "Pracovník medzinárodní pomoci / rozvoje",
+        "Pracovník pomoci",
+        "Pracovník rozvoje komunity",
+        "Pracovník s mládeží",
+        "Pracovní psychológ",
+        "Pracovní terapeut",
+        "Predejce",
+        "Překladateľ",
+        "Prevozovatel televizní kamery",
+        "Provozní geológ",
+        "Provozní investiční bankéř",
+        "Provozní ředitel",
+        "Průmyslový / produktový dizajnér",
+        "Průmyslový kupující",
+        "Průzkumník trhu",
+        "Probační úředník",
+        "Producent, rádio",
+        "Producent, televize / film / video",
+        "Production assistant, radio",
+        "Production assistant, televize",
+        "Production designer, theatre/television/film",
+        "Production engineer",
+        "Production manager",
+        "Produktový dizajnér",
+        "Produktový manažér",
+        "Professor Emeritus",
+        "Programátor, applikací",
+        "Programátor, multimedia",
+        "Programátor, systems",
+        "Korektor",
+        "Právnik",
+        "Právní tajemník",
+        "Psychiatrická sestra",
+        "Psychitr",
+        "Psycholog, klinický",
+        "Psycholog, poradenství",
+        "Psycholog, vzdělání",
+        "Psycholog, forézní",
+        "Psycholog, pracovní",
+        "Psycholog, vězeňské a probační služby",
+        "Psycholog, sport a cvičení",
+        "Psychoterapeut tanečního pohybu",
+        "Psychoterapeut",
+        "Porodní asistentka",
+        "Manažér kvality",
+        "Poradce",
+        "Realitní makléř",
+        "Redaktor, uvedení do provozu",
+        "Redakční asistent",
+        "Referent cestovního ruchu",
+        "Referent environmentální výchovy",
+        "Referent geografických informačných systému",
+        "Referent komunitního vzdělávání",
+        "Referent múzejního vzdělávání",
+        "Referent obchodních norem",
+        "Referent ochrany přírody",
+        "Referent odborné přípravy a rozvoje",
+        "Referent odborového výzkumu",
+        "Referent zemědělských pokusu",
+        "Referent pro nouzové plánování / řízení",
+        "Referent pro výstavy v muzeich / galeriich",
+        "Referent rozvoje umění",
+        "Referent technické podpory IT",
+        "Referent výstavy, muzeum / galérii",
+        "Referent lidských zdrojů",
+        "Školní referent, komunita",
+        "Školení referent, muzeum",
+        "Regulátor ztrát, objednaný",
+        "Reklamní textař",
+        "Reklamní umělecký ředitel",
+        "Ředitel pro stretegii",
+        "Ropný inženýr",
+        "Rozvojový pracovník, komunita",
+        "Rozvojový pracovník, mezinárodní pomoc",
+        "Sanitka",
+        "Sestra pro dospělé",
+        "Sestra pro duševní zdraví",
+        "Sestra s poruchami učení",
+        "Sestra, dětská",
+        "Sestra, dospělý",
+        "Sestra, porucha učení",
+        "Sietový inženýr",
+        "Spisovateľ",
+        "Spolupracovník pro klinický výzkum",
+        "Spracovatel geofyzikálnych údajů",
+        "Spravodajský analytik",
+        "Správce",
+        "Správce databázy",
+        "Správce dědictví",
+        "Správce duchodového systému",
+        "Správce lesů",
+        "Správce nemovitostí / pozemkový agent",
+        "Správce pojisných účtu",
+        "Správce polohy",
+        "Správce zpracovaní údajů",
+        "Správce umění",
+        "Správce zákazníckého centra",
+        "Správce školní",
+        "Správce státní služby",
+        "Správce, charitatívní / dobrovolnické organizáce",
+        "Správce, místní samospráva",
+        "Správce, vzdělávání",
+        "Správce, sport",
+        "Stavební geodet",
+        "Stavební inženýr, poradenství",
+        "Stavební inženýr, uzavírání smluv",
+        "Střihač, film / video",
+        "Strojní inženýr",
+        "Strážce",
+        "Osvětlovací technik, vysílání / film / video",
+        "Soudce psychológ",
+        "Soudní vědec",
+        "Soukromý učitel hudby",
+        "Tanečnice",
+        "Technický důstojník ozbrojených síl",
+        "Technik údržby",
+        "Technológ pro zvířata",
+        "Technológ vaření piva",
+        "Terapeut, drama",
+        "Terapeut, hudba",
+        "Terapeut, záhradnícký",
+        "Terapeut, sport",
+        "Terénní seismológ",
+        "Tlumočník",
+        "Toxikológ",
+        "Umělec",
+        "Učicí se mentor",
+        "Učitel, angličtina jako cizí jazyk",
+        "Učitel, hudba",
+        "Učitel, vzdělání dospělých",
+        "Učitel, základní škola",
+        "Učitel na základní škole",
+        "Vědec pro kvalitu vody",
+        "Vědec vývoj produktů / procesů",
+        "Vědecký pracovník lékařské laboratoře",
+        "Vedoucí kanceláře",
+        "Vedoucí konferenčního centra",
+        "Vedoucí osobní dopravy",
+        "Vedoucí outdoorových aktivít / vzdělávání",
+        "Vedoucí reklamního účtu",
+        "Vedoucí restaurace rychlého občerstvení",
+        "Vedoucí rybí farmy",
+        "Vedoucí skladu",
+        "Vedoucí střediska volného času",
+        "Vedoucí turistického informačného centra",
+        "Vedoucí ubytování",
+        "Vedoucí zdravotní služby",
+        "Vedoucí úseku",
+        "Veterinární chirurg",
+        "Video editor",
+        "Vizuální obchodník",
+        "Vládní úředník pro sociální výzkum",
+        "Vodní inženýr",
+        "Vrtný inženýr",
+        "Zprostředkovatel pojistných událostí",
+        "Vysokoškolský lektor",
+        "Výkonný ředitel",
+        "Výkonný technický ředitel",
+        "Výrobní inženýr",
+        "Výtvarný umělec",
+        "Vývojář aplikací",
+        "Vývojář her",
+        "Vývojář počítačových her",
+        "Vývojář systémů",
+        "Výživový poradca pro zvířata",
+        "Výživový terapeut",
+        "Web designer",
+        "Zaměstnanec imigračního úřadu",
+        "Zdravotní sestra, duševní zdraví",
+        "Zeměměřič / geomatik",
+        "Zmluvní stavební inženýr",
+        "Zubař",
+        "Záchranář",
+        "Záhradnícký konzultant",
+        "Záhradnícký terapeut",
+        "Záhradník, komerční",
+        "Záhradní architekt",
+        "Úředník místní samosprávy",
+        "Úřadník pro rybolov",
+        "Účetní, autorizované veřejné finance",
+        "Účetní, autorizovaný",
+        "Účetní, autorizovaný / certifikovaný",
+        "Účetní technik",
+        "Specialista na multimédiá",
+        "Specialista na podporu zdraví",
+        "Dopravce",
+        "Šlechtitel rostlin / genetik",
+    )
+
+    def job(self) -> str:
+        return self.random_element(self.jobs)
diff --git a/faker/providers/job/sk_SK/__init__.py b/faker/providers/job/sk_SK/__init__.py
index 3000ef56..35507c9c 100644
--- a/faker/providers/job/sk_SK/__init__.py
+++ b/faker/providers/job/sk_SK/__init__.py
@@ -197,7 +197,6 @@ class Provider(JobProvider):
         "Kupujúci, maloobchod",
         "Kurátor",
         "Kurátor múzea / galérie",
-        "Kópia",
         "Lektor ďalšieho vzdelávania",
         "Lektor, vysokoškolské vzdelanie",
         "Lektor, ďalšie vzdelávanie",
@@ -264,7 +263,6 @@ class Provider(JobProvider):
         "Ochranár, historické budovy",
         "Odborník na životné prostredie",
         "Odevný / textilný technológ",
-        "Odevný / textilný technológ",
         "Onkológ",
         "Operatívny výskumník",
         "Operačný dôstojník diplomatických služieb",
@@ -410,7 +408,6 @@ class Provider(JobProvider):
         "Správca, vzdelávanie",
         "Správca, šport",
         "Stavebný geodet",
-        "Stavebný geodet",
         "Stavebný inžinier, poradenstvo",
         "Stavebný inžinier, uzatváranie zmlúv",
         "Strihač, film / video",
diff --git a/faker/providers/lorem/pl_PL/__init__.py b/faker/providers/lorem/pl_PL/__init__.py
index 41dd8865..5fcc9c60 100644
--- a/faker/providers/lorem/pl_PL/__init__.py
+++ b/faker/providers/lorem/pl_PL/__init__.py
@@ -1210,7 +1210,6 @@ class Provider(LoremProvider):
         "lipiec",
         "bohater",
         "prasa",
-        "penis",
         "Czechy",
         "80",
         "fakt",
diff --git a/faker/providers/person/pt_BR/__init__.py b/faker/providers/person/pt_BR/__init__.py
index 1367eefb..f2144bf2 100644
--- a/faker/providers/person/pt_BR/__init__.py
+++ b/faker/providers/person/pt_BR/__init__.py
@@ -27,26 +27,37 @@ class Provider(PersonProvider):
     most popular names in Brazil in 2014 and 2015 according to Exame magazine:
     * http://exame.abril.com.br/brasil/noticias/os-100-nomes-mais-comuns-no-brasil-em-2014
     * http://exame.abril.com.br/brasil/noticias/os-100-nomes-mais-comuns-no-brasil-em-2015
+    Merged with this list from 2023
+    * https://brasil.babycenter.com/a25034220/200-nomes-mais-populares-para-beb%C3%AAs-no-1%C2%BA-semestre-de-2023
     """
     first_names_female = (
         "Agatha",
         "Alana",
         "Alexia",
         "Alice",
+        "Allana",
         "Alícia",
         "Amanda",
+        "Ana",
         "Ana Beatriz",
         "Ana Carolina",
+        "Ana Cecília",
         "Ana Clara",
         "Ana Julia",
         "Ana Júlia",
         "Ana Laura",
+        "Ana Liz",
         "Ana Luiza",
         "Ana Lívia",
         "Ana Sophia",
         "Ana Vitória",
-        "Ana",
+        "Anna Liz",
+        "Antonella",
+        "Aurora",
+        "Ayla",
+        "Aylla",
         "Beatriz",
+        "Bella",
         "Bianca",
         "Brenda",
         "Bruna",
@@ -55,6 +66,7 @@ class Provider(PersonProvider):
         "Carolina",
         "Caroline",
         "Catarina",
+        "Cecilia",
         "Cecília",
         "Clara",
         "Clarice",
@@ -62,22 +74,29 @@ class Provider(PersonProvider):
         "Eduarda",
         "Elisa",
         "Eloah",
+        "Eloá",
         "Emanuella",
         "Emanuelly",
         "Emilly",
+        "Ester",
         "Esther",
         "Evelyn",
         "Fernanda",
         "Gabriela",
         "Gabrielly",
         "Giovanna",
+        "Hadassa",
         "Helena",
+        "Hellena",
+        "Heloisa",
         "Heloísa",
         "Isabel",
+        "Isabela",
         "Isabella",
         "Isabelly",
         "Isadora",
         "Isis",
+        "Jade",
         "Joana",
         "Julia",
         "Juliana",
@@ -89,28 +108,43 @@ class Provider(PersonProvider):
         "Lavínia",
         "Laís",
         "Letícia",
+        "Liz",
         "Lorena",
         "Luana",
+        "Luara",
         "Luiza",
         "Luna",
+        "Lunna",
+        "Luísa",
         "Lívia",
         "Maitê",
         "Manuela",
+        "Manuella",
         "Marcela",
+        "Maria",
         "Maria Alice",
         "Maria Cecília",
         "Maria Clara",
         "Maria Eduarda",
         "Maria Fernanda",
+        "Maria Flor",
+        "Maria Helena",
+        "Maria Isis",
         "Maria Julia",
+        "Maria Júlia",
+        "Maria Laura",
+        "Maria Liz",
         "Maria Luiza",
+        "Maria Luísa",
         "Maria Sophia",
         "Maria Vitória",
-        "Maria",
+        "Mariah",
         "Mariana",
         "Mariane",
         "Marina",
+        "Maya",
         "Maysa",
+        "Melina",
         "Melissa",
         "Milena",
         "Mirella",
@@ -118,11 +152,13 @@ class Provider(PersonProvider):
         "Nicole",
         "Nina",
         "Olivia",
+        "Olívia",
         "Pietra",
         "Rafaela",
         "Raquel",
         "Rebeca",
         "Sabrina",
+        "Sara",
         "Sarah",
         "Sofia",
         "Sophia",
@@ -132,6 +168,9 @@ class Provider(PersonProvider):
         "Valentina",
         "Vitória",
         "Yasmin",
+        "Zoe",
+        "Ágatha",
+        "Ísis",
     )
 
     """
@@ -139,52 +178,78 @@ class Provider(PersonProvider):
     most popular names in Brazil in 2014 and 2015 according to this blog post:
     * http://exame.abril.com.br/brasil/noticias/os-100-nomes-mais-comuns-no-brasil-em-2014
     * http://exame.abril.com.br/brasil/noticias/os-100-nomes-mais-comuns-no-brasil-em-2015
+    Merged with this list from 2023
+    * https://brasil.babycenter.com/a25034220/200-nomes-mais-populares-para-beb%C3%AAs-no-1%C2%BA-semestre-de-2023
     """
     first_names_male = (
         "Alexandre",
         "André",
         "Anthony",
+        "Anthony Gabriel",
+        "Antony",
         "Antônio",
+        "Apollo",
         "Arthur",
+        "Arthur Gabriel",
+        "Arthur Miguel",
+        "Asafe",
         "Augusto",
+        "Benicio",
+        "Benjamim",
         "Benjamin",
+        "Bento",
         "Benício",
         "Bernardo",
+        "Brayan",
         "Breno",
         "Bruno",
         "Bryan",
         "Caio",
+        "Caleb",
         "Calebe",
         "Carlos Eduardo",
         "Cauã",
         "Cauê",
         "Daniel",
         "Danilo",
+        "Dante",
+        "Davi",
         "Davi Lucas",
         "Davi Lucca",
         "Davi Luiz",
-        "Davi",
+        "Davi Miguel",
         "Diego",
         "Diogo",
+        "Dom",
         "Eduardo",
         "Emanuel",
         "Enrico",
-        "Enzo Gabriel",
         "Enzo",
+        "Enzo Gabriel",
         "Erick",
         "Felipe",
         "Fernando",
         "Francisco",
         "Gabriel",
+        "Gael",
+        "Gael Henrique",
         "Guilherme",
-        "Gustavo Henrique",
         "Gustavo",
+        "Gustavo Henrique",
         "Heitor",
         "Henrique",
+        "Henry",
+        "Henry Gabriel",
         "Ian",
         "Igor",
         "Isaac",
+        "Isaque",
         "Joaquim",
+        "Josué",
+        "José",
+        "José Miguel",
+        "José Pedro",
+        "João",
         "João Felipe",
         "João Gabriel",
         "João Guilherme",
@@ -192,16 +257,17 @@ class Provider(PersonProvider):
         "João Miguel",
         "João Pedro",
         "João Vitor",
-        "João",
         "Juan",
         "Kaique",
         "Kevin",
         "Leandro",
         "Leonardo",
         "Levi",
+        "Liam",
         "Lorenzo",
-        "Lucas Gabriel",
+        "Luan",
         "Lucas",
+        "Lucas Gabriel",
         "Lucca",
         "Luigi",
         "Luiz Felipe",
@@ -210,37 +276,53 @@ class Provider(PersonProvider):
         "Luiz Henrique",
         "Luiz Miguel",
         "Luiz Otávio",
+        "Léo",
         "Marcelo",
         "Marcos Vinicius",
+        "Mateus",
         "Matheus",
+        "Mathias",
+        "Matteo",
         "Miguel",
         "Murilo",
         "Nathan",
         "Nicolas",
         "Noah",
+        "Oliver",
+        "Otto",
         "Otávio",
         "Paulo",
+        "Pedro",
         "Pedro Henrique",
         "Pedro Lucas",
         "Pedro Miguel",
-        "Pedro",
         "Pietro",
+        "Rael",
         "Rafael",
         "Raul",
+        "Ravi",
+        "Ravi Lucca",
+        "Ravy",
         "Renan",
+        "Rhavi",
         "Rodrigo",
         "Ryan",
         "Samuel",
         "Thales",
         "Theo",
+        "Theodoro",
         "Thiago",
         "Thomas",
+        "Théo",
+        "Valentim",
         "Vicente",
         "Vinicius",
+        "Vinícius",
+        "Vitor",
         "Vitor Gabriel",
         "Vitor Hugo",
-        "Vitor",
         "Yago",
+        "Yan",
         "Yuri",
     )
 
@@ -250,26 +332,39 @@ class Provider(PersonProvider):
     To a previous (undocumented?) list of family names was added the 70
     most popular family names in Brazil according to this blog post:
     * http://nomeschiques.com/os-70-sobrenomes-mais-comuns-e-famosos-do-brasil/
+    Merged with this list from 2023
+    * https://nomescriativos.com.br/sobrenomes-mais-comuns/
     """
     last_names = (
+        "Abreu",
+        "Albuquerque",
         "Almeida",
         "Alves",
+        "Andrade",
+        "Aparecida",
         "Aragão",
         "Araújo",
         "Azevedo",
         "Barbosa",
         "Barros",
+        "Borges",
+        "Brito",
         "Caldeira",
+        "Camargo",
         "Campos",
         "Cardoso",
-        "Cardoso",
         "Carvalho",
+        "Casa Grande",
+        "Cassiano",
         "Castro",
+        "Cavalcante",
         "Cavalcanti",
+        "Cirino",
         "Correia",
         "Costa",
         "Costela",
         "Cunha",
+        "Câmara",
         "da Conceição",
         "da Costa",
         "da Cruz",
@@ -287,40 +382,60 @@ class Provider(PersonProvider):
         "Fernandes",
         "Ferreira",
         "Fogaça",
+        "Fonseca",
         "Freitas",
+        "Garcia",
         "Gomes",
         "Gonçalves",
+        "Guerra",
         "Jesus",
+        "Leão",
         "Lima",
         "Lopes",
+        "Macedo",
+        "Machado",
+        "Marques",
         "Martins",
         "Melo",
         "Mendes",
+        "Mendonça",
         "Monteiro",
+        "Montenegro",
         "Moraes",
         "Moreira",
         "Moura",
         "Nascimento",
         "Nogueira",
         "Novaes",
+        "Novais",
         "Nunes",
         "Oliveira",
+        "Pacheco",
+        "Pastor",
         "Peixoto",
         "Pereira",
+        "Pimenta",
         "Pinto",
         "Pires",
         "Porto",
         "Ramos",
         "Rezende",
         "Ribeiro",
+        "Rios",
         "Rocha",
         "Rodrigues",
         "Sales",
+        "Sampaio",
         "Santos",
         "Silva",
         "Silveira",
+        "Siqueira",
+        "Sousa",
         "Souza",
+        "Sá",
         "Teixeira",
+        "Vargas",
+        "Vasconcelos",
         "Viana",
         "Vieira",
     )
diff --git a/faker/providers/phone_number/uk_UA/__init__.py b/faker/providers/phone_number/uk_UA/__init__.py
index d26d3365..c3b57762 100644
--- a/faker/providers/phone_number/uk_UA/__init__.py
+++ b/faker/providers/phone_number/uk_UA/__init__.py
@@ -1,8 +1,9 @@
+from .. import ElementsType
 from .. import Provider as PhoneNumberProvider
 
 
 class Provider(PhoneNumberProvider):
-    formats = (
+    formats: ElementsType[str] = (
         "###-##-##",
         "### ## ##",
         "0## ### ## ##",
@@ -12,3 +13,58 @@ class Provider(PhoneNumberProvider):
         "+380 (##) ###-##-##",
         "+380 ## ### ## ##",
     )
+
+    # info: https://ru.wikipedia.org/wiki/MSISDN
+    msisdn_formats: ElementsType[str] = ("############",)
+
+    # info: https://en.wikipedia.org/wiki/Telephone_numbers_in_Ukraine
+    country_calling_codes: ElementsType[str] = (
+        "+38031",
+        "+38032",
+        "+38033",
+        "+38034",
+        "+38035",
+        "+38036",
+        "+38037",
+        "+38038",
+        "+38041",
+        "+38043",
+        "+38044",
+        "+38045",
+        "+38046",
+        "+38047",
+        "+38048",
+        "+38049",
+        "+38050",
+        "+38051",
+        "+38052",
+        "+38053",
+        "+38054",
+        "+38055",
+        "+38056",
+        "+38057",
+        "+38061",
+        "+38062",
+        "+38063",
+        "+38063",
+        "+38065",
+        "+38066",
+        "+38067",
+        "+38068",
+        "+38069",
+        "+38070",
+        "+38071",
+        "+38072",
+        "+38073",
+        "+3800",
+        "+38090",
+        "+38091",
+        "+38092",
+        "+38093",
+        "+38094",
+        "+38095",
+        "+38096",
+        "+38097",
+        "+38098",
+        "+38099",
+    )


Test patch:
diff --git a/tests/providers/test_geo.py b/tests/providers/test_geo.py
index fe16651b..8a614a98 100644
--- a/tests/providers/test_geo.py
+++ b/tests/providers/test_geo.py
@@ -80,6 +80,23 @@ class TestEnUS(unittest.TestCase):
         assert Decimal(loc[1])
 
 
+class TestSkSk(unittest.TestCase):
+    def setUp(self):
+        self.fake = Faker("sk_SK")
+        Faker.seed(0)
+
+    def test_location_on_land(self):
+        loc = self.fake.location_on_land()
+        assert isinstance(loc, tuple)
+        assert len(loc) == 5
+        assert Decimal(loc[0])  # Should be able to cast first two elements of tuple to Decimal
+        assert Decimal(loc[1])
+        assert isinstance(loc[2], str)  # Place is a string
+        assert isinstance(loc[3], str)  # Country code is a string
+        assert len(loc[3]) == 2  # Country code is two letters
+        assert isinstance(loc[4], str)  # Timezone is a string
+
+
 class TestCsCz(unittest.TestCase):
     def setUp(self):
         self.fake = Faker("cs_CZ")
diff --git a/tests/providers/test_job.py b/tests/providers/test_job.py
index a187cd6d..9b9e27bc 100644
--- a/tests/providers/test_job.py
+++ b/tests/providers/test_job.py
@@ -1,5 +1,6 @@
 from faker.providers.job import Provider as JobProvider
 from faker.providers.job.az_AZ import Provider as AzAzJobProvider
+from faker.providers.job.cs_CZ import Provider as CsCzJobProvider
 from faker.providers.job.de_DE import Provider as DeDeJobProvider
 from faker.providers.job.el_GR import Provider as ElGrJobProvider
 from faker.providers.job.es_ES import Provider as EsEsJobProvider
@@ -23,6 +24,14 @@ class TestJobProvider:
         for _ in range(num_samples):
             assert faker.job() in JobProvider.jobs
 
+class TestCsCZ:
+    """Test cs_CZ job provider"""
+
+    def test_job(self, faker, num_samples):
+        for _ in range(num_samples):
+            job = faker.job()
+            assert isinstance(job, str)
+            assert job in CsCzJobProvider.jobs
 
 class TestAzAz:
     """Test az_AZ job provider"""
diff --git a/tests/providers/test_phone_number.py b/tests/providers/test_phone_number.py
index b5e59786..39cf2ea6 100644
--- a/tests/providers/test_phone_number.py
+++ b/tests/providers/test_phone_number.py
@@ -67,7 +67,7 @@ class TestCsCz:
     """Test cs_CZ phone number provider methods"""
 
     def test_phone_number(self, faker, num_samples):
-        pattern: Pattern = re.compile(r"^(00420|\+420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$")
+        pattern: Pattern = re.compile(r"^(00420|\+420)? ?[6-7][0-9]{2} ?[0-9]{3} ?[0-9]{3}$")
         for _ in range(num_samples):
             phone_number = faker.phone_number()
             assert pattern.fullmatch(phone_number)