From 15277b868d1261bb5f83915a94c7337eb4b7904c Mon Sep 17 00:00:00 2001 From: Kori Kuzma Date: Mon, 16 Feb 2026 14:51:38 -0500 Subject: [PATCH 01/17] wip: update to aac 2017 changes --- civicpy/cli.py | 15 +- civicpy/data/test_cache.pkl | Bin 34813484 -> 34814821 bytes civicpy/exports/civic_gks_record.py | 263 +++++++++++++++------------- civicpy/exports/civic_gks_writer.py | 28 +-- civicpy/exports/civic_vcf_writer.py | 1 - civicpy/tests/test_exports.py | 180 +++++++++---------- docs/exports.rst | 54 ++---- setup.py | 2 +- 8 files changed, 246 insertions(+), 297 deletions(-) diff --git a/civicpy/cli.py b/civicpy/cli.py index 3e35221..2acedd0 100644 --- a/civicpy/cli.py +++ b/civicpy/cli.py @@ -4,10 +4,7 @@ from civicpy import LOCAL_CACHE_PATH, civic from civicpy.exports.civic_gks_record import ( CivicGksRecordError, - CivicGksPredictiveAssertion, - CivicGksDiagnosticAssertion, - CivicGksPrognosticAssertion, - create_gks_record_from_assertion, + CivicGksAssertion ) from civicpy.exports.civic_gks_writer import CivicGksWriter, GksAssertionError from civicpy.exports.civic_vcf_writer import CivicVcfWriter @@ -100,11 +97,7 @@ def create_gks_json(organization_id: int, output_json: Path) -> None: logging.exception("Error getting organization %i", organization_id) return - records: list[ - CivicGksDiagnosticAssertion - | CivicGksPredictiveAssertion - | CivicGksPrognosticAssertion - ] = [] + records: list[CivicGksAssertion] = [] errors: list[GksAssertionError] = [] for approval in civic.get_all_approvals_ready_for_clinvar_submission_for_org( @@ -113,9 +106,7 @@ def create_gks_json(organization_id: int, output_json: Path) -> None: assertion = approval.assertion if assertion.is_valid_for_gks_json(emit_warnings=True): try: - gks_record = create_gks_record_from_assertion( - assertion, approval=approval - ) + gks_record = CivicGksAssertion(assertion, approval=approval) except (CivicGksRecordError, NotImplementedError) as e: errors.append( GksAssertionError(assertion_id=assertion.id, message=str(e)) diff --git a/civicpy/data/test_cache.pkl b/civicpy/data/test_cache.pkl index f8ff2325b8696bd1707997156731ec1bd303fe45..9fed967f3bf920b298e54170007cfe58ea2a3bdf 100644 GIT binary patch delta 2853088 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ͬ}WVI?XE-ksITnwqDW~}pM96w`O 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