pycountry


Namepycountry JSON
Version 24.6.1 PyPI version JSON
download
home_pagehttps://github.com/flyingcircusio/pycountry
SummaryISO country, subdivision, language, currency and script definitions and their translations
upload_time2024-06-01 04:12:15
maintainerNate Schimmoller
docs_urlNone
authorChristian Theune
requires_python>=3.8
licenseLGPL-2.1-only
keywords country subdivision language currency iso 3166 639 4217 15924 3166-1 3166-2 3166-3
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            ###########
 pycountry
###########

..
   image:g: https://travis-ci.org/flyingcircusio/pycountry.svg?branch=master

pycountry provides the ISO databases for the standards:

-  `639-3 <https://en.wikipedia.org/wiki/ISO_639-3>`_ Languages
-  `3166 <https://en.wikipedia.org/wiki/ISO_3166>`_ Codes for
   representation of names of countries and their subdivisions
-  `3166-1 <https://en.wikipedia.org/wiki/ISO_3166-1>`_ Countries
-  `3166-3 <https://en.wikipedia.org/wiki/ISO_3166-3>`_ Deleted
   countries
-  `3166-2 <https://en.wikipedia.org/wiki/ISO_3166-2>`_ Subdivisions of
   countries
-  `4217 <https://en.wikipedia.org/wiki/ISO_4217>`_ Currencies
-  `15924 <https://en.wikipedia.org/wiki/ISO_15924>`_ Scripts

The package includes a copy from Debian's `pkg-isocodes
<https://salsa.debian.org/iso-codes-team/iso-codes>`_ and makes the data
accessible through a Python API.

Translation files for the various strings are included as well.

********************
 Data update policy
********************

No changes to the data will be accepted into pycountry. This is a pure
wrapper around the ISO standard using the ``pkg-isocodes`` database from
Debian *as is*. If you need changes to the political situation in the
world, please talk to the ISO or Debian people, not me.

******************************
 Donations / Monetary Support
******************************

This is a small project that I maintain in my personal time. I am not
interested in personal financial gain. However, if you would like to
support the project then I would love if you would donate to `Feminist
Frequency <https://feministfrequency.com/donate/>`_ instead. Also, let
the world know you did so, so that others can follow your path.

***************
 Contributions
***************

The code lives in a `git repository on GitHub
<https://github.com/pycountry/pycountry>`_, and issues must be reported
in there as well.

************************
 Countries (ISO 3166-1)
************************

Countries are accessible through a database object that is already
configured upon import of pycountry and works as an iterable:

.. code:: pycon

   >>> import pycountry
   >>> len(pycountry.countries)
   249
   >>> list(pycountry.countries)[0]
   Country(alpha_2='AF', alpha_3='AFG', name='Afghanistan', numeric='004', official_name='Islamic Republic of Afghanistan')

Specific countries can be looked up by their various codes and provide
the information included in the standard as attributes:

.. code:: pycon

   >>> germany = pycountry.countries.get(alpha_2='DE')
   >>> germany
   Country(alpha_2='DE', alpha_3='DEU', name='Germany', numeric='276', official_name='Federal Republic of Germany')
   >>> germany.alpha_2
   'DE'
   >>> germany.alpha_3
   'DEU'
   >>> germany.numeric
   '276'
   >>> germany.name
   'Germany'
   >>> germany.official_name
   'Federal Republic of Germany'

There's also a "fuzzy" search to help people discover "proper" countries
for names that might only actually be subdivisions. The fuzziness also
includes normalizing unicode accents. There's also a bit of
prioritization included to prefer matches on country names before
subdivision names and have countries with more matches be listed before
ones with fewer matches:

.. code:: pycon

   >>> pycountry.countries.search_fuzzy('England')
   [Country(alpha_2='GB', alpha_3='GBR', name='United Kingdom', numeric='826', official_name='United Kingdom of Great Britain and Northern Ireland')]

   >>> pycountry.countries.search_fuzzy('Cote')
   [Country(alpha_2='CI', alpha_3='CIV', name="Côte d'Ivoire", numeric='384', official_name="Republic of Côte d'Ivoire"),
    Country(alpha_2='FR', alpha_3='FRA', name='France', numeric='250', official_name='French Republic'),
    Country(alpha_2='HN', alpha_3='HND', name='Honduras', numeric='340', official_name='Republic of Honduras')]

