diff --git a/osmsearch.py b/osmsearch.py index 08cef36..f4f39e0 100644 --- a/osmsearch.py +++ b/osmsearch.py @@ -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.gpxfilename = args.pop("outputfilename") + 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") if self.use_boundingbox: assert isinstance(list, args["boundingbox"]) @@ -31,10 +37,17 @@ class OSMSearch(): self.initialize_gpx_file() self.search() + + if self.save_to_file: + self.save_to_disk() + if self.print_xml: + self.print_to_stdout() - self.save_to_disk() - def initialize_gpx_file(self): + if not self.save_to_file: + self.gpxfile = gpxpy.gpx.GPX() + return + if os.path.isfile(self.gpxfilename): # open file and parse #if verbosity > 0: print(f"found file, extending") @@ -82,6 +95,9 @@ class OSMSearch(): f.write(self.gpxfile.to_xml()) #if verbosity > 0: print(f"GPX file written to {gpxfilename}") + def print_to_stdout(self): + print(self.gpxfile.to_xml()) + default_args = { "q": "Camping", "format": "json", @@ -92,6 +108,7 @@ default_args = { "ignore_ids": [], "maxsearchnums": 10, "url": "https://nominatim.openstreetmap.org/search/", + "output": "print", } if __name__ == "__main__":