Skip to content

Commit 6656652

Browse files
Merge pull request #21 from OpenStatSpec/fix/consistent-read-snapshot
Read export data, fidelity and validation from one native snapshot
2 parents 790051c + ca08100 commit 6656652

5 files changed

Lines changed: 492 additions & 173 deletions

File tree

‎src/openstatspec/spss/sav.py‎

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@
5454
from ..sql.wide import (
5555
create_wide_dataset,
5656
physical_name,
57-
read_fidelity_events,
58-
read_wide_dataset,
57+
_read_fidelity_events,
58+
_read_snapshot,
59+
_read_wide_dataset,
5960
validate_spss_catalog,
6061
)
6162

@@ -556,20 +557,21 @@ def export_sav_dataset(
556557
destination_path = Path(destination)
557558
if destination_path.suffix.lower() not in {".sav", ".zsav"}:
558559
raise UnsupportedOperationError("Export destinations must use the .sav or .zsav extension.")
559-
dataset, variables, rows = read_wide_dataset(
560-
database_url=database_url, dataset_id=dataset_id,
560+
with _read_snapshot(
561+
database_url=database_url,
561562
dolt_conformance_source=dolt_conformance_source,
562-
)
563+
) as (connection, profile):
564+
dataset, variables, rows = _read_wide_dataset(
565+
connection, dataset_id=dataset_id, profile=profile,
566+
)
567+
persisted_events = _read_fidelity_events(
568+
connection, dataset_id=dataset["dataset_id"], direction="import",
569+
)
563570
validate_spss_catalog(
564571
variables,
565572
case_weight_variable=dataset.get("case_weight_variable"),
566573
multiple_response_sets=dataset.get("multiple_response_sets"),
567574
)
568-
persisted_events = read_fidelity_events(
569-
database_url=database_url, dataset_id=dataset_id,
570-
direction="import",
571-
dolt_conformance_source=dolt_conformance_source,
572-
)
573575
if legacy_locale is not None:
574576
persisted_events = tuple(
575577
event for event in persisted_events

0 commit comments

Comments
 (0)