""" investigate into a simple python function that maps an ldap user to a vat percentage. Basically you need to lookup the customer address, check if she is a business/registered tax number and if not apply the local vat """ import iso3166 import datetime from csv import DictReader def get_vat(street_address, city, postal_code, country, vat_number=None): vat = { 'Austria': [ {'period': '1984-01-01/', 'rate': 0.2}, {'period': '1976-01-01/1984-01-01', 'rate': 0.18}, {'period': '1973-01-01/1976-01-01', 'rate': 0.16}, ] } return iso3166.countries.get(country) # return iso3166.countries_by_name[country] def main(): # vat = get_vat( # street_address='82 Nasheman-e-Iqbal near Wapda Town', # city='Lahore', # postal_code=53700, # country='Pakistan', # ) # print(vat) vat_rates = {} with open('vat_rates.csv', newline='') as csvfile: reader = DictReader(csvfile) for row in reader: territory_codes = row['territory_codes'].split('\n') for code in territory_codes: if code not in vat_rates: vat_rates[code] = {} start_date = row['start_date'] stop_data = row['stop_date'] time_period = f'{start_date}|{stop_data}' r = row.copy() del r['start_date'] del r['stop_date'] del r['territory_codes'] vat_rates[code][time_period] = r print(vat_rates) if __name__ == '__main__': main()