From f02f9dd446dfc57d90c55149822932bc236a6a5c Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Wed, 2 May 2012 11:23:51 -0500 Subject: Add continent by country lookup Signed-off-by: Dan McGee --- mirrors/continents.py | 286 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 mirrors/continents.py diff --git a/mirrors/continents.py b/mirrors/continents.py new file mode 100644 index 00000000..20df40f8 --- /dev/null +++ b/mirrors/continents.py @@ -0,0 +1,286 @@ +''' +Contains a list of (continent_code, country_code) tuples. Note that neither +side is unique as some countries are considered to be in multiple contentents. + +Source: +http://en.wikipedia.org/wiki/List_of_sovereign_states_and_dependent_territories_by_continent_%28data_file%29 +''' + +CONTINENTS = { + 'AF': 'Africa', + 'AS': 'Asia', + 'EU': 'Europe', + 'NA': 'North America', + 'SA': 'South America', + 'OC': 'Oceania', + 'AN': 'Antarctica', +} + +CONTINENT_COUNTRIES = ( + ('AS', 'AF'), + ('EU', 'AL'), + ('AN', 'AQ'), + ('AF', 'DZ'), + ('OC', 'AS'), + ('EU', 'AD'), + ('AF', 'AO'), + ('NA', 'AG'), + ('EU', 'AZ'), + ('AS', 'AZ'), + ('SA', 'AR'), + ('OC', 'AU'), + ('EU', 'AT'), + ('NA', 'BS'), + ('AS', 'BH'), + ('AS', 'BD'), + ('EU', 'AM'), + ('AS', 'AM'), + ('NA', 'BB'), + ('EU', 'BE'), + ('NA', 'BM'), + ('AS', 'BT'), + ('SA', 'BO'), + ('EU', 'BA'), + ('AF', 'BW'), + ('AN', 'BV'), + ('SA', 'BR'), + ('NA', 'BZ'), + ('AS', 'IO'), + ('OC', 'SB'), + ('NA', 'VG'), + ('AS', 'BN'), + ('EU', 'BG'), + ('AS', 'MM'), + ('AF', 'BI'), + ('EU', 'BY'), + ('AS', 'KH'), + ('AF', 'CM'), + ('NA', 'CA'), + ('AF', 'CV'), + ('NA', 'KY'), + ('AF', 'CF'), + ('AS', 'LK'), + ('AF', 'TD'), + ('SA', 'CL'), + ('AS', 'CN'), + ('AS', 'TW'), + ('AS', 'CX'), + ('AS', 'CC'), + ('SA', 'CO'), + ('AF', 'KM'), + ('AF', 'YT'), + ('AF', 'CG'), + ('AF', 'CD'), + ('OC', 'CK'), + ('NA', 'CR'), + ('EU', 'HR'), + ('NA', 'CU'), + ('EU', 'CY'), + ('AS', 'CY'), + ('EU', 'CZ'), + ('AF', 'BJ'), + ('EU', 'DK'), + ('NA', 'DM'), + ('NA', 'DO'), + ('SA', 'EC'), + ('NA', 'SV'), + ('AF', 'GQ'), + ('AF', 'ET'), + ('AF', 'ER'), + ('EU', 'EE'), + ('EU', 'FO'), + ('SA', 'FK'), + ('AN', 'GS'), + ('OC', 'FJ'), + ('EU', 'FI'), + ('EU', 'AX'), + ('EU', 'FR'), + ('SA', 'GF'), + ('OC', 'PF'), + ('AN', 'TF'), + ('AF', 'DJ'), + ('AF', 'GA'), + ('EU', 'GE'), + ('AS', 'GE'), + ('AF', 'GM'), + ('AS', 'PS'), + ('EU', 'DE'), + ('AF', 'GH'), + ('EU', 'GI'), + ('OC', 'KI'), + ('EU', 'GR'), + ('NA', 'GL'), + ('NA', 'GD'), + ('NA', 'GP'), + ('OC', 'GU'), + ('NA', 'GT'), + ('AF', 'GN'), + ('SA', 'GY'), + ('NA', 'HT'), + ('AN', 'HM'), + ('EU', 'VA'), + ('NA', 'HN'), + ('AS', 'HK'), + ('EU', 'HU'), + ('EU', 'IS'), + ('AS', 'IN'), + ('AS', 'ID'), + ('AS', 'IR'), + ('AS', 'IQ'), + ('EU', 'IE'), + ('AS', 'IL'), + ('EU', 'IT'), + ('AF', 'CI'), + ('NA', 'JM'), + ('AS', 'JP'), + ('EU', 'KZ'), + ('AS', 'KZ'), + ('AS', 'JO'), + ('AF', 'KE'), + ('AS', 'KP'), + ('AS', 'KR'), + ('AS', 'KW'), + ('AS', 'KG'), + ('AS', 'LA'), + ('AS', 'LB'), + ('AF', 'LS'), + ('EU', 'LV'), + ('AF', 'LR'), + ('AF', 'LY'), + ('EU', 'LI'), + ('EU', 'LT'), + ('EU', 'LU'), + ('AS', 'MO'), + ('AF', 'MG'), + ('AF', 'MW'), + ('AS', 'MY'), + ('AS', 'MV'), + ('AF', 'ML'), + ('EU', 'MT'), + ('NA', 'MQ'), + ('AF', 'MR'), + ('AF', 'MU'), + ('NA', 'MX'), + ('EU', 'MC'), + ('AS', 'MN'), + ('EU', 'MD'), + ('EU', 'ME'), + ('NA', 'MS'), + ('AF', 'MA'), + ('AF', 'MZ'), + ('AS', 'OM'), + ('AF', 'NA'), + ('OC', 'NR'), + ('AS', 'NP'), + ('EU', 'NL'), + ('NA', 'AN'), + ('NA', 'CW'), + ('NA', 'AW'), + ('NA', 'SX'), + ('NA', 'BQ'), + ('OC', 'NC'), + ('OC', 'VU'), + ('OC', 'NZ'), + ('NA', 'NI'), + ('AF', 'NE'), + ('AF', 'NG'), + ('OC', 'NU'), + ('OC', 'NF'), + ('EU', 'NO'), + ('OC', 'MP'), + ('OC', 'UM'), + ('NA', 'UM'), + ('OC', 'FM'), + ('OC', 'MH'), + ('OC', 'PW'), + ('AS', 'PK'), + ('NA', 'PA'), + ('OC', 'PG'), + ('SA', 'PY'), + ('SA', 'PE'), + ('AS', 'PH'), + ('OC', 'PN'), + ('EU', 'PL'), + ('EU', 'PT'), + ('AF', 'GW'), + ('AS', 'TL'), + ('NA', 'PR'), + ('AS', 'QA'), + ('AF', 'RE'), + ('EU', 'RO'), + ('EU', 'RU'), + ('AS', 'RU'), + ('AF', 'RW'), + ('NA', 'BL'), + ('AF', 'SH'), + ('NA', 'KN'), + ('NA', 'AI'), + ('NA', 'LC'), + ('NA', 'MF'), + ('NA', 'PM'), + ('NA', 'VC'), + ('EU', 'SM'), + ('AF', 'ST'), + ('AS', 'SA'), + ('AF', 'SN'), + ('EU', 'RS'), + ('AF', 'SC'), + ('AF', 'SL'), + ('AS', 'SG'), + ('EU', 'SK'), + ('AS', 'VN'), + ('EU', 'SI'), + ('AF', 'SO'), + ('AF', 'ZA'), + ('AF', 'ZW'), + ('EU', 'ES'), + ('AF', 'SS'), + ('AF', 'EH'), + ('AF', 'SD'), + ('SA', 'SR'), + ('EU', 'SJ'), + ('AF', 'SZ'), + ('EU', 'SE'), + ('EU', 'CH'), + ('AS', 'SY'), + ('AS', 'TJ'), + ('AS', 'TH'), + ('AF', 'TG'), + ('OC', 'TK'), + ('OC', 'TO'), + ('NA', 'TT'), + ('AS', 'AE'), + ('AF', 'TN'), + ('EU', 'TR'), + ('AS', 'TR'), + ('AS', 'TM'), + ('NA', 'TC'), + ('OC', 'TV'), + ('AF', 'UG'), + ('EU', 'UA'), + ('EU', 'MK'), + ('AF', 'EG'), + ('EU', 'GB'), + ('EU', 'GG'), + ('EU', 'JE'), + ('EU', 'IM'), + ('AF', 'TZ'), + ('NA', 'US'), + ('NA', 'VI'), + ('AF', 'BF'), + ('SA', 'UY'), + ('AS', 'UZ'), + ('SA', 'VE'), + ('OC', 'WF'), + ('OC', 'WS'), + ('AS', 'YE'), + ('AF', 'ZM'), +) + + +def get_continents_for_country(code): + '''Return a list of continent codes for the given country code. If the + country code is unknown, the returned list will be empty.''' + return [con for con, cty in CONTINENT_COUNTRIES if cty == code] + +# vim: set ts=4 sw=4 et: -- cgit v1.2.3-55-g3dc8