forked from expo/troggle
Fixing bad date parsing, better warning msgs
This commit is contained in:
parent
ddfc677a1e
commit
68865a80ef
@ -215,6 +215,7 @@ class LoadingSurvex():
|
||||
GetPersonExpeditionNameLookup() needs to be fixed.
|
||||
|
||||
personrole is used to record that a person was on a trip, NOT the role they played.
|
||||
(NB PersonTrip is a logbook thing)
|
||||
"""
|
||||
teammembers = [ ]
|
||||
mteammember = self.rx_teammem.match(line)
|
||||
@ -248,6 +249,7 @@ class LoadingSurvex():
|
||||
|
||||
def LoadSurvexUnits(self, survexblock, line):
|
||||
# all for 4 survex files with measurements in feet. bugger.
|
||||
# Won't need this once we move to using cavern output for lengths
|
||||
tapeunits = self.rx_tapelng.match(line) # tape|length
|
||||
if not tapeunits:
|
||||
return
|
||||
@ -272,12 +274,12 @@ class LoadingSurvex():
|
||||
DataIssue.objects.create(parser='survexunits', message=message)
|
||||
|
||||
def LoadSurvexDate(self, survexblock, line):
|
||||
# we should make this a date RANGE for everything
|
||||
# we should make this a date RANGE for everything?
|
||||
def findexpedition(year):
|
||||
return Expedition.objects.filter(year=year)
|
||||
|
||||
def setdate(year):
|
||||
# cacheing to save DB query on every block and to prepare for django-less troggle in future
|
||||
# cacheing to save DB query on every block
|
||||
if year in self.expos:
|
||||
expo = self.expos[year]
|
||||
else:
|
||||
@ -294,25 +296,35 @@ class LoadingSurvex():
|
||||
survexblock.expeditionday = survexblock.expedition.get_expedition_day(survexblock.date)
|
||||
survexblock.save()
|
||||
|
||||
oline = line
|
||||
if len(line) > 10:
|
||||
if line[10] == "-":
|
||||
# message = "! DATE Warning LONG DATE '{}' ({}) {}".format(oline, survexblock, survexblock.survexfile.path)
|
||||
# print(self.insp+message)
|
||||
# DataIssue.objects.create(parser='survex', message=message, url=get_offending_filename(survexblock.survexfile.path))
|
||||
if line[10] == "-": # ie a range, just look at first date
|
||||
line = line[0:10]
|
||||
if len(line) == 10:
|
||||
year = line[:4]
|
||||
# TO DO set to correct Austrian timezone Europe/Vienna
|
||||
# TO DO set to correct Austrian timezone Europe/Vienna ?
|
||||
# %m and %d need leading zeros. Source svx files require them.
|
||||
survexblock.date = datetime.strptime(re.sub(r"\.", "-", line), '%Y-%m-%d')
|
||||
survexblock.date = datetime.strptime(line.replace('.','-'), '%Y-%m-%d')
|
||||
setdate(year)
|
||||
elif len(line) == 7:
|
||||
year = line[:4]
|
||||
survexblock.date = datetime.strptime(re.sub(r"\.", "-", line), '%Y-%m') # sets to first of month
|
||||
message = "! DATE Warning only accurate to the month, setting to 1st '{}' ({}) {}".format(oline, survexblock, survexblock.survexfile.path)
|
||||
print(self.insp+message)
|
||||
DataIssue.objects.create(parser='survex', message=message, url=get_offending_filename(survexblock.survexfile.path))
|
||||
survexblock.date = datetime.strptime(line.replace('.','-'), '%Y-%m') # sets to first of month
|
||||
setdate(year)
|
||||
elif len(line) == 4:
|
||||
year = line[:4]
|
||||
message = "! DATE WARNING only accurate to the YEAR, setting to 1st January '{}' ({}) {}".format(oline, survexblock, survexblock.survexfile.path)
|
||||
print(self.insp+message)
|
||||
DataIssue.objects.create(parser='survex', message=message, url=get_offending_filename(survexblock.survexfile.path))
|
||||
survexblock.date = datetime.strptime(line, '%Y') # sets to January 1st
|
||||
setdate(year)
|
||||
else:
|
||||
message = "! Error DATE unrecognised '{}' ({}) {}".format(line, survexblock, survexblock.survexfile.path)
|
||||
message = "! DATE Error unrecognised '{}' ({}) {}".format(oline, survexblock, survexblock.survexfile.path)
|
||||
print(self.insp+message)
|
||||
DataIssue.objects.create(parser='survex', message=message, url=get_offending_filename(survexblock.survexfile.path))
|
||||
|
||||
@ -320,6 +332,8 @@ class LoadingSurvex():
|
||||
"""This reads compass, clino and tape data but only keeps the tape lengths,
|
||||
the rest is discarded after error-checking.
|
||||
Now skipping the error checking - returns as soon as the leg is not one we count.
|
||||
|
||||
REPLACE ALL THIS by reading the .log output of cavern for the file
|
||||
"""
|
||||
invalid_clino = 180.0
|
||||
invalid_compass = 720.0
|
||||
|
Loading…
Reference in New Issue
Block a user