Skip to content

Commit 53a2f3d

Browse files
committed
dev:ETS sync, fine tuning
1 parent ab973ab commit 53a2f3d

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

py/API_operations/TaxoManager.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,7 @@ def pull_updates(self) -> Dict[str, Any]:
609609
nbr_updates += 1
610610
else:
611611
if must_delete:
612-
continue # Should not happen if timestamps are OK
612+
continue # Should not happen if timestamps are OK
613613
# The taxon is not present, create it
614614
nbr_inserts += 1
615615
taxon = Taxonomy()
@@ -625,6 +625,7 @@ def pull_updates(self) -> Dict[str, Any]:
625625
self.session.commit()
626626
if len(to_delete) > 0:
627627
TaxonomyBO.do_deletes(self.session, to_delete)
628+
self.session.commit()
628629

629630
# if gvp('updatestat') == 'Y':
630631
# msg = DoSyncStatUpdate()

py/BO/Taxonomy.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -440,32 +440,33 @@ def do_deletes(cls, session: Session, to_delete: List[ClassifIDT]) -> None:
440440
sql = text("SELECT DISTINCT id FROM taxonomy")
441441
res: Result = session.execute(sql, {"een": list(to_delete)})
442442
present = {an_id for an_id, in res}
443-
final_delete = present.intersection(to_delete)
443+
final_delete = sorted(list(present.intersection(to_delete)))
444444
# We want to protect 1. and 2.
445-
logger.info("Taxo delete, list: %s", final_delete)
446445
sql = text("SELECT DISTINCT objid FROM obj_head WHERE classif_id = ANY (:een)")
447446
res2: Result = session.execute(sql, {"een": list(final_delete)})
448447
prevent_obj_head = {an_id for an_id, in res2}
449448
if len(prevent_obj_head) > 0:
450449
logger.error("Unsafe deletion due to objects %s", prevent_obj_head)
451-
sql = text("SELECT DISTINCT objid FROM objectsclassifhisto WHERE classif_id = ANY (:een)")
450+
sql = text(
451+
"SELECT DISTINCT objid FROM objectsclassifhisto WHERE classif_id = ANY (:een)"
452+
)
452453
res3: Result = session.execute(sql, {"een": list(final_delete)})
453454
prevent_obj_histo = {an_id for an_id, in res3}
454455
if len(prevent_obj_histo) > 0:
455456
logger.error("Unsafe deletion due to objects history %s", prevent_obj_histo)
456457
# assert len(prevent_obj_head) == 0 and len(prevent_obj_histo) == 0, "Cannot achieve safe deletion"
457458
logger.info("deleting categories")
458459
session.execute(text("alter table taxonomy disable trigger all"))
460+
for i in range(0, len(final_delete), 20):
461+
logger.info("Taxo delete, list: %s", final_delete[i : i + 20])
459462
try:
460463
for a_taxon in final_delete:
461-
logger.info("deleting category %s", a_taxon)
462464
taxon = session.query(Taxonomy).get(a_taxon)
463465
session.delete(taxon)
464466
finally:
465467
session.execute(text("alter table taxonomy enable trigger all"))
466468

467469

468-
469470
class TaxonBOSet(object):
470471
"""
471472
Many taxa.

0 commit comments

Comments
 (0)