more saving options (stdout, return)

This commit is contained in:
fordprefect
2020-03-27 20:24:38 +01:00
parent 6eda1c26e2
commit dba6ed4b0b

View File

@@ -16,9 +16,15 @@ assert sys.version_info >= (3, 6), "At least Python 3.8 required due to fStrings
class OSMSearch():
def __init__(self, args):
"""
TODO: write docstring
"""
self.url = args.pop("url")
self.maxsearchnums = args.pop("maxsearchnums")
self.save_to_file = True if args["output"] == "disk" else False
if self.save_to_file:
self.gpxfilename = args.pop("outputfilename")
self.print_xml = True if args["output"] == "print" else False
self.use_boundingbox = args.pop("use_boundingbox")
self.ignore_ids = args.pop("ignore_ids")
if self.use_boundingbox:
@@ -33,9 +39,16 @@ class OSMSearch():
self.search()
if self.save_to_file:
self.save_to_disk()
if self.print_xml:
self.print_to_stdout()
def initialize_gpx_file(self):
if not self.save_to_file:
self.gpxfile = gpxpy.gpx.GPX()
return
if os.path.isfile(self.gpxfilename):
raise NotImplementedError("We don't know how to deal with existing files yet, sry")
# TODO: file name collision? either:
@@ -85,6 +98,9 @@ class OSMSearch():
with open(self.gpxfilename, "w") as f:
f.write(self.gpxfile.to_xml())
def print_to_stdout(self):
print(self.gpxfile.to_xml())
default_args = {
"q": "Camping",
"format": "json",
@@ -95,6 +111,7 @@ default_args = {
"ignore_ids": [],
"maxsearchnums": 10,
"url": "https://nominatim.openstreetmap.org/search/",
"output": "print",
}
if __name__ == "__main__":