Add grosslagen, attributes and cultivations to migrate.py
This commit is contained in:
@ -17,11 +17,11 @@ BIC_RE = re.compile(r'[A-Z0-9]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?')
|
||||
IBAN_RE = re.compile(r'[A-Z]{2}[0-9]{2}[A-Z0-9]{8,30}')
|
||||
EMAIL_RE = re.compile(r'[^@\s]+@([a-z0-9_äöüß-]+\.)+[a-z]{2,}')
|
||||
|
||||
CULTIVATION_MAP: Optional[Dict[int, str]] = {1: 'N', 2: 'KIP', 3: 'BIO'}
|
||||
|
||||
CULTIVATION_MAP: Optional[Dict[int, str]] = None
|
||||
BRANCH_MAP: Optional[Dict[int, str]] = None
|
||||
GEM_MAP: Optional[Dict[int, List[Tuple[int, int]]]] = None
|
||||
REED_MAP: Optional[Dict[int, Tuple[int, int]]] = None
|
||||
GROSSLAGE_MAP: Optional[Dict[int, int]] = None
|
||||
|
||||
STREET_NAMES: Dict[str, str] = {
|
||||
'Hans-Wagnerstraße': 'Hans-Wagner-Straße',
|
||||
@ -232,12 +232,30 @@ def migrate_branches(in_dir: str, out_dir: str) -> None:
|
||||
f.write(csv.format_row(b['Kennbst'], b['Name'], 'AT', postal_dest, address, b['Telefon']))
|
||||
|
||||
|
||||
def migrate_grosslagen(in_dir: str, out_dir: str) -> None:
|
||||
global GROSSLAGE_MAP
|
||||
GROSSLAGE_MAP = {}
|
||||
|
||||
glnr = 0
|
||||
with open(f'{out_dir}/wb_gl.csv', 'w+') as f:
|
||||
f.write('glnr;name\n')
|
||||
for gl in csv.parse(f'{in_dir}/TGrosslagen.csv'):
|
||||
glnr += 1
|
||||
GROSSLAGE_MAP[gl['GLNR']] = glnr
|
||||
f.write(csv.format_row(glnr, gl['Bezeichnung']))
|
||||
|
||||
|
||||
def migrate_gemeinden(in_dir: str, out_dir: str) -> None:
|
||||
global GEM_MAP
|
||||
GEM_MAP = {}
|
||||
|
||||
for g in csv.parse(f'{in_dir}/TGemeinden.csv'):
|
||||
GEM_MAP[g['GNR']] = lookup_gem_name(g['Bezeichnung'])
|
||||
with open(f'{out_dir}/wb_kg.csv', 'w+') as f:
|
||||
f.write('kgnr;glnr\n')
|
||||
for g in csv.parse(f'{in_dir}/TGemeinden.csv'):
|
||||
gems = lookup_gem_name(g['Bezeichnung'])
|
||||
GEM_MAP[g['GNR']] = gems
|
||||
for kgnr, gkz in gems:
|
||||
f.write(csv.format_row(kgnr, GROSSLAGE_MAP[g['GLNR']]))
|
||||
|
||||
|
||||
def migrate_reeds(in_dir: str, out_dir: str) -> None:
|
||||
@ -261,6 +279,30 @@ def migrate_reeds(in_dir: str, out_dir: str) -> None:
|
||||
f.write(csv.format_row(kgnr, rdnr, name))
|
||||
|
||||
|
||||
def migrate_attributes(in_dir: str, out_dir: str) -> None:
|
||||
with open(f'{out_dir}/wine_attribute.csv', 'w+') as f:
|
||||
f.write('attrid;name;kg_per_ha\n')
|
||||
for a in csv.parse(f'{in_dir}/TSortenAttribute.csv'):
|
||||
f.write(csv.format_row(a['SANR'], a['Attribut'], int(a['KgProHa'])))
|
||||
|
||||
|
||||
def migrate_cultivations(in_dir: str, out_dir: str) -> None:
|
||||
global CULTIVATION_MAP
|
||||
CULTIVATION_MAP = {}
|
||||
|
||||
with open(f'{out_dir}/wine_cultivation.csv', 'w+') as f:
|
||||
f.write('cultid;name\n')
|
||||
for c in csv.parse(f'{in_dir}/TBewirtschaftungsarten.csv'):
|
||||
name: str = c['Bezeichnung']
|
||||
cultid = name[0].upper()
|
||||
if name.isupper():
|
||||
cultid = name
|
||||
elif 'biolog' in name.lower():
|
||||
cultid = 'BIO'
|
||||
CULTIVATION_MAP[c['BANR']] = cultid
|
||||
f.write(csv.format_row(cultid, name))
|
||||
|
||||
|
||||
def migrate_members(in_dir: str, out_dir: str) -> None:
|
||||
members = csv.parse(f'{in_dir}/TMitglieder.csv')
|
||||
fbs = parse_flaechenbindungen(in_dir)
|
||||
@ -582,8 +624,11 @@ if __name__ == '__main__':
|
||||
DB_CNX = sqlite3.connect(args.database)
|
||||
|
||||
migrate_branches(args.in_dir, args.out_dir)
|
||||
migrate_grosslagen(args.in_dir, args.out_dir)
|
||||
migrate_gemeinden(args.in_dir, args.out_dir)
|
||||
migrate_reeds(args.in_dir, args.out_dir)
|
||||
migrate_attributes(args.in_dir, args.out_dir)
|
||||
migrate_cultivations(args.in_dir, args.out_dir)
|
||||
migrate_members(args.in_dir, args.out_dir)
|
||||
migrate_contracts(args.in_dir, args.out_dir)
|
||||
|
||||
|
Reference in New Issue
Block a user