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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9108aa7cdb5d29e2ba5baae5bc4e3940324ab5c7186e912ea6641b5aa9f06cee
|
|
| MD5 |
5372decf164f34c0321e2a4fab4b0abe
|
|
| BLAKE2b-256 |
ead2204b3c3262bf76ff307cd4e176433e713940366a018a80e73e929f4a3832
|
Provenance
The following attestation bundles were made for openstatspec-0.1.0.tar.gz:
Publisher:
release.yml on OpenStatSpec/python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openstatspec-0.1.0.tar.gz -
Subject digest:
9108aa7cdb5d29e2ba5baae5bc4e3940324ab5c7186e912ea6641b5aa9f06cee - Sigstore transparency entry: 2280655031
- Sigstore integration time:
-
Permalink:
OpenStatSpec/python@a1391f1de059aabdd2e939e3929a36e40e65f8cc -
Branch / Tag:
refs/heads/main - Owner: https://github.com/OpenStatSpec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a1391f1de059aabdd2e939e3929a36e40e65f8cc -
Trigger Event:
workflow_dispatch
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c8c4e5d44169c02ffef2254c74421d9c7660331019c7216af755670287e0746
|
|
| MD5 |
4c59392fa2126e6bef9566e2bc5af33b
|
|
| BLAKE2b-256 |
848624601924690e4ec104bb7e85602ed7f3590d4890dc3c82373213a91ae83c
|
Provenance
The following attestation bundles were made for openstatspec-0.1.0-py3-none-any.whl:
Publisher:
release.yml on OpenStatSpec/python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openstatspec-0.1.0-py3-none-any.whl -
Subject digest:
5c8c4e5d44169c02ffef2254c74421d9c7660331019c7216af755670287e0746 - Sigstore transparency entry: 2280593337
- Sigstore integration time:
-
Permalink:
OpenStatSpec/python@cc40d27afc4474e940388b6519936d769b796bb4 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/OpenStatSpec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cc40d27afc4474e940388b6519936d769b796bb4 -
Trigger Event:
push
-
Statement type: