2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2026-02-08 12:01:58 +00:00

QMs now sorted out

This commit is contained in:
2026-01-31 00:40:11 +00:00
parent c5c9b91374
commit 83770824a5

View File

@@ -680,7 +680,6 @@ class LoadingSurvex:
) )
if created: if created:
nc += 1 nc += 1
print(f" - {pr} Created", file=sys.stderr)
else: else:
ns += 1 ns += 1
# update the block if it changed # update the block if it changed
@@ -728,7 +727,7 @@ class LoadingSurvex:
bulk_kwargs bulk_kwargs
try: try:
QM.objects.bulk_create(qms, **bulk_kwargs) QM.objects.bulk_create(qms_valid_list, **bulk_kwargs)
except Exception as e: except Exception as e:
message = f"\n ! - EXCEPTION '{e}' - in QM bulk update. Falling back onto sequential updates" message = f"\n ! - EXCEPTION '{e}' - in QM bulk update. Falling back onto sequential updates"
print(message) print(message)
@@ -740,7 +739,7 @@ class LoadingSurvex:
def qm_save_mysql(): def qm_save_mysql():
nc = 0 nc = 0
ns = 0 ns = 0
for qm in qms: for qm in qms_valid_list:
got_obj, created = QM.objects.get_or_create( got_obj, created = QM.objects.get_or_create(
cave_id=qm.cave_id, cave_id=qm.cave_id,
blockname=qm.blockname, blockname=qm.blockname,
@@ -751,7 +750,6 @@ class LoadingSurvex:
) )
if created: if created:
nc += 1 nc += 1
print(f" - {qm} Created", file=sys.stderr)
else: else:
ns += 1 ns += 1
got_obj.block = qm.block got_obj.block = qm.block
@@ -760,41 +758,20 @@ class LoadingSurvex:
qms = [] qms = []
for blk in self._pending_qm_saves: for blk in self._pending_qm_saves:
qm_list = self._pending_qm_saves[blk] qms = qms + self._pending_qm_saves[blk]
qms = qms + qm_list
print(f" - Saving {len(qms)} QMs to db", file=sys.stderr) print(f" - Saving {len(qms)} QMs to db", file=sys.stderr)
for blk in self._pending_qm_saves: qms_valid_list = []
for qm in qms:
# Now commit to db try:
qm_list = self._pending_qm_saves[blk] qm.full_clean()
# print(f" PR_LIST {pr_list} {blk}", file=sys.stderr) qms_valid_list.append(qm)
valid_list = [] except ValidationError as e:
for qm in qm_list: message = f" ! QM is invalid: '{e}' '{qm}'"
# nqms = QM.objects.filter( print(message, file=sys.stderr)
# cave=qm.cave, blockname=qm.blockname, grade=qm.grade, stash_data_issue(
# number=qm.number, expoyear=qm.expoyear) parser="survex",
# print(f"QM found a prior match {nqms}", file=sys.stderr) message=message
try: )
qm.full_clean()
valid_list.append(qm)
except ValidationError as e:
message = f" ! QM is invalid: {e} {qm}"
print(message, file=sys.stderr)
stash_data_issue(
parser="survex",
message=message
)
qms = []
for blk in self._pending_qm_saves:
try:
for qm in self._pending_qm_saves[blk]:
qms.append(qm)
except Exception as e:
message = f"\n ! - EXCEPTION '{e}' - in buk update. Falling back on sequential updates"
print(message)
print(message, file=sys.stderr)
stash_data_issue(parser="survex", message=message)
if connection.vendor == 'mysql': if connection.vendor == 'mysql':
qm_save_mysql() qm_save_mysql()