Attributes for the country class can be accessed using the
``__getattr__`` method. If the requested attribute is a key for the
country class, it will return the corresponding value. In the special
cases of missing 'common_name' or 'official_name' attributes,
``__getattr__`` will return 'name'. Here are some examples:

.. code:: pycon

   >>> aland = pycountry.countries.get(alpha_2='AX')

   >>> print(aland)
   Country(alpha_2='AX', alpha_3='ALA', flag='🇦🇽', name='Åland Islands', numeric='248')

   >>> aland.common_name
   UserWarning: Country's common_name not found. Country name provided instead.
     warnings.warn(warning_message, UserWarning)
   'Åland Islands'

   >>> aland.official_name
   Country's official_name not found. Country name provided instead.
     warnings.warn(warning_message, UserWarning)
   'Åland Islands'

   >>> aland.flag
   '🇦🇽'

   >>> aland.foo  # Raises AttributeError

*********************************
 Historic Countries (ISO 3166-3)
*********************************

The ``historic_countries`` database contains former countries that have
been removed from the standard and are now included in ISO 3166-3,
excluding existing ones:

.. code:: pycon

   >>> ussr = pycountry.historic_countries.get(alpha_3='SUN')
   >>> ussr
   Country(alpha_3='SUN', alpha_4='SUHH', withdrawal_date='1992-08-30', name='USSR, Union of Soviet Socialist Republics', numeric='810')
   >>> ussr.alpha_4
   'SUHH'
   >>> ussr.alpha_3
   'SUN'
   >>> ussr.name
   'USSR, Union of Soviet Socialist Republics'
   >>> ussr.withdrawal_date
   '1992-08-30'

***********************************
 Country subdivisions (ISO 3166-2)
***********************************

The country subdivisions are a little more complex than the countries
itself because they provide a nested and typed structure.

All subdivisons can be accessed directly:

.. code:: pycon

   >>> len(pycountry.subdivisions)
   4847
   >>> list(pycountry.subdivisions)[0]
   Subdivision(code='AD-07', country_code='AD', name='Andorra la Vella', parent_code=None, type='Parish')

Subdivisions can be accessed using their unique code. The resulting
object will provide at least their code, name and type:

.. code:: pycon

   >>> de_st = pycountry.subdivisions.get(code='DE-ST')
   >>> de_st.code
   'DE-ST'
   >>> de_st.name
   'Sachsen-Anhalt'
   >>> de_st.type
   'State'
   >>> de_st.country
   Country(alpha_2='DE', alpha_3='DEU', name='Germany', numeric='276', official_name='Federal Republic of Germany')

Some subdivisions specify another subdivision as a parent:

.. code:: pycon

   >>> al_br = pycountry.subdivisions.get(code='AL-BU')
   >>> al_br.code
   'AL-BU'
   >>> al_br.name
   'Bulqiz\xeb'
   >>> al_br.type
   'District'
   >>> al_br.parent_code
   'AL-09'
   >>> al_br.parent
   Subdivision(code='AL-09', country_code='AL', name='Dib\xebr', parent_code=None, type='County')
   >>> al_br.parent.name
   'Dib\xebr'

The divisions of a single country can be queried using the country_code
index:

.. code:: pycon

   >>> len(pycountry.subdivisions.get(country_code='DE'))
   16

   >>> len(pycountry.subdivisions.get(country_code='US'))
   57

Similar to countries, the ``search_fuzzy`` method has been implemented
for subdivisions to facilitate finding relevant subdivision entries.
This method includes unicode normalization for accents and prioritizes
matches on subdivision names. The search algorithm is designed to return
more relevant matches first:

This method is especially useful for cases where the exact name or code
of the subdivision is not known.

