Skip to main content

OpenStatSpec Python

The reference Python implementation of the OpenStatSpec specification.

This package implements the specification; it does not define or extend it. The normative model lives in the OpenStatSpec/specification repository.

Boundaries

For each supported import, one source dataset becomes one dedicated wide SQL table. Cases are rows and source variables are physical SQL columns. The singular UUID-keyed tables from the specification (dataset, variable, operation, fidelity_event, and related metadata tables) are the public catalog contract. Historical *_catalog tables are an internal compatibility layer for the current exporter and are not the standard database interface. The adapter does not reshape data, create EAV or long-form tables, or harmonize studies or waves.

Unsupported source features, SQL targets, or export paths fail explicitly. There is no silent truncation, type conversion, metadata loss, or partial import.

Package layout

  • openstatspec.core: pure standard concepts, validation, versions, capabilities, and loss reports.
  • openstatspec.sql: database connection and wide-table/catalog operations.
  • openstatspec.spss: SAV/ZSAV adapter boundary.

Intended workflow

from openstatspec import export_sav, import_sav

import_sav("responses.sav", database_url="postgresql+psycopg://user:password@server/database", dataset_id="responses-2026")
export_sav(database_url="postgresql+psycopg://user:password@server/database", dataset_id="responses-2026", destination="responses-roundtrip.sav")
openstatspec import responses.sav --database-url postgresql+psycopg://... --dataset-id responses-2026
openstatspec export --database-url postgresql+psycopg://... --dataset-id responses-2026 --output responses-roundtrip.sav

0.1.0 support status

The adapter requires openstatspec-pyspssio==0.5.1.post2 as its sole SPSS engine. Its import module remains pyspssio; the exact source commit is recorded in operation metadata. There is no fallback reader or writer. It supports unencrypted SAV and ZSAV import and SAV/ZSAV export for the semantics exposed by that engine. SQLite is the local reference path. PostgreSQL, MySQL, and MariaDB are each covered by separate service-backed CI conformance checks. Use these explicit SQLAlchemy URLs:

  • SQLite: sqlite:///dataset.sqlite
  • PostgreSQL: postgresql+psycopg://user:password@host/database
  • MySQL/MariaDB: mysql+pymysql://user:password@host/database

Run openstatspec capabilities before an integration to inspect the machine-readable feature matrix. Export is deliberately strict: if known dictionary semantics cannot be reproduced, it stops until you pass the exact diagnostic code with --allow-loss. This avoids silent loss while making an intentional lossy export auditable.

The matrix is also available to Python callers as openstatspec.capability_matrix(). It distinguishes supported semantics from unobservable and fail-closed paths; see the SAV profile for the exact the openstatspec-pyspssio boundary.

See the SAV profile for feature boundaries and release readiness for the pre-tag checklist. Read third-party notices before distributing a bundled application: the required engine includes IBM redistributables under separate terms.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openstatspec-0.1.0.tar.gz (60.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openstatspec-0.1.0-py3-none-any.whl (42.3 kB view details)

Uploaded Python 3

File details

Details for the file openstatspec-0.1.0.tar.gz.

File metadata

  • Download URL: openstatspec-0.1.0.tar.gz
  • Upload date:
  • Size: 60.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for openstatspec-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9108aa7cdb5d29e2ba5baae5bc4e3940324ab5c7186e912ea6641b5aa9f06cee
MD5 5372decf164f34c0321e2a4fab4b0abe
BLAKE2b-256 ead2204b3c3262bf76ff307cd4e176433e713940366a018a80e73e929f4a3832

See more details on using hashes here.

Provenance

The following attestation bundles were made for openstatspec-0.1.0.tar.gz:

Publisher: release.yml on OpenStatSpec/python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openstatspec-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: openstatspec-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 42.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for openstatspec-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c8c4e5d44169c02ffef2254c74421d9c7660331019c7216af755670287e0746
MD5 4c59392fa2126e6bef9566e2bc5af33b
BLAKE2b-256 848624601924690e4ec104bb7e85602ed7f3590d4890dc3c82373213a91ae83c

See more details on using hashes here.

Provenance

The following attestation bundles were made for openstatspec-0.1.0-py3-none-any.whl:

Publisher: release.yml on OpenStatSpec/python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page