Brief++
A lightweight, embeddable C++17 library for generating technical and scientific reports in Markdown/MyST, reStructuredText/Sphinx, HTML, LaTeX, Typst, plain text, and JSON AST. The C++ core is header-only and has no external dependencies.
Quick start
Add include/ to your compiler's include path, or use the optional CMake target:
add_subdirectory(external/briefpp)
target_link_libraries(application PRIVATE briefpp::briefpp)
#include <briefpp/report.hpp>
int main() {
briefpp::Document doc;
doc.title("Simulation Report").author("Research Team");
auto& results = doc.section("Results");
results.paragraph().text("The simulation converged. See ")
.reference("density-profile").text(" for the profile.");
results.equation(R"(E = mc^2)", "energy");
results.figure("density.png").caption("Density profile")
.label("density-profile").width(0.8);
results.table().columns("Parameter", "Value", "Unit")
.row("Temperature", "273.15", "K");
doc.write("report.md");
doc.write("report.rst");
doc.write("report.tex");
doc.write("report.html");
doc.write("report.typ");
doc.write("report.txt");
doc.write("report.json");
}
Run cmake -S . -B build && cmake --build build && ctest --test-dir build to build and test. The complete example is in examples/atmospheric.cpp.
To regenerate the example exports, install pdflatex and run cmake --build build --target briefpp_demo after configuring. This writes all seven text formats, report.pdf, the sample figure, and the HTML stylesheet to examples/output. The example covers metadata, styled text, links, references, formulas, figures, both table styles, nested lists, definitions, notes, code, fragments, and backend-specific content. Edit examples/atmospheric.cpp and run the target again to refresh every export.
The standalone test build downloads doctest v2.5.3 through CMake FetchContent. When this repository is added as a subdirectory of another project, tests and examples default to off, so the header-only C++ library needs no download.
PyPI header package
The briefpp Python distribution includes native bindings and the C++ headers. Install it with pip install briefpp, then create and render a report:
from briefpp import Document
doc = Document().title("Experiment").author("Research team")
results = doc.section("Results")
results.paragraph().text("The answer is ").strong("42")
results.table().columns(["Measure", "Value"]).row(["Answer", "42"])
doc.write("report.md")
print(doc.render("html"))
See the Python guide for the full binding API, supported formats, and source builds. C++ users can obtain the installed header directory with python -c 'import briefpp; print(briefpp.get_include())' and pass it to their compiler with -I.
To publish a version, update both project.version in pyproject.toml and the version in CMakeLists.txt and push the changes. For automatic publishing, create a tag v<version> (for example, v0.2.1) and publish a GitHub release for it. For manual publishing without a tag, choose Actions → Publish to PyPI → Run workflow and select the branch containing the version you want to publish. The workflow builds the selected commit, verifies that the CMake and Python versions match (and checks the tag for release runs), builds platform wheels and a source archive, checks the package, and uploads the distributions to PyPI using Trusted Publishing. PyPI does not accept a second upload of the same version. Configure the PyPI trusted publisher for this repository and .github/workflows/publish-pypi.yml; no GitHub Actions API token secret is needed. If the PyPI publisher specifies a GitHub environment, set the same environment on the publish job.
Supported subset
The semantic model supports metadata, nested sections, reusable inline content, citations, equations, figures, headered and headerless tables, nested lists, definition lists, code blocks, quotes, admonitions, horizontal rules, page breaks, IDs, semantic roles, backend-specific raw blocks, and reusable document fragments. Markdown output uses MyST directives for equations, figures, and admonitions. RST output targets Sphinx. HTML includes responsive styling and MathJax rendering by default; HtmlRenderer{}.clean_html() emits plain HTML without CSS or scripts. LaTeX, HTML, and Typst renderers have small backend-specific configuration APIs; LaTeX can map roles to style-defined environments.
Bibliography entries can be added with Document::bibliography_entry(key, author, title, year, url) or Python's Document.bibliography_entry(...). Citations link to these entries, and rendering rejects missing keys. External bibliography database import, parsing, and PDF compilation remain outside the core. A .tex or .typ file can be compiled with an installed external tool. Figure files must exist at the paths used when rendering or compiling the report. See renderer behavior and degradation for format-specific details.
The C++ API is documented in the Sphinx documentation.
GitHub Actions runs the doctest suite and builds the Sphinx HTML website on pushes and pull requests. On pushes to main, it publishes the site to GitHub Pages after the tests pass. Enable Settings → Pages → Build and deployment → GitHub Actions in the repository once; the site will then be available at vrtulka23.github.io/briefpp. The sphinx-site artifact remains available from each workflow run.
Metadata
Release files for briefpp 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| briefpp-0.2.1.tar.gz | 298.5 kB | Details |
Built distributions (wheels)
Total release size: 6.0 MB
Release files / briefpp-0.2.1.tar.gz
| Download URL | briefpp-0.2.1.tar.gz |
|---|---|
| Size | 298.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a876db9d427d9e7a4dc2dbf7cdf5652e521a48900c26a76e2ce807dacbcdd65
|
|
BLAKE2b-256 checksum How to use checksums |
7a3f935e7246d58e71779f21cb3758078e441c04d13bf6252706c7054614c0b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp314-cp314-win_amd64.whl
| Download URL | briefpp-0.2.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 242.4 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ae0c11a0f551a5045daf1d04dc46693444c7090debd56defbd91eb0733c90771
|
|
BLAKE2b-256 checksum How to use checksums |
2ef56585ce41867d0f58c3c96a2597d5375ab06d5d39d6acaf0f274c95c4d7ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | briefpp-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 272.5 kB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
fd10f59d2fdd2c8b7566b9d75bc4f913d8de017acde450054d2aad9733c81d6f
|
|
BLAKE2b-256 checksum How to use checksums |
05ab5f3aa75df2346a9f225c54349ae8b7aad827c3121e1801df949c944eb25c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | briefpp-0.2.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 217.5 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ee0b9b8536f7e1539dec7324c362e600ad754c0b400b6c4d844f267aded78f23
|
|
BLAKE2b-256 checksum How to use checksums |
82ccff9ce740d95bceae97f7128f26d33ccc87540011fae5c816daf95a850981
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | briefpp-0.2.1-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 232.9 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
825854fd77c3ba902cd2dc800927ab6085e92692c6e912f20518286459b24cf5
|
|
BLAKE2b-256 checksum How to use checksums |
e07d406a4dfe94cecf3acb6fd5c6d0cdbcec2643f25b18bac91f38e87e64b918
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp313-cp313-win_amd64.whl
| Download URL | briefpp-0.2.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 235.8 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9e5300c703bbb0e237a82c53cc15246540a20e58f0a008bde62c7bc3d79c65ed
|
|
BLAKE2b-256 checksum How to use checksums |
e8e950329b343ca1bd3c9fac479e4b838956ab7bfaeb1d5639c7fd55c37194c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | briefpp-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 272.4 kB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1289fff5015cf54ab51adf789a41ae249804dfca672f648476da90884ff153be
|
|
BLAKE2b-256 checksum How to use checksums |
2d894ee0ccc24948369aec713518439fb312758de4f01995d96cb9e90d1e64e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | briefpp-0.2.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 217.0 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5e517ed9cbd197225bb28f4b3c84774a891006a305c65919016c7c3f1648176d
|
|
BLAKE2b-256 checksum How to use checksums |
fd2697eb3f851bc5f4d13a0b53d3eb3e3e307bc9a2ef5f911247669a53d37170
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | briefpp-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 232.6 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
88c92dae3e3ceb84c5ff954752a2d9292b18d012336a21cdba5b77e129070a43
|
|
BLAKE2b-256 checksum How to use checksums |
fe0e4c48a5a86bc7b801115e24a93d41faa276185cd173da010500968eaa1128
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp312-cp312-win_amd64.whl
| Download URL | briefpp-0.2.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 235.8 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f979b3d55cf84e5497d5ef4871231dddc35d203970d022b4632f41c41961cb85
|
|
BLAKE2b-256 checksum How to use checksums |
62c4e6adcf946ccab49980d7d1e8ccfee65ea10ffdca94c7d2c4e3e2ff19956d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | briefpp-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 271.9 kB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2c41de6b4ab29cf5897eda669f405ca92fbbc7071acf00b75233cf8f643c2c1e
|
|
BLAKE2b-256 checksum How to use checksums |
46e9ca3d3dcd358567fa52d23fd3b4a66d8cc20ea9e0edac5d6046b96e7e6ba5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | briefpp-0.2.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 217.0 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5d12a1278227edd31cd0c61bc6a38bbcf4ec0b091bbaf998486a40f9565ed913
|
|
BLAKE2b-256 checksum How to use checksums |
b3d8c4cdbe6704fc874cd1e9a10efcdb770b4288d4b9d96e5872ab4a5adfcf1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | briefpp-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 232.5 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
8330ddda79e3b0e9a55444f9c53afdbc0ae86a12093326e7a5ed03e991692d3c
|
|
BLAKE2b-256 checksum How to use checksums |
9cdff15c0efb12721ead4d528fe3dcf30d540005dbb3ffbca648df2a2c5747b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp311-cp311-win_amd64.whl
| Download URL | briefpp-0.2.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 234.4 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
86e2ac21df4111a11c2e6126803200a521a30f7cd9762dd26a9d554f8f40d293
|
|
BLAKE2b-256 checksum How to use checksums |
78daa0b863f774e929aa3334f690a3872b9bbc15c5f0f2c63fb2d09a82e3533c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | briefpp-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 268.3 kB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
626d670cdf117eff4d93517913424f48f0771b83122d01e226fe40b923cffb06
|
|
BLAKE2b-256 checksum How to use checksums |
f261b574a0a527bbef89f111133400976612536448fb4fe66d56dd5efe7c9f48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | briefpp-0.2.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 216.8 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2a6920d722922e396fc0a0b2413361c34ce05b1dde911cfaef370c996dd9b6a1
|
|
BLAKE2b-256 checksum How to use checksums |
87127c519f53d02d873c9de613cce657c4070bac7c013b647bf180a80ab18a6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | briefpp-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 229.0 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
81199efc3eb4a08e643f359cf03adbf64047518f594c78205895ff13b13c9ed8
|
|
BLAKE2b-256 checksum How to use checksums |
f531a5e753d938e71850a947cb6b0e968afbb31924285e06db56865d7d92d22b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp310-cp310-win_amd64.whl
| Download URL | briefpp-0.2.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 233.1 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
12ea453f8f2f501215e8b8cbc08bf97de85b83974528125fe7d74e39d62fb1eb
|
|
BLAKE2b-256 checksum How to use checksums |
833ff932b87a7f39043d0f16907fa8649552b802a6ff421ac99a9fce607be5aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | briefpp-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 267.9 kB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5d38495b10408ecf9b37e1cf5c9e80d18ea5aaeddccc2b22f04577c574c4f4e9
|
|
BLAKE2b-256 checksum How to use checksums |
358386683502e9a533c251bf7964c5bf4228684e19c1e4629f8e579aade1c18b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | briefpp-0.2.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 215.8 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f64f17bf98aaae8ee29a9dfdee8cc86f7773267a226620556ce854c888bffd84
|
|
BLAKE2b-256 checksum How to use checksums |
02bdae08e7c030a43f25c8008ffe4db72577be42449a3dcae408b4eee73cbb7d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
| Download URL | briefpp-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl |
|---|---|
| Size | 227.7 kB |
| Tags | CPython 3.10 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
72a69f57b40b7218e8108b31837acd0bd4ee38c2a5b731c8d2b23fdc10c4c9ed
|
|
BLAKE2b-256 checksum How to use checksums |
070a0e32a593827bb1524901c335e94d168eeb20f2d2fedabf1b39fd65937dbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp39-cp39-win_amd64.whl
| Download URL | briefpp-0.2.1-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 233.3 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f8322ceb9764636911811bacabc414cdf3df9abe71d3bee058e305bb028f8437
|
|
BLAKE2b-256 checksum How to use checksums |
2045cbd1d6a5afdbd5b08bf0809446a538f1b78ffbea8ae379c0d1d290fd9c7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | briefpp-0.2.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 267.4 kB |
| Tags | CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4a47b6d88502bb6be96751f7e8af9196e7fd9a39f75deed904c4a6d535a148c7
|
|
BLAKE2b-256 checksum How to use checksums |
70b2774087c6a5f9e40f58158708a1498552b720634b7eb9610acde24a2fcbf0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | briefpp-0.2.1-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 215.9 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a6c276d0f9bd670763cfee421ab101f29d0cc12e8d861aeca9cf81ddefecc376
|
|
BLAKE2b-256 checksum How to use checksums |
df714ef686bacc96c4da5b2eb12ad94e07b7d88e0542f650d8601f0bb3fb3359
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / briefpp-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
| Download URL | briefpp-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl |
|---|---|
| Size | 227.7 kB |
| Tags | CPython 3.9 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
7ee42bc58b837f2227137af332999655e68afba9d6289bb1ca58fc86264356c3
|
|
BLAKE2b-256 checksum How to use checksums |
496a70545b049650309f73b739e974dd49b859538b38f077719be1fa3127af91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|