summaryrefslogtreecommitdiffstats
path: root/parsers/survex.py
diff options
context:
space:
mode:
Diffstat (limited to 'parsers/survex.py')
-rw-r--r--parsers/survex.py45
1 files changed, 24 insertions, 21 deletions
diff --git a/parsers/survex.py b/parsers/survex.py
index 127bb70..1f93a4e 100644
--- a/parsers/survex.py
+++ b/parsers/survex.py
@@ -114,7 +114,7 @@ class LoadingSurvex():
rx_names = re.compile(r'(?i)names')
rx_flagsnot= re.compile(r"not\s")
rx_linelen = re.compile(r"[\d\-+.]+$")
- instruments = "(waiting_patiently|slacker|Useless|nagging|unknown|Inst|instrument|rig|rigger|rigging|helper|something| compass|comp|clino|Notes|sketch|book|Tape|Dog|Pics|photo|drawing|Helper|GPS|Disto|Distox|Distox2|topodroid|point|Consultant|nail|polish|varnish|bitch|monkey|PowerDrill|drill)"
+ instruments = "(waiting_patiently|slacker|Useless|nagging|unknown|Inst|instrument|rig|rigger|rigging|helper|something| compass|comp|clino|Notes|sketch|book|Tape|Dog|Pics|photo|drawing|Helper|GPS|Disto|Distox|Distox2|topodroid|point|Consultant|nail|polish|nail_polish_bitch|nail_polish_monkey|varnish|nail_polish|nail_varnish|bitch|monkey|PowerDrill|drill)"
rx_teammem = re.compile(r"(?i)"+instruments+"?(?:es|s)?\s+(.*)"+instruments+"?(?:es|s)?$")
rx_person = re.compile(r"(?i) and | / |, | & | \+ |^both$|^none$")
rx_qm = re.compile(r'(?i)^\s*QM(\d)\s+?([a-dA-DxX])\s+([\w\-]+)\.(\d+)\s+(([\w\-]+)\.(\d+)|\-)\s+(.+)$')
@@ -448,27 +448,27 @@ class LoadingSurvex():
def LoadSurvexRef(self, survexblock, args):
#print(self.insp+ "*REF ---- '"+ args +"'")
-
+ url=f'/survexfile/{survexblock.survexfile.path}'
# *REF but also ; Ref years from 1960 to 2039
refline = self.rx_ref_text.match(args)
if refline:
# a textual reference such as "1996-1999 Not-KH survey book pp 92-95"
- # print(self.insp+ "*REF quoted text so ignored:"+ args)
+ print(self.insp+ "*REF quoted text so ignored:"+ args)
return
if len(args)< 4:
message = " ! Empty or BAD *REF statement '{}' in '{}'".format(args, survexblock.survexfile.path)
print((self.insp+message))
- DataIssue.objects.create(parser='survex', message=message)
+ DataIssue.objects.create(parser='survex', message=message, url=url)
return
argsgps = self.rx_argsref.match(args)
if argsgps:
yr, letterx, wallet = argsgps.groups()
else:
- message = " ! BAD *REF statement '{}' in '{}'".format(args, survexblock.survexfile.path)
+ message = " ! Wallet *REF '{}' in '{}' ".format(args, survexblock.survexfile.path)
print(self.insp+message)
- DataIssue.objects.create(parser='survex', message=message)
+ DataIssue.objects.create(parser='survex', message=message, url=url)
return
if not letterx:
@@ -480,31 +480,31 @@ class LoadingSurvex():
if not (int(yr)>1960 and int(yr)<2039):
message = " ! Wallet year out of bounds {yr} '{refscan}' {survexblock.survexfile.path}"
print((self.insp+message))
- DataIssue.objects.create(parser='survex', message=message)
+ DataIssue.objects.create(parser='survex', message=message, url=url)
refscan = "%s#%s%s" % (yr, letterx, wallet)
try:
if int(wallet)>100:
message = " ! Wallet *REF {} - too big in '{}'".format(refscan, survexblock.survexfile.path)
print((self.insp+message))
- DataIssue.objects.create(parser='survex', message=message)
+ DataIssue.objects.create(parser='survex', message=message, url=url)
except:
- message = " ! Wallet *REF {} - not numeric in '{}'".format(refscan, survexblock.survexfile.path)
+ message = " ! Wallet *REF {} - not numeric in '{}' -- parsing continues".format(refscan, survexblock.survexfile.path)
print((self.insp+message))
- DataIssue.objects.create(parser='survex', message=message)
+ DataIssue.objects.create(parser='survex', message=message, url=url)
manywallets = Wallet.objects.filter(walletname=refscan)
if manywallets:
survexblock.scanswallet = manywallets[0] # this is a ForeignKey field
print(manywallets[0])
survexblock.save()
if len(manywallets) > 1:
- message = " ! Wallet *REF {} - {} scan folders from DB search in {}".format(refscan, len(manywallets), survexblock.survexfile.path)
+ message = " ! Wallet *REF {} - {} scan folders from DB search in {} -- parsing continues".format(refscan, len(manywallets), survexblock.survexfile.path)
print((self.insp+message))
- DataIssue.objects.create(parser='survex', message=message)
+ DataIssue.objects.create(parser='survex', message=message, url=url)
else:
- message = " ! Wallet *REF '{}' - NOT found in DB search '{}'".format(refscan, survexblock.survexfile.path)
+ message = " ! Wallet *REF '{}' - NOT found in DB search '{}' -- parsing continues".format(refscan, survexblock.survexfile.path)
print((self.insp+message))
- DataIssue.objects.create(parser='survex', message=message)
+ DataIssue.objects.create(parser='survex', message=message, url=url)
def LoadSurvexQM(self, survexblock, qmline):
insp = self.insp
@@ -668,7 +668,7 @@ class LoadingSurvex():
return self.svxdirs[headpath.lower()]
def ReportNonCaveIncludes(self, headpath, includelabel):
- """Ignore surface, kataser and gps *include survex files
+ """Ignore surface, kataser and gpx *include survex files
"""
if headpath in self.ignorenoncave:
#message = f" - {headpath} is <ignorenoncave> (while creating '{includelabel}' sfile & sdirectory)"
@@ -677,11 +677,12 @@ class LoadingSurvex():
return
for i in self.ignoreprefix:
if headpath.startswith(i):
- #message = f" - {headpath} starts with <ignoreprefix> (while creating '{includelabel}' sfile & sdirectory)"
- #print("\n"+message)
+ message = f" - {headpath} starts with <ignoreprefix> (while creating '{includelabel}' sfile & sdirectory)"
+ print("\n"+message)
#print("\n"+message,file=sys.stderr)
return
- message = f" ! Error: '{headpath}' not a cave or in the ignore list of surface surveys. (while creating '{includelabel}')"
+ message = f" ! Error: '{headpath}' not a cave or in the ignore list of surface surveys. (while creating '{includelabel}' in db)"
+ # getting this triggered for gpx/2018 but not for gpx/2017 ?!
print("\n"+message)
print("\n"+message,file=sys.stderr)
DataIssue.objects.create(parser='survex', message=message)
@@ -725,7 +726,7 @@ class LoadingSurvex():
if cave:
newdirectory.cave = cave
newfile.cave = cave
- #print("\n"+str(newdirectory.cave),file=sys.stderr)
+ print("\n"+str(newdirectory.cave),file=sys.stderr)
else: # probably a surface survey
self.ReportNonCaveIncludes(headpath, svxid)
@@ -1214,8 +1215,9 @@ class LoadingSurvex():
sp = subprocess.run([settings.CAVERN, "--log", f'--output={outputdir}', f'{fullpath}.svx'],
capture_output=True, check=False, text=True)
if sp.returncode != 0:
- message = f' ! Error running {settings.CAVERN}: {fullpath}'
- DataIssue.objects.create(parser='entrances', message=message)
+ message = f' ! Error running {settings.CAVERN}: {fullpath}'
+ url = f'/survexfile{fullpath}.svx'.replace(settings.SURVEX_DATA, "")
+ DataIssue.objects.create(parser='xEntrances', message=message, url=url)
print(message)
print(f'stderr:\n\n' + str(sp.stderr) + '\n\n' + str(sp.stdout) + '\n\nreturn code: ' + str(sp.returncode))
self.caverncount += 1
@@ -1408,6 +1410,7 @@ def LoadSurvexBlocks():
DataIssue.objects.filter(parser='survexleg').delete()
DataIssue.objects.filter(parser='survexunits').delete()
DataIssue.objects.filter(parser='entrances').delete()
+ DataIssue.objects.filter(parser='xEntrances').delete()
survexfileroot = MakeSurvexFileRoot()
# this next makes a block_object assciated with a file_object.path = SURVEX_TOPNAME