cppdantic
Small demo that builds against the easybind package from PyPI. cppdantic and easybind are independent projects (separate repos, separate PyPI names). This repo may include external/easybind as an optional git submodule only so you can browse both trees in one checkout — it is not wired into pyproject.toml as a path dependency.
PyPI: cppdantic (when published). Versioning and tags: RELEASING.md.
Bumping easybind~=…: easybind-pin-pyproject (from easybind). Default = latest v* tag on GitHub (repo URL from that package’s PyPI metadata). Use --from-pypi for PyPI’s published latest instead — see RELEASING.md.
Build / test
You need easybind installed from PyPI (matching the pin in pyproject.toml), plus CMake ≥ 3.25, Ninja, and a C++20 compiler on PATH:
python -m pip install -U pip
python -m pip install "easybind~=0.2.14" # align with pyproject.toml
python -m pip install -e '.[test]'
python -m pytest tests -q
CMake loads easybind/cmake/easybind_pip.cmake from the installed easybind package. PyPI must ship the cmake/ tree for the version you pin.
Optional submodule: if you use git submodule update --init external/easybind, you can also pip install -e /path/to/easybind from that checkout — it is the same easybind project, not a special cppdantic path override.
uv
From the cppdantic repo root:
uv pip install "easybind~=0.2.14"
uv pip install -e ".[test]"
(pyproject.toml sets [tool.uv] no-build-isolation-package = ["cppdantic"] so editable builds use your venv; the [test] extra pulls in setuptools-scm and scikit-build-core for that mode.)
If uv pip install fails with Metadata mismatch in METADATA (setuptools-scm version differs between build phases), clear stale artifacts and install easybind first, then cppdantic:
rm -rf build dist *.egg-info src/cppdantic/*.egg-info
uv pip install -e external/easybind/
uv pip install -e ".[test]"
Ensure src/cppdantic/_version.py is not tracked by git (it is gitignored). If it was ever committed, run git rm --cached src/cppdantic/_version.py.
Tagging
Create an annotated v* tag on main after your pins commit (see RELEASING.md).
Metadata
Release files for cppdantic 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cppdantic-0.0.7.tar.gz | 12.5 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| cppdantic-0.0.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| cppdantic-0.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| cppdantic-0.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| cppdantic-0.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
Total release size: 1.0 MB
Release files / cppdantic-0.0.7.tar.gz
| Download URL | cppdantic-0.0.7.tar.gz |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
535cd0b8b22e49ffea6909aa4fe8c5db3d1c7bc00a374e48e1e0d188748f9033
|
|
BLAKE2b-256 checksum How to use checksums |
3fa1b0d8574d15efbdaa38519fc14962c0ad4e54e6dec31053b11cdc41a098ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cppdantic-0.0.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | cppdantic-0.0.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 248.2 kB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5efaf1d69a301603d87f8311a9c400b112159db87bbb76a2baa88089d13daf1c
|
|
BLAKE2b-256 checksum How to use checksums |
54cfc58d23258e07dd24c81d3c8fd1f43299c2a675cd5f3d515666bc667efe78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cppdantic-0.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | cppdantic-0.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 248.1 kB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9df945c5b9e0c2bd79061cf8ab87c18058d95e01e03f007b5427ce88d090bdb6
|
|
BLAKE2b-256 checksum How to use checksums |
fe28862bba893b310dfd0ccd9925ce97c8218a35fb0f24fb3f614935d82ff834
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cppdantic-0.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | cppdantic-0.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 248.1 kB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a9071d5be270b37dd9f8f930b6065d294edbda7f55e19b64c34437cff6707031
|
|
BLAKE2b-256 checksum How to use checksums |
3138b2c5d3394c8fec04cf875172e42de479186103f55b84379076a933039856
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cppdantic-0.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | cppdantic-0.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 248.7 kB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
12c29def4fa57aaef4950145fda560f83a1c1fbff345d898da85b3e9c6f60702
|
|
BLAKE2b-256 checksum How to use checksums |
3fa731ef496a9bfdf27c8f301f7a7913c683fb563249f6bc86266125397f6d1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|