app/soc/models/countries.py
author Mario Ferraro <fadinlight@gmail.com>
Sun, 15 Nov 2009 22:12:20 +0100
changeset 3093 d1be59b6b627
parent 2862 27971a13089f
permissions -rw-r--r--
GMaps related JS changed to use new google namespace. Google is going to change permanently in the future the way to load its services, so better stay safe. Also this commit shows uses of the new melange.js module. Fixes Issue 634.

#!/usr/bin/python2.5
#
# Copyright 2008 the Melange authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Set of known *current* country and territory names.

Legacy (duplicate) names for some countries have been removed from the
original list.  Also missing are the following U.S. OFAC embargoed and
Commerce Department export-controlled countries:

  Cuba, Iran, Myanmar (formerly Burma), North Korea, Sudan, Syria
"""

__authors__ = [
  '"Daniel Hans" <daniel.m.hans@gmail.com>',
  '"Madhusudan.C.S" <madhusudancs@gmail.com>',
  '"Todd Larsen" <tlarsen@google.com>',
]

COUNTRY_INFO = {
    "Afghanistan, Islamic State of": ('.af', 'Asia'),
    "Albania": ('.al', 'Europe'),
    "Algeria": ('.dz', 'Africa'),
    "American Samoa": ('.as', 'Australia'),
    "Andorra, Principality of": ('.ad', 'Europe'),
    "Angola": ('.ao', 'Africa'),
    "Anguilla": ('.ai', 'North America'),
    "Antarctica": ('.aq', 'Europe'),
    "Antigua and Barbuda": ('.ag', 'North America'),
    "Argentina": ('.ar', 'South America'),
    "Armenia": ('.am', 'Asia'),
    "Aruba": ('.aw', 'North America'),
    "Australia": ('.au', 'Australia'),
    "Austria": ('.at', 'Europe'),
    "Azerbaidjan": ('.az', 'Asia'),
    "Bahamas": ('.bs', 'North America'),
    "Bahrain": ('.bh', 'Asia'),
    "Bangladesh": ('.bd', 'Asia'),
    "Barbados": ('.bb', 'North America'),
    "Belarus": ('.by', 'Europe'),
    "Belgium": ('.be', 'Europe'),
    "Belize": ('.bz', 'North America'),
    "Benin": ('.bj', 'Africa'),
    "Bermuda": ('.bm', 'North America'),
    "Bhutan": ('.bt', 'Asia'),
    "Bolivia": ('.bo', 'South America'),
    "Bosnia-Herzegovina": ('.ba', 'Europe'),
    "Botswana": ('.bw', 'Africa'),
    "Bouvet Island": ('.bv', 'Europe'),
    "Brazil": ('.br', 'South America'),
    "British Indian Ocean Territory": ('.io', 'Asia'),
    "Brunei Darussalam": ('.bn', 'Asia'),
    "Bulgaria": ('', 'Europe'),
    "Burkina Faso": ('.bg', 'Africa'),
    "Burundi": ('.bi', 'Africa'),
    "Cambodia, Kingdom of": ('.kh', 'Asia'),
    "Cameroon": ('.cm', 'Africa'),
    "Canada": ('.ca', 'North America'),
    "Cape Verde": ('.cv', 'Africa'),
    "Cayman Islands": ('.ky', 'North America'),
    "Central African Republic": ('.cf', 'Africa'),
    "Chad": ('.td', 'Africa'),
    "Chile": ('.cl', 'South America'),
    "China": ('.cn', 'Asia'),
    "Christmas Island": ('.cx', 'Australia'),
    "Cocos (Keeling) Islands": ('.cc', 'Australia'),
    "Colombia": ('.co', 'South America'),
    "Comoros": ('.km', 'Africa'),
    "Congo": ('.cg', 'Africa'),
    "Congo, Democratic Republic of the": ('.cd', 'Africa'),
    "Cook Islands": ('.ck', 'Australia'),
    "Costa Rica": ('.cr', 'North America'),
    "Croatia": ('.hr', 'Europe'),
    "Cyprus": ('.cy', 'Asia'),
    "Czech Republic": ('.cz', 'Europe'),
    "Denmark": ('.dk', 'Europe'),
    "Djibouti": ('.dj', 'Africa'),
    "Dominica": ('.dm', 'North America'),
    "Dominican Republic": ('.do', 'North America'),
    "East Timor": ('.tl', 'Asia'),
    "Ecuador": ('.ec', 'South America'),
    "Egypt": ('.eg', 'Africa'),
    "El Salvador": ('.sv', 'North America'),
    "Equatorial Guinea": ('.gq', 'Africa'),
    "Eritrea": ('.er', 'Africa'),
    "Estonia": ('.ee', 'Europe'),
    "Ethiopia": ('.et', 'Africa'),
    "Falkland Islands": ('.fk', 'South America'),
    "Faroe Islands": ('.fo', 'Europe'),
    "Fiji": ('.fj', 'Australia'),
    "Finland": ('.fi', 'Europe'),
    "France": ('.fr', 'Europe'),
    "French Guyana": ('.gf', 'South America'),
    "French Southern Territories": ('.tf', 'Africa'),
    "Gabon": ('.ga', 'Africa'),
    "Gambia": ('.gm', 'Africa'),
    "Georgia": ('.ge', 'Asia'),
    "Germany": ('.de', 'Europe'),
    "Ghana": ('.gh', 'Africa'),
    "Gibraltar": ('.gi', 'Europe'),
    "Greece": ('.gr', 'Europe'),
    "Greenland": ('.gl', 'North America'),
    "Grenada": ('.gd', 'North America'),
    "Guadeloupe (French)": ('.gp', 'North America'),
    "Guam (USA)": ('.gu', 'Australia'),
    "Guatemala": ('.gt', 'North America'),
    "Guinea": ('.gn', 'Africa'),
    "Guinea Bissau": ('.gw', 'Africa'),
    "Guyana": ('.gy', 'South America'),
    "Haiti": ('.ht', 'North America'),
    "Heard and McDonald Islands": ('.hm', 'Australia'),
    "Holy See (Vatican City State)": ('.va', 'Europe'),
    "Honduras": ('.hn', 'North America'),
    "Hong Kong": ('.hk', 'Asia'),
    "Hungary": ('.hu', 'Europe'),
    "Iceland": ('.is', 'Europe'),
    "India": ('.in', 'Asia'),
    "Indonesia": ('.id', 'Asia'),
    "Iraq": ('.iq', 'Asia'),
    "Ireland": ('.ie', 'Europe'),
    "Israel": ('.il', 'Asia'),
    "Italy": ('.it', 'Europe'),
    "Ivory Coast (Cote D'Ivoire)": ('.ci', 'Africa'),
    "Jamaica": ('.jm', 'North America'),
    "Japan": ('.jp', 'Asia'),
    "Jordan": ('.jo', 'Asia'),
    "Kazakhstan": ('.kz', 'Asia'),
    "Kenya": ('.ke', 'Africa'),
    "Kiribati": ('.ki', 'Australia'),
    "Kuwait": ('.kw', 'Asia'),
    "Kyrgyz Republic (Kyrgyzstan)": ('.kg', 'Asia'),
    "Laos": ('.la', 'Asia'),
    "Latvia": ('.lv', 'Europe'),
    "Lebanon": ('.lb', 'Asia'),
    "Lesotho": ('.ls', 'Africa'),
    "Liberia": ('.lr', 'Africa'),
    "Libya": ('.ly', 'Africa'),
    "Liechtenstein": ('.li', 'Europe'),
    "Lithuania": ('.lt', 'Europe'),
    "Luxembourg": ('.lu', 'Europe'),
    "Macau": ('.mo', 'Asia'),
    "Macedonia": ('.mk', 'Europe'),
    "Madagascar": ('.mg', 'Africa'),
    "Malawi": ('.mw', 'Africa'),
    "Malaysia": ('.my', 'Asia'),
    "Maldives": ('.mv', 'Asia'),
    "Mali": ('.ml', 'Africa'),
    "Malta": ('.mt', 'Europe'),
    "Marshall Islands": ('.mh', 'Australia'),
    "Martinique (French)": ('.mq', 'North America'),
    "Mauritania": ('.mr', 'Africa'),
    "Mauritius": ('.mu', 'Africa'),
    "Mayotte": ('.yt', 'Africa'),
    "Mexico": ('.mx', 'North America'),
    "Micronesia": ('.fm', 'Australia'),
    "Moldavia": ('.md', 'Europe'),
    "Monaco": ('.mc', 'Europe'),
    "Mongolia": ('.mn', 'Asia'),
    "Montenegro": ('.me', 'Europe'),
    "Montserrat": ('.ms', 'North America'),
    "Morocco": ('.ma', 'Africa'),
    "Mozambique": ('.mz', 'Africa'),
    "Namibia": ('.na', 'Africa'),
    "Nauru": ('.nr', 'Australia'),
    "Nepal": ('.np', 'Asia'),
    "Netherlands": ('.nl', 'Europe'),
    "Netherlands Antilles": ('.an', 'North America'),
    "New Caledonia (French)": ('.nc', 'Australia'),
    "New Zealand": ('.nz', 'Australia'),
    "Nicaragua": ('.ni', 'North America'),
    "Niger": ('.ne', 'Africa'),
    "Nigeria": ('.ng', 'Africa'),
    "Niue": ('.nu', 'Australia'),
    "Northern Mariana Islands": ('.mp', 'Australia'),
    "Norway": ('.no', 'Europe'),
    "Oman": ('.om', 'Asia'),
    "Pakistan": ('.pk', 'Asia'),
    "Palau": ('.pw', 'Australia'),
    "Palestinian Territories": ('.ps', 'Asia'),
    "Panama": ('.pa', 'North America'),
    "Papua New Guinea": ('.pg', 'Australia'),
    "Paraguay": ('.py', 'South America'),
    "Peru": ('.pe', 'South America'),
    "Philippines": ('.ph', 'Asia'),
    "Pitcairn Island": ('.pn', 'South America'),
    "Poland": ('.pl', 'Europe'),
    "Polynesia (French)": ('.pf', 'Australia'),
    "Portugal": ('.pt', 'Europe'),
    "Puerto Rico": ('.pr', 'North America'),
    "Qatar": ('.qa', 'Asia'),
    "Reunion (French)": ('.re', 'Africa'),
    "Romania": ('.ro', 'Europe'),
    "Russian Federation": ('.ru', 'Europe'),
    "Rwanda": ('.rw', 'Africa'),
    "South Georgia & South Sandwich Islands": ('.gs', 'South America'),
    "Saint Helena": ('.sh', 'Africa'),
    "Saint Kitts & Nevis Anguilla": ('.kn', 'North America'),
    "Saint Lucia": ('.lc', 'North America'),
    "Saint Pierre and Miquelon": ('.pm', 'North America'),
    "Saint Tome (Sao Tome) and Principe": ('.st', 'Africa'),
    "Saint Vincent & Grenadines": ('.vc', 'North America'),
    "Samoa": ('.ws', 'Australia'),
    "San Marino": ('.sm', 'Europe'),
    "Saudi Arabia": ('.sa', 'Asia'),
    "Senegal": ('.sn', 'Africa'),
    "Serbia": ('.rs', 'Europe'),
    "Seychelles": ('.sc', 'Africa'),
    "Sierra Leone": ('.sl', 'Africa'),
    "Singapore": ('.sg', 'Asia'),
    "Slovak Republic": ('.sk', 'Europe'),
    "Slovenia": ('.si', 'Europe'),
    "Solomon Islands": ('.sb', 'Australia'),
    "Somalia": ('.so', 'Africa'),
    "South Africa": ('.za', 'Africa'),
    "South Korea": ('.kr', 'Asia'),
    "Spain": ('.es', 'Europe'),
    "Sri Lanka": ('.lk', 'Asia'),
    "Suriname": ('.sr', 'South America'),
    "Svalbard and Jan Mayen Islands": ('.sj', 'Europe'),
    "Swaziland": ('.sz', 'Africa'),
    "Sweden": ('.se', 'Europe'),
    "Switzerland": ('.ch', 'Europe'),
    "Tadjikistan": ('.tj', 'Asia'),
    "Taiwan": ('.tw', 'Asia'),
    "Tanzania": ('.tz', 'Africa'),
    "Thailand": ('.th', 'Asia'),
    "Togo": ('.tg', 'Africa'),
    "Tokelau": ('.tk', 'Australia'),
    "Tonga": ('.to', 'Australia'),
    "Trinidad and Tobago": ('.tt', 'North America'),
    "Tunisia": ('.tn', 'Africa'),
    "Turkey": ('.tr', 'Asia'),
    "Turkmenistan": ('.tm', 'Asia'),
    "Turks and Caicos Islands": ('.tc', 'North America'),
    "Tuvalu": ('.tv', 'Australia'),
    "USA Minor Outlying Islands": ('.um', 'North America'),
    "Uganda": ('.ug', 'Africa'),
    "Ukraine": ('.ua', 'Europe'),
    "United Arab Emirates": ('.ae', 'Asia'),
    "United Kingdom": ('.uk', 'Europe'),
    "United States": ('.us', 'North America'),
    "Uruguay": ('.uy', 'South America'),
    "Uzbekistan": ('.uz', 'Asia'),
    "Vanuatu": ('.vu', 'Australia'),
    "Venezuela": ('.ve', 'South America'),
    "Vietnam": ('.vn', 'Asia'),
    "Virgin Islands (British)": ('.vg', 'North America'),
    "Virgin Islands (USA)": ('.vi', 'North America'),
    "Wallis and Futuna Islands": ('.wf', 'Australia'),
    "Western Sahara": ('.eh', 'Africa'),
    "Yemen": ('.ye', 'Asia'),
    "Zambia": ('.zm', 'Africa'),
    "Zimbabwe": ('.zw', 'Africa'),
    }

# List of all countries and territories
COUNTRIES_AND_TERRITORIES = sorted(COUNTRY_INFO.keys())

# Mapping of countries to their CCTLD
COUNTRIES_TO_CCTLD = dict((k, c) for k, (c, _) in COUNTRY_INFO.items()) 

# Mapping of countries to their continent
COUNTRIES_TO_CONTINENT = dict((k, c) for k, (_, c) in COUNTRY_INFO.items())