Skip to main content

Supertest for Python

The distribution is schematic-supertest; import it as schematic. Install from this repository until a registry release exists:

python3 -m pip install -e .
from schematic import *

@supertest
def integer_division_is_bounded(value: int, divisor: int):
    assume(value >= 0 and divisor > 0)
    assert value // divisor <= value

Explicit imports (from schematic import assume, supertest) and qualified names (@schematic.supertest, schematic.assume(...)) also work at runtime. Current Pup documentation requires the star import for discovery of the bare decorator.

The decorator preserves the original callable and attaches immutable metadata. is_supertest and metadata_of expose it; duplicate markers and marker arguments are rejected. Marked functions are excluded from pytest collection.

A true assumption continues. assume(False, message=None) raises AssumptionNotMet, a SystemExit subclass with code == 0. Uncaught on the main thread, it exits successfully without a traceback. The optional message is available as .message. Run one input per process; this does not generate inputs or prove properties.

Python caveat: SystemExit can be intercepted, cleanup in finally blocks still runs, and raising it on a worker thread only terminates that thread. Use the main thread without catching SystemExit/BaseException, or explicitly catch AssumptionNotMet in a runner that classifies rejected inputs. Ordinary except Exception handlers do not catch it. This changes the base class from the old library, which treated rejection as an ordinary exception.

python3 -m unittest discover -s tests -v

Requires Python 3.11+. Adapted from schematic-tech/schematic-supertests at b6ccba3b5e0d42ea2846d0476eeb9496afb4a7f4.

Distribution

The public package name is singular: schematic-supertest on PyPI.

python -m pip install schematic-supertest

It supplies the same schematic import package. Releases contain a platform-neutral wheel and a source distribution, each carrying both license texts and typing metadata. See release automation and PyPI setup.

License

This interoperability library is available under either MIT or Apache-2.0, at your option.

Metadata

Release files for schematic-supertest 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for schematic-supertest 0.1.0
File Size Uploaded
schematic_supertest-0.1.0.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for schematic-supertest 0.1.0
File Interpreter ABI Platform
schematic_supertest-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.1 kB

Release files / schematic_supertest-0.1.0.tar.gz

Download URL schematic_supertest-0.1.0.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9b4d8c88f5df7f0ceea7501a92dcc9a0175f26549aa33bfaa620f0d523080227
BLAKE2b-256 checksum
How to use checksums
cfb4aa057807aa03075ebef6443147d3f8e703e5d1b234ae6f6503c22270887a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release files / schematic_supertest-0.1.0-py3-none-any.whl

Download URL schematic_supertest-0.1.0-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52b184a121517ba491bc452af28a115910152629ffb5bcb79b486477e50adcb8
BLAKE2b-256 checksum
How to use checksums
1a137a2ca1e0505e38618cb9e4c5dd1549bb1e674ee76c9b79c8b4b3eb41897c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page