"""Currencies """ from waeup.ikoba.interfaces import MessageFactory as _ from waeup.ikoba.interfaces import SimpleIkobaVocabulary #: Currencies according to ISO 4217 #: #: Compiled from: #: http://www.currency-iso.org/dam/downloads/table_a1.xml #: Entries without decimal units (such as funds or not officially #: traded currencies) were removed. #: #: Data published: 2014-08-15 #: #: Keys are the currency codes (as given by ISO) #: Entries have four items: #: 0: Authority maintaining the currency (normally a country) #: 1: Name of currency #: 2: Number of decimals after decimal separator #: 3: Currency nuber in ISO listing #: ISO_4217_CURRENCIES = { 'AED': ('UNITED ARAB EMIRATES', _('UAE Dirham'), 2, '784'), 'AFN': ('AFGHANISTAN', _('Afghani'), 2, '971'), 'ALL': ('ALBANIA', _('Lek'), 2, '008'), 'AMD': ('ARMENIA', _('Armenian Dram'), 2, '051'), 'ANG': ('SINT MAARTEN (DUTCH PART)', _('Netherlands Antillean Guilder'), 2, '532'), 'AOA': ('ANGOLA', _('Kwanza'), 2, '973'), 'ARS': ('ARGENTINA', _('Argentine Peso'), 2, '032'), 'AUD': ('TUVALU', _('Australian Dollar'), 2, '036'), 'AWG': ('ARUBA', _('Aruban Florin'), 2, '533'), 'AZN': ('AZERBAIJAN', _('Azerbaijanian Manat'), 2, '944'), 'BAM': ('BOSNIA AND HERZEGOVINA', _('Convertible Mark'), 2, '977'), 'BBD': ('BARBADOS', _('Barbados Dollar'), 2, '052'), 'BDT': ('BANGLADESH', _('Taka'), 2, '050'), 'BGN': ('BULGARIA', _('Bulgarian Lev'), 2, '975'), 'BHD': ('BAHRAIN', _('Bahraini Dinar'), 3, '048'), 'BIF': ('BURUNDI', _('Burundi Franc'), 0, '108'), 'BMD': ('BERMUDA', _('Bermudian Dollar'), 2, '060'), 'BND': ('BRUNEI DARUSSALAM', _('Brunei Dollar'), 2, '096'), 'BOB': ('BOLIVIA, PLURINATIONAL STATE OF', _('Boliviano'), 2, '068'), 'BOV': ('BOLIVIA, PLURINATIONAL STATE OF', _('Mvdol'), 2, '984'), 'BRL': ('BRAZIL', _('Brazilian Real'), 2, '986'), 'BSD': ('BAHAMAS', _('Bahamian Dollar'), 2, '044'), 'BTN': ('BHUTAN', _('Ngultrum'), 2, '064'), 'BWP': ('BOTSWANA', _('Pula'), 2, '072'), 'BYR': ('BELARUS', _('Belarussian Ruble'), 0, '974'), 'BZD': ('BELIZE', _('Belize Dollar'), 2, '084'), 'CAD': ('CANADA', _('Canadian Dollar'), 2, '124'), 'CDF': ('CONGO, DEMOCRATIC REPUBLIC OF THE ', _('Congolese Franc'), 2, '976'), 'CHE': ('SWITZERLAND', _('WIR Euro'), 2, '947'), 'CHF': ('SWITZERLAND', _('Swiss Franc'), 2, '756'), 'CHW': ('SWITZERLAND', _('WIR Franc'), 2, '948'), 'CLF': ('CHILE', _('Unidad de Fomento'), 4, '990'), 'CLP': ('CHILE', _('Chilean Peso'), 0, '152'), 'CNY': ('CHINA', _('Yuan Renminbi'), 2, '156'), 'COP': ('COLOMBIA', _('Colombian Peso'), 2, '170'), 'COU': ('COLOMBIA', _('Unidad de Valor Real'), 2, '970'), 'CRC': ('COSTA RICA', _('Costa Rican Colon'), 2, '188'), 'CUC': ('CUBA', _('Peso Convertible'), 2, '931'), 'CUP': ('CUBA', _('Cuban Peso'), 2, '192'), 'CVE': ('CABO VERDE', _('Cabo Verde Escudo'), 2, '132'), 'CZK': ('CZECH REPUBLIC', _('Czech Koruna'), 2, '203'), 'DJF': ('DJIBOUTI', _('Djibouti Franc'), 0, '262'), 'DKK': ('GREENLAND', _('Danish Krone'), 2, '208'), 'DOP': ('DOMINICAN REPUBLIC', _('Dominican Peso'), 2, '214'), 'DZD': ('ALGERIA', _('Algerian Dinar'), 2, '012'), 'EGP': ('EGYPT', _('Egyptian Pound'), 2, '818'), 'ERN': ('ERITREA', _('-Nakfa'), 2, '232'), 'ETB': ('ETHIOPIA', _('Ethiopian Birr'), 2, '230'), 'EUR': ('SPAIN', _('Euro'), 2, '978'), 'FJD': ('FIJI', _('Fiji Dollar'), 2, '242'), 'FKP': ('FALKLAND ISLANDS (MALVINAS)', _('Falkland Islands Pound'), 2, '238'), 'GBP': ('UNITED KINGDOM', _('Pound Sterling'), 2, '826'), 'GEL': ('GEORGIA', _('Lari'), 2, '981'), 'GHS': ('GHANA', _('Ghana Cedi'), 2, '936'), 'GIP': ('GIBRALTAR', _('Gibraltar Pound'), 2, '292'), 'GMD': ('GAMBIA', _('Dalasi'), 2, '270'), 'GNF': ('GUINEA', _('Guinea Franc'), 0, '324'), 'GTQ': ('GUATEMALA', _('Quetzal'), 2, '320'), 'GYD': ('GUYANA', _('Guyana Dollar'), 2, '328'), 'HKD': ('HONG KONG', _('Hong Kong Dollar'), 2, '344'), 'HNL': ('HONDURAS', _('Lempira'), 2, '340'), 'HRK': ('CROATIA', _('Croatian Kuna'), 2, '191'), 'HTG': ('HAITI', _('Gourde'), 2, '332'), 'HUF': ('HUNGARY', _('Forint'), 2, '348'), 'IDR': ('INDONESIA', _('Rupiah'), 2, '360'), 'ILS': ('ISRAEL', _('New Israeli Sheqel'), 2, '376'), 'INR': ('INDIA', _('Indian Rupee'), 2, '356'), 'IQD': ('IRAQ', _('Iraqi Dinar'), 3, '368'), 'IRR': ('IRAN, ISLAMIC REPUBLIC OF', _('Iranian Rial'), 2, '364'), 'ISK': ('ICELAND', _('Iceland Krona'), 0, '352'), 'JMD': ('JAMAICA', _('Jamaican Dollar'), 2, '388'), 'JOD': ('JORDAN', _('Jordanian Dinar'), 3, '400'), 'JPY': ('JAPAN', _('Yen'), 0, '392'), 'KES': ('KENYA', _('Kenyan Shilling'), 2, '404'), 'KGS': ('KYRGYZSTAN', _('Som'), 2, '417'), 'KHR': ('CAMBODIA', _('Riel'), 2, '116'), 'KMF': ('COMOROS', _('Comoro Franc'), 0, '174'), 'KPW': (u"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF", _('North Korean Won'), 2, '408'), 'KRW': ('KOREA, REPUBLIC OF', _('Won'), 0, '410'), 'KWD': ('KUWAIT', _('Kuwaiti Dinar'), 3, '414'), 'KYD': ('CAYMAN ISLANDS', _('Cayman Islands Dollar'), 2, '136'), 'KZT': ('KAZAKHSTAN', _('Tenge'), 2, '398'), 'LAK': (u"LAO PEOPLE'S DEMOCRATIC REPUBLIC", _('Kip'), 2, '418'), 'LBP': ('LEBANON', _('Lebanese Pound'), 2, '422'), 'LKR': ('SRI LANKA', _('Sri Lanka Rupee'), 2, '144'), 'LRD': ('LIBERIA', _('Liberian Dollar'), 2, '430'), 'LSL': ('LESOTHO', _('Loti'), 2, '426'), 'LTL': ('LITHUANIA', _('Lithuanian Litas'), 2, '440'), 'LYD': ('LIBYA', _('Libyan Dinar'), 3, '434'), 'MAD': ('WESTERN SAHARA', _('Moroccan Dirham'), 2, '504'), 'MDL': ('MOLDOVA, REPUBLIC OF', _('Moldovan Leu'), 2, '498'), 'MGA': ('MADAGASCAR', _('Malagasy Ariary'), 2, '969'), 'MKD': ('MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', _('Denar'), 2, '807'), 'MMK': ('MYANMAR', _('Kyat'), 2, '104'), 'MNT': ('MONGOLIA', _('Tugrik'), 2, '496'), 'MOP': ('MACAO', _('Pataca'), 2, '446'), 'MRO': ('MAURITANIA', _('Ouguiya'), 2, '478'), 'MUR': ('MAURITIUS', _('Mauritius Rupee'), 2, '480'), 'MVR': ('MALDIVES', _('Rufiyaa'), 2, '462'), 'MWK': ('MALAWI', _('Kwacha'), 2, '454'), 'MXN': ('MEXICO', _('Mexican Peso'), 2, '484'), 'MXV': ('MEXICO', _('Mexican Unidad de Inversion (UDI)'), 2, '979'), 'MYR': ('MALAYSIA', _('Malaysian Ringgit'), 2, '458'), 'MZN': ('MOZAMBIQUE', _('Mozambique Metical'), 2, '943'), 'NAD': ('NAMIBIA', _('Namibia Dollar'), 2, '516'), 'NGN': ('NIGERIA', _('Naira'), 2, '566'), 'NIO': ('NICARAGUA', _('Cordoba Oro'), 2, '558'), 'NOK': ('SVALBARD AND JAN MAYEN', _('Norwegian Krone'), 2, '578'), 'NPR': ('NEPAL', _('Nepalese Rupee'), 2, '524'), 'NZD': ('TOKELAU', _('New Zealand Dollar'), 2, '554'), 'OMR': ('OMAN', _('Rial Omani'), 3, '512'), 'PAB': ('PANAMA', _('Balboa'), 2, '590'), 'PEN': ('PERU', _('Nuevo Sol'), 2, '604'), 'PGK': ('PAPUA NEW GUINEA', _('Kina'), 2, '598'), 'PHP': ('PHILIPPINES', _('Philippine Peso'), 2, '608'), 'PKR': ('PAKISTAN', _('Pakistan Rupee'), 2, '586'), 'PLN': ('POLAND', _('Zloty'), 2, '985'), 'PYG': ('PARAGUAY', _('Guarani'), 0, '600'), 'QAR': ('QATAR', _('Qatari Rial'), 2, '634'), 'RON': ('ROMANIA', _('New Romanian Leu'), 2, '946'), 'RSD': ('SERBIA', _('Serbian Dinar'), 2, '941'), 'RUB': ('RUSSIAN FEDERATION', _('Russian Ruble'), 2, '643'), 'RWF': ('RWANDA', _('Rwanda Franc'), 0, '646'), 'SAR': ('SAUDI ARABIA', _('Saudi Riyal'), 2, '682'), 'SBD': ('SOLOMON ISLANDS', _('Solomon Islands Dollar'), 2, '090'), 'SCR': ('SEYCHELLES', _('Seychelles Rupee'), 2, '690'), 'SDG': ('SUDAN', _('Sudanese Pound'), 2, '938'), 'SEK': ('SWEDEN', _('Swedish Krona'), 2, '752'), 'SGD': ('SINGAPORE', _('Singapore Dollar'), 2, '702'), 'SHP': ('SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA', _('Saint Helena Pound'), 2, '654'), 'SLL': ('SIERRA LEONE', _('Leone'), 2, '694'), 'SOS': ('SOMALIA', _('Somali Shilling'), 2, '706'), 'SRD': ('SURINAME', _('Surinam Dollar'), 2, '968'), 'SSP': ('SOUTH SUDAN', _('South Sudanese Pound'), 2, '728'), 'STD': ('SAO TOME AND PRINCIPE', _('Dobra'), 2, '678'), 'SVC': ('EL SALVADOR', _('El Salvador Colon'), 2, '222'), 'SYP': ('SYRIAN ARAB REPUBLIC', _('Syrian Pound'), 2, '760'), 'SZL': ('SWAZILAND', _('Lilangeni'), 2, '748'), 'THB': ('THAILAND', _('Baht'), 2, '764'), 'TJS': ('TAJIKISTAN', _('Somoni'), 2, '972'), 'TMT': ('TURKMENISTAN', _('Turkmenistan New Manat'), 2, '934'), 'TND': ('TUNISIA', _('Tunisian Dinar'), 3, '788'), 'TOP': ('TONGA', _(u"Pa'anga"), 2, '776'), 'TRY': ('TURKEY', _('Turkish Lira'), 2, '949'), 'TTD': ('TRINIDAD AND TOBAGO', _('Trinidad and Tobago Dollar'), 2, '780'), 'TWD': ('TAIWAN, PROVINCE OF CHINA', _('New Taiwan Dollar'), 2, '901'), 'TZS': ('TANZANIA, UNITED REPUBLIC OF', _('Tanzanian Shilling'), 2, '834'), 'UAH': ('UKRAINE', _('Hryvnia'), 2, '980'), 'UGX': ('UGANDA', _('Uganda Shilling'), 0, '800'), 'USD': ('VIRGIN ISLANDS (U.S.)', _('US Dollar'), 2, '840'), 'USN': ('UNITED STATES', _('US Dollar (Next day)'), 2, '997'), 'UYI': ('URUGUAY', _('Uruguay Peso en Unidades Indexadas (URUIURUI)'), 0, '940'), 'UYU': ('URUGUAY', _('Peso Uruguayo'), 2, '858'), 'UZS': ('UZBEKISTAN', _('Uzbekistan Sum'), 2, '860'), 'VEF': ('VENEZUELA, BOLIVARIAN REPUBLIC OF', _('Bolivar'), 2, '937'), 'VND': ('VIET NAM', _('Dong'), 0, '704'), 'VUV': ('VANUATU', _('Vatu'), 0, '548'), 'WST': ('SAMOA', _('Tala'), 2, '882'), 'XAF': ('GABON', _('CFA Franc BEAC'), 0, '950'), 'XCD': ('SAINT VINCENT AND THE GRENADINES', _('East Caribbean Dollar'), 2, '951'), 'XOF': ('TOGO', _('CFA Franc BCEAO'), 0, '952'), 'XPF': ('WALLIS AND FUTUNA', _('CFP Franc'), 0, '953'), 'YER': ('YEMEN', _('Yemeni Rial'), 2, '886'), 'ZAR': ('SOUTH AFRICA', _('Rand'), 2, '710'), 'ZMW': ('ZAMBIA', _('Zambian Kwacha'), 2, '967'), 'ZWL': ('ZIMBABWE', _('Zimbabwe Dollar'), 2, '932') } def get_decimal_units(currency_code): """Get the number of decimals after decimal separator for a currency. Pass in a three-letter currency code. Returns a number. """ return ISO_4217_CURRENCIES[currency_code][2] #: A vocabulary of ISO 4217 currencies ISO_4217_CURRENCIES_VOCAB = SimpleIkobaVocabulary( *[(val[1], key) for key, val in ISO_4217_CURRENCIES.items()])