""" Mappings of ISO-3166-1 alpha-2 country codes to names, to GEC (Geopolitical Entities and Codes used by the US government) and utility functions for flag download examples """ DATA_FILE = 'country-codes.tab' # original source CIA_URL = ('https://www.cia.gov/library/publications/' 'the-world-factbook/graphics/flags/large/{gec}-lgflag.gif') # local nginx web server NGINX_URL = 'http://localhost:8080/ciaflags/{gec}.gif' # Vaurien VAURIEN_URL = 'http://localhost:8000/ciaflags/{gec}.gif' BASE_URL = VAURIEN_URL DEST_PATH_NAME = 'img/{cc}.gif' cc2name = {} # ISO-3166-1 to name cc2gec = {} # ISO-3166-1 to GEC def _load(): with open(DATA_FILE, encoding='utf-8') as cc_txt: for line in cc_txt: line = line.rstrip() if line.startswith('#'): continue iso_cc, gec, name = line.split('\t') cc2name[iso_cc] = name cc2gec[iso_cc] = gec def flag_url(iso_cc): return BASE_URL.format(gec=cc2gec[iso_cc].lower()) def iso_file_name(iso_cc): return DEST_PATH_NAME.format(cc=iso_cc.lower()) def gec_file_name(iso_cc): return DEST_PATH_NAME.format(cc=cc2gec[iso_cc].lower()) _load()