Skip to content

Commit

Permalink
Move OsmBin main to dedicated script osmbin.py
Browse files Browse the repository at this point in the history
  • Loading branch information
jocelynj committed Oct 5, 2020
1 parent 17e5e9f commit 1a8f44d
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 40 deletions.
40 changes: 0 additions & 40 deletions osc_modif/modules/OsmBin.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
51 changes: 51 additions & 0 deletions osc_modif/osmbin.py
Original file line number Diff line number Diff line change
@@ -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])

0 comments on commit 1a8f44d

Please sign in to comment.