diff options
author | Philip Sargent <philip.sargent@klebos.com> | 2020-06-25 02:10:20 +0100 |
---|---|---|
committer | Philip Sargent <philip.sargent@klebos.com> | 2020-06-25 02:10:20 +0100 |
commit | d3654266eecd05ba5a2ecc314aaaaad9b8e5eccc (patch) | |
tree | 4aa82e2650af4a94ce2758f09eb2dc82afa76e47 /parsers/survex.py | |
parent | 04f14c91f0b85108384ca4b9f2b190c0b26eef98 (diff) | |
download | troggle-d3654266eecd05ba5a2ecc314aaaaad9b8e5eccc.tar.gz troggle-d3654266eecd05ba5a2ecc314aaaaad9b8e5eccc.tar.bz2 troggle-d3654266eecd05ba5a2ecc314aaaaad9b8e5eccc.zip |
Better error msgs, one bug fix
Diffstat (limited to 'parsers/survex.py')
-rw-r--r-- | parsers/survex.py | 48 |
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 |