| single |
###########
pycountry
###########
pycountry provides the ISO databases for the standards:
- `639-3 `_ Languages
- [3166] Codes for
representation of names of countries and their subdivisions
- `3166-1 `_ Countries
- `3166-3 `_ Deleted
countries
- `3166-2 `_ Subdivisions of
countries
- [4217] Currencies
- [15924] Scripts
The package includes a copy from Debian's `pkg-isocodes
`_ 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.
***************
Contributions
***************
The code lives in a [git repository on GitHub
], 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='AW', alpha_3='ABW', flag='๐ฆ๐ผ', name='Aruba',
numeric='533')
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', flag='๐ฉ๐ช', 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', flag='๐ฌ๐ง', 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', flag='๐จ๐ฎ', name="Cรดte
d'Ivoire", numeric='384', official_name="Republic of Cรดte d'Ivoire"),
Country(alpha_2='FR', alpha_3='FRA', flag='๐ซ๐ท', name='France',
numeric='250', official_name='French Republic'),
Country(alpha_2='HN', alpha_3='HND', flag='๐ญ๐ณ', 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
|