Source code for alex.applications.PublicTransportInfoEN.data.expand_cities_script

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
A script that creates an expansion from a preprocessed list of cities

For usage write expand_cities_script.py -h
"""

from __future__ import unicode_literals
from optparse import OptionParser
from collections import defaultdict
import autopath
import sys

from alex.applications.PublicTransportInfoEN.data.expand_stops_script import handle_csv, read_expansions, \
    read_first_column, merge, append, save_out


[docs]def all_to_lower(site_list): sites = defaultdict(list) for site in site_list: sites[site] = [site.lower(),] return sites
[docs]def handle_cities(cities_in, cities_out, cities_append, no_cache=False): # currently expanded cities if no_cache: prev = {} else: prev = read_expansions(cities_out) # manually added expansions of specific cities not covered by automatic expansion manual_expansions = {} if cities_append is None else read_expansions(cities_append) # new expanded cities expanded = all_to_lower(read_first_column(cities_in)) # merged new and old expansions, old ones have greater priority (no appending) merged = merge(prev, expanded) # add manual expansions to automatic ones append(merged, manual_expansions) # save it all save_out(cities_out, merged)
[docs]def main(): city_out = "./cities.expanded.txt" geo_out = "./cities.locations.csv" # compatibility_out = "./state.city.txt" parser = OptionParser() parser.add_option("--cities", metavar="CITY_FILE", help="read input cities from CITY_FILE") parser.add_option("--append-cities", metavar="CITY_EXPANSIONS", help="appends expansions to current expansions") parser.add_option("-c", "--no-cache", action="store_true", help="Do not append existing expansions", default=False) (options, args) = parser.parse_args() if not options.cities and not options.append_cities: sys.exit(parser.print_help()) city_append = options.append_cities handle_cities(options.cities, city_out, city_append, no_cache=options.no_cache) handle_csv(options.cities, geo_out, no_cache=options.no_cache)
# handle_compatibility(options.cities, compatibility_out, no_cache=options.no_cache) if __name__ == '__main__': main()