Skip to main content

sprezzature-video

🇫🇷 LISEZMOI.md · 🇬🇧 README.md

A film about a project makes claims about that project — how many chart kinds, how many tests, how many packages — and burns them into pixels, where nothing ever reads them again. Prose in a README gets re-read. A number in a keyframe does not.

So this package is not a renderer. Its centre is a checker that holds a film's assertions against the code they describe, in both directions, and the renderer sits behind a seam because which tool grabs the frames is the least interesting decision here.

Part of the sprezzature suite.


Why it exists

The five films that served on sprezzature.ai said "127 chart kinds". The catalogue had held 167 since September. The number was baked into ten compositions and five rendered MP4s, so nothing short of a re-cut could correct it — and nothing, anywhere, was watching. That is this package's whole subject.

What's here

Module What it owns
claims A claim is a declared pair: the text on screen, and the place in the code that decides whether it is true. verify_all checks every declared claim still holds; undeclared_numbers checks every number visible on screen is a declared claim.
assets Can this film be rendered again from a clone? Three classes: TRACKED (a copy of a tracked file, proved equal to its source), DERIVED (output of a tool still on the machine), SOLE (exists in exactly one place). Divergence is reported, never silently repaired.
captions WebVTT built from the narration script and the measured length of each audio file — not transcribed, and not typed.
post The poster baked as frame 0, because Slack, X and Discord regenerate their thumbnail server-side from the first frame whatever a poster= attribute says. Plus loudness normalisation across a series.

Both directions, and why the second one matters

from sprezzature_video import Claim, ClaimSource, verify, undeclared_numbers

claim = Claim(
    text="167 kinds, every one hand-authored.",
    value=167,
    source=ClaimSource(
        path="sprezzature-figures/sprezzature_figures/catalog/figures.json",
        method="json_len",
    ),
)
verify(claim, root).ok  # does the code still agree?
undeclared_numbers(html, [claim])  # is anything on screen unaccounted for?

Checking only declared claims protects the numbers somebody remembered to declare — never the one typed into a keyframe at midnight and left to go stale.

Install

pip install sprezzature-video                    # the checker and the ledger
pip install 'sprezzature-video[voice,post]'      # plus narration and ffmpeg work

Boundaries

Which package owns what, between this suite and ai-helpers, is written down in BOUNDARIES.md. The short version: ai-helpers owns the primitive, sprezzature owns the opinion. Voice arrives through sprezzature-audio[narrate], ffmpeg through video-helper, and rendering through Hyperframes behind a seam.

Status

0.2.0. The checker, the asset ledger, the captions, the post-processing, the YAML spec loader and all five surfaces are written and tested — 46 tests, with CI on 3.10/3.11/3.12. The renderer seam is still out of band: Hyperframes is driven directly, and renderers/ returns in the commit that gives it a module.

License

BSD-3-Clause.

Metadata

Release files for sprezzature-video 0.2.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 sprezzature-video 0.2.0
File Size Uploaded Provenance Actions
sprezzature_video-0.2.0.tar.gz 39.6 kB Without provenance Details for sprezzature_video-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for sprezzature-video 0.2.0
File Interpreter ABI Platform Actions
sprezzature_video-0.2.0-py3-none-any.whl Python 3 none any Details for sprezzature_video-0.2.0-py3-none-any.whl

Total release size: 74.1 kB

Release files / sprezzature_video-0.2.0.tar.gz

Download URL sprezzature_video-0.2.0.tar.gz
Size 39.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d7b174f5d33733bacf902463ed51ce4e13f3b53311451b962a2f172b29639857
BLAKE2b-256 checksum
How to use checksums
8d38d6331bfa9c4e376f765bf729ed80b45d0d6024b5b92981f2a0fd1ce8d84f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release files / sprezzature_video-0.2.0-py3-none-any.whl

Download URL sprezzature_video-0.2.0-py3-none-any.whl
Size 34.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
995d8255dcb62e47d338d003892e3a9c87348f32295eb0d5207124ee0734883c
BLAKE2b-256 checksum
How to use checksums
02d99f6acf2e2db525e34c07066d30c167d76055c3536c3de44a9d3fd75a2267
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Security for sprezzature-video 0.2.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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

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