#!/usr/bin/env python # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import sys import pycountry sys.stdout.write('\n') sys.stdout.write('\n') sys.stdout.write(' \n') for country in pycountry.countries: record = ''' %s %s %s %s \n''' % (country.alpha_2.lower(), country.name, country.alpha_2, country.alpha_3, country.numeric) sys.stdout.write(record) sys.stdout.write(' \n') subdivision_codes = {s.code.lower() for s in pycountry.subdivisions} existing_parents = set() while existing_parents < subdivision_codes: sys.stdout.write(' \n') new_parents = set() for subdivision in pycountry.subdivisions: if (subdivision.code.lower() in existing_parents or (subdivision.parent_code and subdivision.parent_code.lower() not in existing_parents)): continue new_parents.add(subdivision.code.lower()) record = ''' %s %s %s\n''' % (subdivision.code.lower(), subdivision.name, subdivision.code, subdivision.type.lower()) if subdivision.parent_code: record += '''\ \n''' % \ subdivision.parent.code.lower() record += '''\ \n''' % subdivision.country.alpha_2.lower() sys.stdout.write(record) sys.stdout.write(' \n') existing_parents |= new_parents sys.stdout.write('\n')