Skip to main content

Hello-world nanobind extension built against the easybind package (demo / CI smoke test)

Project description

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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cppdantic-0.0.7.tar.gz (12.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cppdantic-0.0.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (248.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cppdantic-0.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (248.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cppdantic-0.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (248.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cppdantic-0.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (248.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file cppdantic-0.0.7.tar.gz.

File metadata

  • Download URL: cppdantic-0.0.7.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cppdantic-0.0.7.tar.gz
Algorithm Hash digest
SHA256 535cd0b8b22e49ffea6909aa4fe8c5db3d1c7bc00a374e48e1e0d188748f9033
MD5 3b5ff5f1e9f408d4a3f6f748252845bc
BLAKE2b-256 3fa1b0d8574d15efbdaa38519fc14962c0ad4e54e6dec31053b11cdc41a098ad

See more details on using hashes here.

File details

Details for the file cppdantic-0.0.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cppdantic-0.0.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5efaf1d69a301603d87f8311a9c400b112159db87bbb76a2baa88089d13daf1c
MD5 0b95f5b89d974d90de40829dd892bcb3
BLAKE2b-256 54cfc58d23258e07dd24c81d3c8fd1f43299c2a675cd5f3d515666bc667efe78

See more details on using hashes here.

File details

Details for the file cppdantic-0.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cppdantic-0.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9df945c5b9e0c2bd79061cf8ab87c18058d95e01e03f007b5427ce88d090bdb6
MD5 5771c2462b45adb39939acb1020e5451
BLAKE2b-256 fe28862bba893b310dfd0ccd9925ce97c8218a35fb0f24fb3f614935d82ff834

See more details on using hashes here.

File details

Details for the file cppdantic-0.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cppdantic-0.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9071d5be270b37dd9f8f930b6065d294edbda7f55e19b64c34437cff6707031
MD5 ff1be52beafad408516ef25ddd07f488
BLAKE2b-256 3138b2c5d3394c8fec04cf875172e42de479186103f55b84379076a933039856

See more details on using hashes here.

File details

Details for the file cppdantic-0.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cppdantic-0.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12c29def4fa57aaef4950145fda560f83a1c1fbff345d898da85b3e9c6f60702
MD5 7e930b29659391e982049280b4f12b44
BLAKE2b-256 3fa731ef496a9bfdf27c8f301f7a7913c683fb563249f6bc86266125397f6d1e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page