summaryrefslogtreecommitdiffstats
path: root/parsers
diff options
context:
space:
mode:
Diffstat (limited to 'parsers')
-rw-r--r--parsers/caves.py29
-rw-r--r--parsers/survex.py5
2 files changed, 26 insertions, 8 deletions
diff --git a/parsers/caves.py b/parsers/caves.py
index 22b195e..219ae25 100644
--- a/parsers/caves.py
+++ b/parsers/caves.py
@@ -30,6 +30,7 @@ def readentrance(filename):
with open(os.path.join(settings.ENTRANCEDESCRIPTIONS, filename)) as f:
contents = f.read()
context = "in file %s" % filename
+ #print("Reading file ENTRANCE {} / {}".format(settings.ENTRANCEDESCRIPTIONS, filename))
entrancecontentslist = getXML(contents, "entrance", maxItems = 1, context = context)
if len(entrancecontentslist) == 1:
entrancecontents = entrancecontentslist[0]
@@ -83,10 +84,26 @@ def readentrance(filename):
cached_primary_slug = slugs[0])
primary = True
for slug in slugs:
- #print slug, filename
- cs = models_caves.EntranceSlug.objects.update_or_create(entrance = e,
- slug = slug,
- primary = primary)
+ #print("entrance slug:{} filename:{}".format(slug, filename))
+ try:
+ cs = models_caves.EntranceSlug.objects.update_or_create(entrance = e,
+ slug = slug,
+ primary = primary)
+ except:
+ # need to cope with duplicates
+ print(" ! FAILED to get only one ENTRANCE when updating using: "+filename)
+ kents = models_caves.EntranceSlug.objects.all().filter(entrance = e,
+ slug = slug,
+ primary = primary)
+ for k in kents:
+ message = " ! - DUPLICATE in db. entrance:"+ str(k.entrance) + ", slug:" + str(k.slug())
+ models.DataIssue.objects.create(parser='caves', message=message)
+ print(message)
+ for k in kaves:
+ if k.slug() != None:
+ print(" ! - OVERWRITING this one: slug:"+ str(k.slug()))
+ k.notes = "DUPLICATE entrance found on import. Please fix\n" + k.notes
+ c = k
primary = False
def readcave(filename):
@@ -94,7 +111,7 @@ def readcave(filename):
with open(os.path.join(settings.CAVEDESCRIPTIONS, filename)) as f:
contents = f.read()
context = " in file %s" % filename
- #print "Reading file %s" % filename
+ #print("Reading file CAVE {}".format(filename))
cavecontentslist = getXML(contents, "cave", maxItems = 1, context = context)
#print cavecontentslist
if len(cavecontentslist) == 1:
@@ -145,7 +162,7 @@ def readcave(filename):
filename = filename)
except:
# need to cope with duplicates
- print(" ! FAILED to get only one cave when updating using: "+filename)
+ print(" ! FAILED to get only one CAVE when updating using: "+filename)
kaves = models_caves.Cave.objects.all().filter(kataster_number=kataster_number[0])
for k in kaves:
message = " ! - DUPLICATES in db. kataster:"+ str(k.kataster_number) + ", slug:" + str(k.slug())
diff --git a/parsers/survex.py b/parsers/survex.py
index 56017f3..c13f65f 100644
--- a/parsers/survex.py
+++ b/parsers/survex.py
@@ -116,6 +116,7 @@ def LoadSurvexEquate(survexblock, sline):
def LoadSurvexLinePassage(survexblock, stardata, sline, comment):
+ # do not import *data passage.. data which is LRUD not tape/compass/clino
pass
stardatadefault = {"type":"normal", "t":"leg", "from":0, "to":1, "tape":2, "compass":3, "clino":4}
@@ -371,7 +372,7 @@ def RecursiveLoad(survexblock, survexfile, fin, textlines):
#survexblock.text = "".join(textlines)
# .text not used, using it for number of legs per block
legsinblock = survexlegsnumber - previousnlegs
- print("LEGS: {} (previous: {}, now:{})".format(legsinblock,previousnlegs,survexlegsnumber))
+ print(insp+"LEGS: {} (previous: {}, now:{})".format(legsinblock,previousnlegs,survexlegsnumber))
survexblock.text = str(legsinblock)
survexblock.save()
# print(insp+' - End found: ')
@@ -483,7 +484,7 @@ def LoadAllSurvexBlocks():
#Load all
# this is the first so id=1
- survexblockroot = models.SurvexBlock(name="root", survexpath="", begin_char=0, cave=None, survexfile=survexfile, totalleglength=0.0)
+ survexblockroot = models_survex.SurvexBlock(name="rootblock", survexpath="", begin_char=0, cave=None, survexfile=survexfile, totalleglength=0.0)
survexblockroot.save()
fin = survexfile.OpenFile()
textlines = [ ]