29 lines
896 B
Python
29 lines
896 B
Python
import argparse
|
|
import json
|
|
from datetime import date
|
|
|
|
from regiojet_search.encoders import SearchResultJSONEncoder
|
|
from regiojet_search.search import fetch_cities, search
|
|
from regiojet_search.utils import lookup_city
|
|
|
|
parser = argparse.ArgumentParser(prog="python main.py")
|
|
|
|
# Mandatory arguments
|
|
parser.add_argument("from_city_name")
|
|
parser.add_argument("to_city_name")
|
|
parser.add_argument("departure_date", type=date.fromisoformat, metavar="YYYY-MM-DD")
|
|
|
|
# Optional arguments
|
|
parser.add_argument("-c", "--currency", default="CZK")
|
|
|
|
|
|
def main(from_city_name: str, to_city_name: str, **kwargs):
|
|
cities = fetch_cities()
|
|
routes = search(from_city=lookup_city(from_city_name, cities), to_city=lookup_city(to_city_name, cities), **kwargs)
|
|
print(json.dumps(routes, cls=SearchResultJSONEncoder, indent=2))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
args = parser.parse_args()
|
|
main(**vars(args))
|