mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-14 18:07:22 +00:00
make more robust against data error
This commit is contained in:
@@ -268,7 +268,7 @@ class JobQueue:
|
|||||||
self.results["TOTAL"] = []
|
self.results["TOTAL"] = []
|
||||||
for i in range(len(self.results["date"])):
|
for i in range(len(self.results["date"])):
|
||||||
self.format_date(i)
|
self.format_date(i)
|
||||||
print(i, self.compute_total(i))
|
# print(i, self.compute_total(i))
|
||||||
self.results["TOTAL"].append(self.compute_total(i))
|
self.results["TOTAL"].append(self.compute_total(i))
|
||||||
|
|
||||||
for j in self.results_order:
|
for j in self.results_order:
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ LOGBOOK_PARSER_SETTINGS = {
|
|||||||
LOGBOOKS_DIR = "years" # subfolder of settings.EXPOWEB
|
LOGBOOKS_DIR = "years" # subfolder of settings.EXPOWEB
|
||||||
|
|
||||||
ENTRIES = {
|
ENTRIES = {
|
||||||
"2024": 125,
|
"2024": 126,
|
||||||
"2023": 131,
|
"2023": 131,
|
||||||
"2022": 94,
|
"2022": 94,
|
||||||
"2019": 55,
|
"2019": 55,
|
||||||
@@ -66,7 +66,7 @@ ENTRIES = {
|
|||||||
"2017": 74,
|
"2017": 74,
|
||||||
"2016": 87,
|
"2016": 87,
|
||||||
"2015": 80,
|
"2015": 80,
|
||||||
"2014": 67,
|
"2014": 68,
|
||||||
"2013": 52,
|
"2013": 52,
|
||||||
"2012": 76,
|
"2012": 76,
|
||||||
"2011": 71,
|
"2011": 71,
|
||||||
|
|||||||
@@ -137,10 +137,15 @@ def load_people_expos():
|
|||||||
nick = ""
|
nick = ""
|
||||||
|
|
||||||
rawlastname = personline[header["Lastname"]].strip()
|
rawlastname = personline[header["Lastname"]].strip()
|
||||||
matchlastname = re.match(r"^([\w&;\s]+)(?:\(([^)]*)\))?", rawlastname)
|
if rawlastname == "":
|
||||||
lastname = matchlastname.group(1).strip()
|
print(f"MISSING SURNAME FIELD for {name} - check against similar names in the list to see what you have done.")
|
||||||
|
if matchlastname := re.match(r"^([\w&;\s]+)(?:\(([^)]*)\))?", rawlastname):
|
||||||
|
lastname = matchlastname.group(1).strip()
|
||||||
|
else:
|
||||||
|
print(f"MATCH FAIL {personline=}\n {slug=}\n {name=}\n {rawlastname=}")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
splitnick = re.match(r"^([\w&;\s]+)(?:\(([^)]*)\))?", plainname)
|
splitnick = re.match(r"^([\w&;\s\-]+)(?:\(([^)]*)\))?", plainname)
|
||||||
fullname = splitnick.group(1) # removes Nickname in brackets, but also cuts hyphenated names
|
fullname = splitnick.group(1) # removes Nickname in brackets, but also cuts hyphenated names
|
||||||
nick = splitnick.group(2) or ""
|
nick = splitnick.group(2) or ""
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,12 @@ It also scans the Loser repo for all the svx files, which it loads individually
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
todo = """
|
todo = """
|
||||||
|
- Rewrite regexes to use .groupdict instead of .group,
|
||||||
|
easier to understand and maintain
|
||||||
|
https://mathspp.com/blog/til/re-match-groupdict
|
||||||
|
|
||||||
|
- replace hard-coded instuments list with reding an editable textfile in expoweb.
|
||||||
|
|
||||||
- Obscure bug in the *team inheritance and rootblock initialization needs tracking down,
|
- Obscure bug in the *team inheritance and rootblock initialization needs tracking down,
|
||||||
probably in the team cache which should NOT be global, but should be an instance variable of
|
probably in the team cache which should NOT be global, but should be an instance variable of
|
||||||
LoadingSurvex
|
LoadingSurvex
|
||||||
@@ -75,10 +81,6 @@ class SurvexLeg:
|
|||||||
clino = 0.0
|
clino = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def datewallet(w, earliest):
|
def datewallet(w, earliest):
|
||||||
"""Gets the date of the youngest survexblock associated with the wallet
|
"""Gets the date of the youngest survexblock associated with the wallet
|
||||||
REFACTOR this to do the whole date-getting task
|
REFACTOR this to do the whole date-getting task
|
||||||
@@ -163,7 +165,7 @@ def get_people_on_trip(survexblock):
|
|||||||
|
|
||||||
return list(set(people))
|
return list(set(people))
|
||||||
|
|
||||||
# THIS SHOULD NOT BE GLOBAL ! SHould be per instance of file loader
|
# THIS SHOULD NOT BE GLOBAL ! Should be per instance of file loader
|
||||||
trip_person_record = {} # indexed by (survexblock, personexpedition) - so never needs cleaning out
|
trip_person_record = {} # indexed by (survexblock, personexpedition) - so never needs cleaning out
|
||||||
trip_team_cache = {} # indexed by survexblock, so never needs cleaning out
|
trip_team_cache = {} # indexed by survexblock, so never needs cleaning out
|
||||||
def put_person_on_trip(survexblock, personexpedition, tm):
|
def put_person_on_trip(survexblock, personexpedition, tm):
|
||||||
|
|||||||
Reference in New Issue
Block a user