.. code:: pycon

   >>> pycountry.subdivisions.search_fuzzy('York')
     [Subdivision(code='GB-YOR', country_code='GB', name='York', parent='GB-ENG', parent_code='GB-GB-ENG', type='Unitary authority')
     Subdivision(code='GB-ERY', country_code='GB', name='East Riding of Yorkshire', parent='GB-ENG', parent_code='GB-GB-ENG', type='Unitary authority')
     Subdivision(code='GB-NYK', country_code='GB', name='North Yorkshire', parent='GB-ENG', parent_code='GB-GB-ENG', type='Two-tier county')
     Subdivision(code='US-NY', country_code='US', name='New York', parent_code=None, type='State')]

*********************
 Scripts (ISO 15924)
*********************

Scripts are available from a database similar to the countries:

.. code:: pycon

   >>> len(pycountry.scripts)
   169
   >>> list(pycountry.scripts)[0]
   Script(alpha_4='Afak', name='Afaka', numeric='439')

   >>> latin = pycountry.scripts.get(name='Latin')
   >>> latin
   Script(alpha_4='Latn', name='Latin', numeric='215')
   >>> latin.alpha4
   'Latn'
   >>> latin.name
   'Latin'
   >>> latin.numeric
   '215'

***********************
 Currencies (ISO 4217)
***********************

The currencies database is, again, similar to the ones before:

.. code:: pycon

   >>> len(pycountry.currencies)
   182
   >>> list(pycountry.currencies)[0]
   Currency(alpha_3='AED', name='UAE Dirham', numeric='784')
   >>> argentine_peso = pycountry.currencies.get(alpha_3='ARS')
   >>> argentine_peso
   Currency(alpha_3='ARS', name='Argentine Peso', numeric='032')
   >>> argentine_peso.alpha_3
   'ARS'
   >>> argentine_peso.name
   'Argentine Peso'
   >>> argentine_peso.numeric
   '032'

***********************
 Languages (ISO 639-3)
***********************

The languages database is similar too:

.. code:: pycon

   >>> len(pycountry.languages)
   7874
   >>> list(pycountry.languages)[0]
   Language(alpha_3='aaa', name='Ghotuo', scope='I', type='L')

   >>> aragonese = pycountry.languages.get(alpha_2='an')
   >>> aragonese.alpha_2
   'an'
   >>> aragonese.alpha_3
   'arg'
   >>> aragonese.name
   'Aragonese'

   >>> bengali = pycountry.languages.get(alpha_2='bn')
   >>> bengali.name
   'Bengali'
   >>> bengali.common_name
   'Bangla'

*********
 Locales
*********

Locales are available in the ``pycountry.LOCALES_DIR`` subdirectory of
this package. The translation domains are called ``isoXXX`` according to
the standard they provide translations for. The directory is structured
in a way compatible to Python's gettext module.

Here is an example translating language names:

.. code:: pycon

   >>> import gettext
   >>> german = gettext.translation('iso3166-1', pycountry.LOCALES_DIR,
   ...                              languages=['de'])
   >>> german.install()
   >>> _('Germany')
   'Deutschland'

*********
 Lookups
*********

For each database (countries, languages, scripts, etc.), you can also
look up entities case insensitively without knowing which key the value
may match. For example:

.. code:: pycon

   >>> pycountry.countries.lookup('de')
   <pycountry.db.Country object at 0x...>

The search ends with the first match, which is returned.

********************
 Dict Compatibility
********************

You can cast each object type into a ``dict``:

.. code:: pycon

   >>> country = pycountry.countries.lookup('de')
   >>> dict(country)
   {'alpha_2': 'DE', 'name': 'Germany', ...}

******************
 Custom Countries
******************

While pycountry will not be adding non-ISO values to its standard
library, you can add or remove entries at runtime to fit your needs.

Add a non-ISO country:

.. code:: pycon

   >>> pycountry.countries.add_entry(alpha_2="XK", alpha_3="XXK", name="Kosovo", numeric="926")

Remove a country from a database:

.. code:: pycon

   >>> pycountry.countries.remove_entry(alpha_2="XK")

***************************
 PyInstaller Compatibility
***************************

