#!/usr/bin/env python3 # Show all regions in the DB import mo.db as db from collections import defaultdict session = db.get_session() root = None children = defaultdict(list) def walk(place, expected_level=0): indent = '\t' * place.level print(f"{indent}{place.name} [{place.type.name}] #{place.place_id} NUTS={place.nuts}") assert place.level == expected_level for c in sorted(children[place.place_id], key=lambda p: p.name): walk(c, expected_level + 1) for place in session.query(db.Place).all(): if place.parent: children[place.parent].append(place) else: assert not root root = place walk(root)