single |
###########
pycountry
###########
..
image:g:
https://travis-ci.org/flyingcircusio/pycountry.svg?branch=master
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.
******************************
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] 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
], 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')
|