From 1a8f44d7adf052a51fad649ef9b5e55b6e339495 Mon Sep 17 00:00:00 2001 From: Jocelyn Jaubert Date: Mon, 5 Oct 2020 21:32:02 +0200 Subject: [PATCH] Move OsmBin main to dedicated script osmbin.py --- osc_modif/modules/OsmBin.py | 40 ----------------------------- osc_modif/osmbin.py | 51 +++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 40 deletions(-) create mode 100755 osc_modif/osmbin.py diff --git a/osc_modif/modules/OsmBin.py b/osc_modif/modules/OsmBin.py index 06d73a0..40fe6e2 100755 --- a/osc_modif/modules/OsmBin.py +++ b/osc_modif/modules/OsmBin.py @@ -414,46 +414,6 @@ def Update(self, f): i = OsmSax.OscSaxReader(f) i.CopyTo(self) - -########################################################################### - -if __name__ == "__main__": - if sys.argv[1] == "--init": - InitFolder(sys.argv[2]) - - if sys.argv[1] == "--import": - o = OsmBin(sys.argv[2], "w") - o.Import(sys.argv[3]) - - if sys.argv[1] == "--update": - o = OsmBin(sys.argv[2], "w") - o.Update(sys.argv[3]) - - if sys.argv[1] == "--read": - i = OsmBin(sys.argv[2]) - if sys.argv[3] == "node": - print(i.NodeGet(int(sys.argv[4]))) - if sys.argv[3] == "way": - print(i.WayGet(int(sys.argv[4]))) - if sys.argv[3] == "relation": - print(i.RelationGet(int(sys.argv[4]))) - if sys.argv[3] == "relation_full": - import pprint - pprint.pprint(i.RelationFullRecur(int(sys.argv[4]))) - - if sys.argv[1] == "--pyro": - import Pyro.core - import Pyro.naming - class OsmBin2(Pyro.core.ObjBase, OsmBin): - def __init__(self, folder): - Pyro.core.ObjBase.__init__(self) - OsmBin.__init__(self, folder) - daemon = Pyro.core.Daemon() - #ns = Pyro.naming.NameServerLocator().getNS() - #daemon.useNameServer(ns) - uri = daemon.connect(OsmBin2("/data/work/osmbin/data/"), "OsmBin") - daemon.requestLoop() - ########################################################################### import unittest diff --git a/osc_modif/osmbin.py b/osc_modif/osmbin.py new file mode 100755 index 0000000..de03102 --- /dev/null +++ b/osc_modif/osmbin.py @@ -0,0 +1,51 @@ +#! /usr/bin/env python3 +#-*- coding: utf-8 -*- + +import sys +from modules.OsmBin import OsmBin + +if __name__=="__main__": + import argparse + + parser = argparse.ArgumentParser(description='Handle osmbin database.') + + parser.add_argument("--dir", action="store", + help="Directory for osmbin database") + + group = parser.add_mutually_exclusive_group() + group.add_argument("--init", action="store_true", + help="Init database") + group.add_argument("--import", metavar="FILE", action="store", dest="import_", + help="Import file to database") + group.add_argument("--update", metavar="FILE", action="store", + help="Update file to database") + group.add_argument("--read", nargs=2, metavar=("ELEM", "ID"), action="store", + help="Read node/way/relation id from database") + args = parser.parse_args() + + if args.init: + from modules import OsmBin + OsmBin.InitFolder(args.dir) + + elif args.import_: + o = OsmBin(args.dir, "w") + o.Import(args.import_) + + elif args.update: + o = OsmBin(args.dir, "w") + o.Update(args.update) + + elif args.read: + i = OsmBin(args.dir) + if args.read[0] == "node": + print(i.NodeGet(int(args.read[1]))) + elif args.read[0] == "way": + print(i.WayGet(int(args.read[1]))) + elif args.read[0] == "relation": + print(i.RelationGet(int(args.read[1]))) + elif args.read[0] == "relation_full": + import pprint + pprint.pprint(i.RelationFullRecur(int(args.read[1]))) + else: + raise ValueError("--read option %s not recognized" % args.read[0]) +