ISO country, subdivision, language, currency and script definitions and their translations
Project description
pycountry provides the ISO databases for the standards:
- 639
Languages
- 3166
Countries
- 3166-2
Subdivisions of countries (NOT IMPLEMENTED YET)
- 4217
Currencies
- 15924
Scripts
The databases are imported from Debian’s pkg-isocodes and made accessible through a Python API.
Translation files for the various strings are included as well.
Countries (ISO 3166)
Countries are accessible through a database object that is already configured upon import of pycountry and works as an iterable:
>>> import pycountry >>> len(pycountry.countries) 246 >>> list(pycountry.countries)[0] <pycountry.db.Country object at 0x...>
Specific countries can be looked up by their various codes and provide the information included in the standard as attributes:
>>> germany = pycountry.countries.get(alpha2='DE') >>> germany <pycountry.db.Country object at 0x...> >>> germany.alpha2 'DE' >>> germany.alpha3 'DEU' >>> germany.numeric '276' >>> germany.name 'Germany' >>> germany.official_name 'Federal Republic of Germany'
Note that historic countries, defined by the ISO 3166-3 sub-standard are not included in this list.
Scripts (ISO 15924)
Scripts are available from a database similar to the countries:
>>> len(pycountry.scripts) 131 >>> list(pycountry.scripts)[0] <pycountry.db.Script object at 0x...>>>> latin = pycountry.scripts.get(name='Latin') >>> latin <pycountry.db.Script object at 0x...> >>> latin.alpha4 'Latn' >>> latin.name 'Latin' >>> latin.numeric '215'
Currencies (ISO 4217)
The currencies database is, again, similar to the ones before:
>>> len(pycountry.currencies) 183 >>> list(pycountry.currencies)[0] <pycountry.db.Currency object at 0x...>>>> argentine_peso = pycountry.currencies.get(letter='ARS') >>> argentine_peso <pycountry.db.Currency object at 0x...> >>> argentine_peso.letter 'ARS' >>> argentine_peso.name 'Argentine Peso' >>> argentine_peso.numeric '032'
Languages (ISO 639)
The languages database is similar too:
>>> len(pycountry.languages) 486 >>> list(pycountry.languages)[0] <pycountry.db.Language object at 0x...>>>> aragonese = pycountry.languages.get(alpha2='an') >>> aragonese.alpha2 'an' >>> aragonese.bibliographic 'arg' >>> aragonese.terminology 'arg' >>> aragonese.name 'Aragonese'
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:
>>> import gettext >>> german = gettext.translation('iso3166', pycountry.LOCALES_DIR, ... languages=['de']) >>> german.install() >>> _('Germany') 'Deutschland'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pycountry-0.9.tar.gz
.
File metadata
- Download URL: pycountry-0.9.tar.gz
- Upload date:
- Size: 2.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dd01fe5432cab39c62f4841963879d00d8e61555db907bb86440f2953b67f4a |
|
MD5 | 2d5540a49b37a658f990dc46039b5191 |
|
BLAKE2b-256 | b72b9da73d76d549e84d09e7002efc759563db0ff6d7d03f2130e1a4be503f02 |