Some users have reported issues using PyCountry with PyInstaller
guidance on how to handle the issues can be found in the `PyInstaller
Google Group
<https://groups.google.com/g/pyinstaller/c/OYhJdeZ9010/m/vLhYAWUzAQAJ>`_.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/flyingcircusio/pycountry",
    "name": "pycountry",
    "maintainer": "Nate Schimmoller",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "nschimmo@gmail.com",
    "keywords": "country, subdivision, language, currency, iso, 3166, 639, 4217, 15924, 3166-1, 3166-2, 3166-3",
    "author": "Christian Theune",
    "author_email": "ct@flyingcircus.io",
    "download_url": "https://files.pythonhosted.org/packages/76/57/c389fa68c50590881a75b7883eeb3dc15e9e73a0fdc001cdd45c13290c92/pycountry-24.6.1.tar.gz",
    "platform": null,
    "description": "###########\n pycountry\n###########\n\n..\n   image:g: https://travis-ci.org/flyingcircusio/pycountry.svg?branch=master\n\npycountry provides the ISO databases for the standards:\n\n-  `639-3 <https://en.wikipedia.org/wiki/ISO_639-3>`_ Languages\n-  `3166 <https://en.wikipedia.org/wiki/ISO_3166>`_ Codes for\n   representation of names of countries and their subdivisions\n-  `3166-1 <https://en.wikipedia.org/wiki/ISO_3166-1>`_ Countries\n-  `3166-3 <https://en.wikipedia.org/wiki/ISO_3166-3>`_ Deleted\n   countries\n-  `3166-2 <https://en.wikipedia.org/wiki/ISO_3166-2>`_ Subdivisions of\n   countries\n-  `4217 <https://en.wikipedia.org/wiki/ISO_4217>`_ Currencies\n-  `15924 <https://en.wikipedia.org/wiki/ISO_15924>`_ Scripts\n\nThe package includes a copy from Debian's `pkg-isocodes\n<https://salsa.debian.org/iso-codes-team/iso-codes>`_ and makes the data\naccessible through a Python API.\n\nTranslation files for the various strings are included as well.\n\n********************\n Data update policy\n********************\n\nNo changes to the data will be accepted into pycountry. This is a pure\nwrapper around the ISO standard using the ``pkg-isocodes`` database from\nDebian *as is*. If you need changes to the political situation in the\nworld, please talk to the ISO or Debian people, not me.\n\n******************************\n Donations / Monetary Support\n******************************\n\nThis is a small project that I maintain in my personal time. I am not\ninterested in personal financial gain. However, if you would like to\nsupport the project then I would love if you would donate to `Feminist\nFrequency <https://feministfrequency.com/donate/>`_ instead. Also, let\nthe world know you did so, so that others can follow your path.\n\n***************\n Contributions\n***************\n\nThe code lives in a `git repository on GitHub\n<https://github.com/pycountry/pycountry>`_, and issues must be reported\nin there as well.\n\n************************\n Countries (ISO 3166-1)\n************************\n\nCountries are accessible through a database object that is already\nconfigured upon import of pycountry and works as an iterable:\n\n.. code:: pycon\n\n   >>> import pycountry\n   >>> len(pycountry.countries)\n   249\n   >>> list(pycountry.countries)[0]\n   Country(alpha_2='AF', alpha_3='AFG', name='Afghanistan', numeric='004', official_name='Islamic Republic of Afghanistan')\n\nSpecific countries can be looked up by their various codes and provide\nthe information included in the standard as attributes:\n\n.. code:: pycon\n\n   >>> germany = pycountry.countries.get(alpha_2='DE')\n   >>> germany\n   Country(alpha_2='DE', alpha_3='DEU', name='Germany', numeric='276', official_name='Federal Republic of Germany')\n   >>> germany.alpha_2\n   'DE'\n   >>> germany.alpha_3\n   'DEU'\n   >>> germany.numeric\n   '276'\n   >>> germany.name\n   'Germany'\n   >>> germany.official_name\n   'Federal Republic of Germany'\n\nThere's also a \"fuzzy\" search to help people discover \"proper\" countries\nfor names that might only actually be subdivisions. The fuzziness also\nincludes normalizing unicode accents. There's also a bit of\nprioritization included to prefer matches on country names before\nsubdivision names and have countries with more matches be listed before\nones with fewer matches:\n\n.. code:: pycon\n\n   >>> pycountry.countries.search_fuzzy('England')\n   [Country(alpha_2='GB', alpha_3='GBR', name='United Kingdom', numeric='826', official_name='United Kingdom of Great Britain and Northern Ireland')]\n\n   >>> pycountry.countries.search_fuzzy('Cote')\n   [Country(alpha_2='CI', alpha_3='CIV', name=\"C\u00f4te d'Ivoire\", numeric='384', official_name=\"Republic of C\u00f4te d'Ivoire\"),\n    Country(alpha_2='FR', alpha_3='FRA', name='France', numeric='250', official_name='French Republic'),\n    Country(alpha_2='HN', alpha_3='HND', name='Honduras', numeric='340', official_name='Republic of Honduras')]\n\nAttributes for the country class can be accessed using the\n``__getattr__`` method. If the requested attribute is a key for the\ncountry class, it will return the corresponding value. In the special\ncases of missing 'common_name' or 'official_name' attributes,\n``__getattr__`` will return 'name'. Here are some examples:\n\n.. code:: pycon\n\n   >>> aland = pycountry.countries.get(alpha_2='AX')\n\n   >>> print(aland)\n   Country(alpha_2='AX', alpha_3='ALA', flag='\ud83c\udde6\ud83c\uddfd', name='\u00c5land Islands', numeric='248')\n\n   >>> aland.common_name\n   UserWarning: Country's common_name not found. Country name provided instead.\n     warnings.warn(warning_message, UserWarning)\n   '\u00c5land Islands'\n\n   >>> aland.official_name\n   Country's official_name not found. Country name provided instead.\n     warnings.warn(warning_message, UserWarning)\n   '\u00c5land Islands'\n\n   >>> aland.flag\n   '\ud83c\udde6\ud83c\uddfd'\n\n   >>> aland.foo  # Raises AttributeError\n\n*********************************\n Historic Countries (ISO 3166-3)\n*********************************\n\nThe ``historic_countries`` database contains former countries that have\nbeen removed from the standard and are now included in ISO 3166-3,\nexcluding existing ones:\n\n.. code:: pycon\n\n   >>> ussr = pycountry.historic_countries.get(alpha_3='SUN')\n   >>> ussr\n   Country(alpha_3='SUN', alpha_4='SUHH', withdrawal_date='1992-08-30', name='USSR, Union of Soviet Socialist Republics', numeric='810')\n   >>> ussr.alpha_4\n   'SUHH'\n   >>> ussr.alpha_3\n   'SUN'\n   >>> ussr.name\n   'USSR, Union of Soviet Socialist Republics'\n   >>> ussr.withdrawal_date\n   '1992-08-30'\n\n***********************************\n Country subdivisions (ISO 3166-2)\n***********************************\n\nThe country subdivisions are a little more complex than the countries\nitself because they provide a nested and typed structure.\n\nAll subdivisons can be accessed directly:\n\n.. code:: pycon\n\n   >>> len(pycountry.subdivisions)\n   4847\n   >>> list(pycountry.subdivisions)[0]\n   Subdivision(code='AD-07', country_code='AD', name='Andorra la Vella', parent_code=None, type='Parish')\n\nSubdivisions can be accessed using their unique code. The resulting\nobject will provide at least their code, name and type:\n\n.. code:: pycon\n\n   >>> de_st = pycountry.subdivisions.get(code='DE-ST')\n   >>> de_st.code\n   'DE-ST'\n   >>> de_st.name\n   'Sachsen-Anhalt'\n   >>> de_st.type\n   'State'\n   >>> de_st.country\n   Country(alpha_2='DE', alpha_3='DEU', name='Germany', numeric='276', official_name='Federal Republic of Germany')\n\nSome subdivisions specify another subdivision as a parent:\n\n.. code:: pycon\n\n   >>> al_br = pycountry.subdivisions.get(code='AL-BU')\n   >>> al_br.code\n   'AL-BU'\n   >>> al_br.name\n   'Bulqiz\\xeb'\n   >>> al_br.type\n   'District'\n   >>> al_br.parent_code\n   'AL-09'\n   >>> al_br.parent\n   Subdivision(code='AL-09', country_code='AL', name='Dib\\xebr', parent_code=None, type='County')\n   >>> al_br.parent.name\n   'Dib\\xebr'\n\nThe divisions of a single country can be queried using the country_code\nindex:\n\n.. code:: pycon\n\n   >>> len(pycountry.subdivisions.get(country_code='DE'))\n   16\n\n   >>> len(pycountry.subdivisions.get(country_code='US'))\n   57\n\nSimilar to countries, the ``search_fuzzy`` method has been implemented\nfor subdivisions to facilitate finding relevant subdivision entries.\nThis method includes unicode normalization for accents and prioritizes\nmatches on subdivision names. The search algorithm is designed to return\nmore relevant matches first:\n\nThis method is especially useful for cases where the exact name or code\nof the subdivision is not known.\n\n.. code:: pycon\n\n   >>> pycountry.subdivisions.search_fuzzy('York')\n     [Subdivision(code='GB-YOR', country_code='GB', name='York', parent='GB-ENG', parent_code='GB-GB-ENG', type='Unitary authority')\n     Subdivision(code='GB-ERY', country_code='GB', name='East Riding of Yorkshire', parent='GB-ENG', parent_code='GB-GB-ENG', type='Unitary authority')\n     Subdivision(code='GB-NYK', country_code='GB', name='North Yorkshire', parent='GB-ENG', parent_code='GB-GB-ENG', type='Two-tier county')\n     Subdivision(code='US-NY', country_code='US', name='New York', parent_code=None, type='State')]\n\n*********************\n Scripts (ISO 15924)\n*********************\n\nScripts are available from a database similar to the countries:\n\n.. code:: pycon\n\n   >>> len(pycountry.scripts)\n   169\n   >>> list(pycountry.scripts)[0]\n   Script(alpha_4='Afak', name='Afaka', numeric='439')\n\n   >>> latin = pycountry.scripts.get(name='Latin')\n   >>> latin\n   Script(alpha_4='Latn', name='Latin', numeric='215')\n   >>> latin.alpha4\n   'Latn'\n   >>> latin.name\n   'Latin'\n   >>> latin.numeric\n   '215'\n\n***********************\n Currencies (ISO 4217)\n***********************\n\nThe currencies database is, again, similar to the ones before:\n\n.. code:: pycon\n\n   >>> len(pycountry.currencies)\n   182\n   >>> list(pycountry.currencies)[0]\n   Currency(alpha_3='AED', name='UAE Dirham', numeric='784')\n   >>> argentine_peso = pycountry.currencies.get(alpha_3='ARS')\n   >>> argentine_peso\n   Currency(alpha_3='ARS', name='Argentine Peso', numeric='032')\n   >>> argentine_peso.alpha_3\n   'ARS'\n   >>> argentine_peso.name\n   'Argentine Peso'\n   >>> argentine_peso.numeric\n   '032'\n\n***********************\n Languages (ISO 639-3)\n***********************\n\nThe languages database is similar too:\n\n.. code:: pycon\n\n   >>> len(pycountry.languages)\n   7874\n   >>> list(pycountry.languages)[0]\n   Language(alpha_3='aaa', name='Ghotuo', scope='I', type='L')\n\n   >>> aragonese = pycountry.languages.get(alpha_2='an')\n   >>> aragonese.alpha_2\n   'an'\n   >>> aragonese.alpha_3\n   'arg'\n   >>> aragonese.name\n   'Aragonese'\n\n   >>> bengali = pycountry.languages.get(alpha_2='bn')\n   >>> bengali.name\n   'Bengali'\n   >>> bengali.common_name\n   'Bangla'\n\n*********\n Locales\n*********\n\nLocales are available in the ``pycountry.LOCALES_DIR`` subdirectory of\nthis package. The translation domains are called ``isoXXX`` according to\nthe standard they provide translations for. The directory is structured\nin a way compatible to Python's gettext module.\n\nHere is an example translating language names:\n\n.. code:: pycon\n\n   >>> import gettext\n   >>> german = gettext.translation('iso3166-1', pycountry.LOCALES_DIR,\n   ...                              languages=['de'])\n   >>> german.install()\n   >>> _('Germany')\n   'Deutschland'\n\n*********\n Lookups\n*********\n\nFor each database (countries, languages, scripts, etc.), you can also\nlook up entities case insensitively without knowing which key the value\nmay match. For example:\n\n.. code:: pycon\n\n   >>> pycountry.countries.lookup('de')\n   <pycountry.db.Country object at 0x...>\n\nThe search ends with the first match, which is returned.\n\n********************\n Dict Compatibility\n********************\n\nYou can cast each object type into a ``dict``:\n\n.. code:: pycon\n\n   >>> country = pycountry.countries.lookup('de')\n   >>> dict(country)\n   {'alpha_2': 'DE', 'name': 'Germany', ...}\n\n******************\n Custom Countries\n******************\n\nWhile pycountry will not be adding non-ISO values to its standard\nlibrary, you can add or remove entries at runtime to fit your needs.\n\nAdd a non-ISO country:\n\n.. code:: pycon\n\n   >>> pycountry.countries.add_entry(alpha_2=\"XK\", alpha_3=\"XXK\", name=\"Kosovo\", numeric=\"926\")\n\nRemove a country from a database:\n\n.. code:: pycon\n\n   >>> pycountry.countries.remove_entry(alpha_2=\"XK\")\n\n***************************\n PyInstaller Compatibility\n***************************\n\nSome users have reported issues using PyCountry with PyInstaller\nguidance on how to handle the issues can be found in the `PyInstaller\nGoogle Group\n<https://groups.google.com/g/pyinstaller/c/OYhJdeZ9010/m/vLhYAWUzAQAJ>`_.\n",
    "bugtrack_url": null,
    "license": "LGPL-2.1-only",
    "summary": "ISO country, subdivision, language, currency and script definitions and their translations",
    "version": "24.6.1",
    "project_urls": {
        "Homepage": "https://github.com/flyingcircusio/pycountry",
        "Repository": "https://github.com/flyingcircusio/pycountry"
    },
    "split_keywords": [
        "country",
        " subdivision",
        " language",
        " currency",
        " iso",
        " 3166",
        " 639",
        " 4217",
        " 15924",
        " 3166-1",
        " 3166-2",
        " 3166-3"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1ec1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492",
                "md5": "44f70d5f9e25a62ee3070192d364781b",
                "sha256": "f1a4fb391cd7214f8eefd39556d740adcc233c778a27f8942c8dca351d6ce06f"
            },
            "downloads": -1,
            "filename": "pycountry-24.6.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "44f70d5f9e25a62ee3070192d364781b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6335189,
            "upload_time": "2024-06-01T04:11:49",
            "upload_time_iso_8601": "2024-06-01T04:11:49.711866Z",
            "url": "https://files.pythonhosted.org/packages/b1/ec/1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492/pycountry-24.6.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7657c389fa68c50590881a75b7883eeb3dc15e9e73a0fdc001cdd45c13290c92",
                "md5": "61111cc27f09e44aa3bace260a8b3089",
                "sha256": "b61b3faccea67f87d10c1f2b0fc0be714409e8fcdcc1315613174f6466c10221"
            },
            "downloads": -1,
            "filename": "pycountry-24.6.1.tar.gz",
            "has_sig": false,
            "md5_digest": "61111cc27f09e44aa3bace260a8b3089",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 6043910,
            "upload_time": "2024-06-01T04:12:15",
            "upload_time_iso_8601": "2024-06-01T04:12:15.050148Z",
            "url": "https://files.pythonhosted.org/packages/76/57/c389fa68c50590881a75b7883eeb3dc15e9e73a0fdc001cdd45c13290c92/pycountry-24.6.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-01 04:12:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "flyingcircusio",
    "github_project": "pycountry",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "pycountry"
}
        
Elapsed time: 0.42148s