summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2020-06-25 02:10:20 +0100
committerPhilip Sargent <philip.sargent@klebos.com>2020-06-25 02:10:20 +0100
commitd3654266eecd05ba5a2ecc314aaaaad9b8e5eccc (patch)
tree4aa82e2650af4a94ce2758f09eb2dc82afa76e47
parent04f14c91f0b85108384ca4b9f2b190c0b26eef98 (diff)
downloadtroggle-d3654266eecd05ba5a2ecc314aaaaad9b8e5eccc.tar.gz
troggle-d3654266eecd05ba5a2ecc314aaaaad9b8e5eccc.tar.bz2
troggle-d3654266eecd05ba5a2ecc314aaaaad9b8e5eccc.zip
Better error msgs, one bug fix
-rw-r--r--parsers/survex.py48
1 files changed, 31 insertions, 17 deletions
diff --git a/parsers/survex.py b/parsers/survex.py
index beca1b8..923bb0e 100644
--- a/parsers/survex.py
+++ b/parsers/survex.py
@@ -118,8 +118,8 @@ class LoadSurvex():
if stardata["type"] == "normal": # should use current flags setting for this
# print(" !! lineno '{}'\n !! svxline '{}'\n !! sline '{}'\n !! ls '{}'\n !! stardata {}".format(self.lineno, svxline, sline, ls,stardata))
tape = ls[stardata["tape"]]
- tape = tape.replace("(",".")
- tape = tape.replace(")",".")
+ tape = tape.replace("(","")
+ tape = tape.replace(")","")
tape = tape.replace("/",".")
try:
survexleg.tape = float(tape)
@@ -186,7 +186,7 @@ class LoadSurvex():
def LoadSurvexRef(self, survexblock, args):
# *REF but also ; Ref years from 1960 to 2039
if len(args)< 4:
- message = " ! Empty or BAD *REF command '{}' at {}".format(args, survexblock.survexfile.path)
+ message = " ! Empty or BAD *REF command '{}' in '{}'".format(args, survexblock.survexfile.path)
print((self.insp+message))
models.DataIssue.objects.create(parser='survex', message=message)
return
@@ -195,7 +195,7 @@ class LoadSurvex():
if argsgps:
yr, letterx, wallet = argsgps.groups()
else:
- message = " ! BAD *REF command '{}' at {}".format(args, survexblock.survexfile.path)
+ message = " ! BAD *REF command '{}' in '{}'".format(args, survexblock.survexfile.path)
print((self.insp+message))
models.DataIssue.objects.create(parser='survex', message=message)
return
@@ -210,11 +210,11 @@ class LoadSurvex():
refscan = "%s#%s%s" % (yr, letterx, wallet)
try:
if int(wallet)>100:
- message = " ! Wallet *REF {} - too big {}".format(refscan, survexblock.survexfile.path)
+ message = " ! Wallet *REF {} - too big in '{}'".format(refscan, survexblock.survexfile.path)
print((self.insp+message))
models.DataIssue.objects.create(parser='survex', message=message)
except:
- message = " ! Wallet *REF {} - not numeric {}".format(refscan, survexblock.survexfile.path)
+ message = " ! Wallet *REF {} - not numeric in '{}'".format(refscan, survexblock.survexfile.path)
print((self.insp+message))
models.DataIssue.objects.create(parser='survex', message=message)
manyscansfolders = models_survex.ScansFolder.objects.filter(walletname=refscan)
@@ -222,11 +222,11 @@ class LoadSurvex():
survexblock.scansfolder = manyscansfolders[0]
survexblock.save()
if len(manyscansfolders) > 1:
- message = " ! Wallet *REF {} - multiple scan folders found {}".format(refscan, survexblock.survexfile.path)
+ message = " ! Wallet *REF {} - {} scan folders from DB search in {}".format(refscan, len(manyscansfolders), survexblock.survexfile.path)
print((self.insp+message))
models.DataIssue.objects.create(parser='survex', message=message)
else:
- message = " ! Wallet *REF {} - NOT found in manyscansfolders {}".format(refscan, survexblock.survexfile.path)
+ message = " ! Wallet *REF '{}' - NOT found in DB search '{}'".format(refscan, survexblock.survexfile.path)
print((self.insp+message))
models.DataIssue.objects.create(parser='survex', message=message)
@@ -235,7 +235,7 @@ class LoadSurvex():
insp = self.insp
qm_no = qmline.group(1)
qm_grade = qmline.group(2)
- qm_from_section = qmline.group(3)
+ qm_from_block = qmline.group(3) # usual closest survey station
qm_from_station = qmline.group(4)
qm_resolve_section = qmline.group(6)
qm_resolve_station = qmline.group(7)
@@ -250,30 +250,44 @@ class LoadSurvex():
# print(insp+'Cave - %s' % survexfile.cave)
# print(insp+'QM no %d' % int(qm_no))
# print(insp+'QM grade %s' % qm_grade)
- # print(insp+'QM section %s' % qm_from_section)
+ # print(insp+'QM section %s' % qm_from_block)
# print(insp+'QM station %s' % qm_from_station)
# print(insp+'QM res section %s' % qm_resolve_section)
# print(insp+'QM res station %s' % qm_resolve_station)
# print(insp+'QM notes %s' % qm_notes)
- # If the QM isn't resolved (has a resolving station) then load it
+ # If the QM isn't resolved (has a resolving station) then load it.
+ # NB none of the SurveyStations are in the DB now, so searching always fails
if not qm_resolve_section or qm_resolve_section != '-' or qm_resolve_section != 'None':
- from_section = models_survex.SurvexBlock.objects.filter(name=qm_from_section)
+ from_block = models_survex.SurvexBlock.objects.filter(name=qm_from_block)
# If we can find a section (survex note chunk, named)
- if len(from_section) > 0:
- from_station = models_survex.SurvexStation.objects.filter(block=from_section[0], name=qm_from_station)
+ if len(from_block) > 0:
+ from_station = models_survex.SurvexStation.objects.filter(block=from_block[0], name=qm_from_station)
# If we can find a from station then we have the nearest station and can import it
+ # but now that we don't import all the stations this will fail
if len(from_station) > 0:
qm = models_caves.QM.objects.create(number=qm_no,
nearest_station=from_station[0],
grade=qm_grade.upper(),
location_description=qm_notes)
- else:
- message = ' ! QM {} in {} NOT resolved and NOT found'.format(qm_no, survexblock.survexfile.path)
+ message = " - QM{} in '{}' loaded into DB using '{}'".format(qm_no, survexblock.survexfile.path,str(from_station[0]))
print(insp+message)
models.DataIssue.objects.create(parser='survex', message=message)
+ else:
+ try:
+ qm = models_caves.QM.objects.create(number=qm_no,
+ nearest_station=qm_from_block,
+ grade=qm_grade.upper(),
+ location_description=qm_notes)
+ message = " ! QM{} in '{}' CREATED in DB at '{}'".format(qm_no, survexblock.survexfile.path, qm_from_block)
+ print(insp+message)
+ models.DataIssue.objects.create(parser='survex', message=message)
+ except:
+ message = " ! QM{} in '{}' failed to create in DB at '{}'".format(qm_no, survexblock.survexfile.path, qm_from_block)
+ print(insp+message)
+ models.DataIssue.objects.create(parser='survex', message=message)
else:
- message = ' ! QM {} in {} found and resolved as {}'.format(qm_no, survexblock.survexfile.path,qm_resolve_section)
+ message = " - QM{} in '{}' resolved as '{}'".format(qm_no, survexblock.survexfile.path,qm_resolve_section)
print(insp+message)
models.DataIssue.objects.create(parser='survex', message=message)
pass