OpenExit
Portable state for any application.
This package implements PASP — the Portable Application State Protocol — for Python. OpenExit is the implementation and ecosystem; PASP 1.0 is the language-neutral protocol. SDK version 0.1.0 is separate from protocol version 1.0.
Install
pip install openexit
Inspect and verify
from openexit import inspect_bundle, verify_bundle
bundle = inspect_bundle("./acme.pasp")
print(bundle.pasp_version)
print(bundle.scope)
print(bundle.resources)
verified = verify_bundle("./acme.pasp")
print(verified.verified)
inspect_bundle reads the manifest, descriptors, relationship metadata, and asset index. verify_bundle additionally streams all resource records and asset bytes, checks record schemas and identities, counts, and SHA-256 hashes. Both accept directory bundles.
Manifest validation
from pathlib import Path
from openexit import parse_manifest, validate_manifest
manifest = parse_manifest(Path("./acme.pasp/manifest.json"))
validate_manifest(manifest) # returns None or raises PaspError
parse_manifest also accepts a mapping, JSON text, or UTF-8 JSON bytes. A string is treated as JSON text; pass a Path to read a file. Parsing does not imply validation. Models retain the raw manifest fields. Protocol errors expose a stable code:
from openexit import PaspError
try:
verify_bundle("./acme.pasp")
except PaspError as exc:
print(exc.code)
Protocol source
The canonical PASP definition is in the repository at protocol/pasp/v1/; the shared suite is protocol/pasp/v1/conformance/suite.json. Installed wheels contain exact copies of the canonical JSON Schemas and do not require the repository at runtime.
Current limits
This SDK reads PASP 1.0 directory bundles. It does not export or import application state, run adapters, execute external processes, unpack archives, or check full referential integrity. Inspection and verification use bounded file reads; one NDJSON record or metadata file is parsed at a time. Symlinks that leave the bundle root are rejected.
Metadata
Release files for openexit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| openexit-0.1.0.tar.gz | 15.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openexit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.9 kB
Release files / openexit-0.1.0.tar.gz
| Download URL | openexit-0.1.0.tar.gz |
|---|---|
| Size | 15.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0d9e8f49b211be1c14eaf11275bc6e51262c285b8d08ece7bb3fa8862163ec5f
|
|
BLAKE2b-256 checksum How to use checksums |
ac3e204e166d412b56762e77b99b1c88db5345fed9d9b760ffbab245cd5e08ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / openexit-0.1.0-py3-none-any.whl
| Download URL | openexit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
84f6126992fba1c6d37956761654baafc825cf65836b0b1ca8785da5173f4f02
|
|
BLAKE2b-256 checksum How to use checksums |
2d55f9bc32ca16cf35b2289d854f5105ad4255c879e5f484bf7bf3ebeb4ff094
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for openexit 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.