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