Skip to main content

A minimal example package with pybind11

Project description

scikit_build_example

Gitter

CI status
conda.recipe Conda Actions Status
pip builds Pip Actions Status

An example project built with pybind11 and scikit-build-core. Python 3.7+ (see older commits for older versions of Python using scikit-build (classic)).

Installation

  • Clone this repository
  • pip install ./scikit_build_example

Test call

import scikit_build_example

scikit_build_example.add(1, 2)

Files

This example has several files that are a good idea, but aren't strictly necessary. The necessary files are:

  • pyproject.toml: The Python project file
  • CMakeLists.txt: The CMake configuration file
  • src/main.cpp: The source file for the C++ build
  • src/scikit_build_example/__init__.py: The Python portion of the module. The root of the module needs to be <package_name>, src/<package_name>, or python/<package_name> to be auto-discovered.

These files are also expected and highly recommended:

  • .gitignore: Git's ignore list, also used by scikit-build-core to select files for the SDist
  • README.md: The source for the PyPI description
  • LICENSE: The license file

There are also several completely optional directories:

  • .github: configuration for Dependabot and GitHub Actions
  • conda.recipe: Example recipe. Normally you should submit projects to conda-forge instead of building them yourself, but this is useful for testing the example.
  • docs/: Documentation
  • tests/: Tests go here

And some optional files:

  • .pre-commit-config.yaml: Configuration for the fantastic static-check runner pre-commit.
  • noxfile.py: Configuration for the nox task runner, which helps make setup easier for contributors.

This is a simplified version of the recommendations in the Scientific-Python Development Guide, which is a highly recommended read for anyone interested in Python package development (Scientific or not). The guide also has a cookiecutter that includes scikit-build-core and pybind11 as a backend choice.

CI Examples

There are examples for CI in .github/workflows. A simple way to produces binary "wheels" for all platforms is illustrated in the "wheels.yml" file, using cibuildwheel.

License

pybind11 is provided under a BSD-style license that can be found in the LICENSE file. By using, distributing, or contributing to this project, you agree to the terms and conditions of this license.

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

pybindtest-0.0.2.tar.gz (256.0 kB view details)

Uploaded Source

Built Distribution

pybindtest-0.0.2-cp311-cp311-win_amd64.whl (56.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

File details

Details for the file pybindtest-0.0.2.tar.gz.

File metadata

  • Download URL: pybindtest-0.0.2.tar.gz
  • Upload date:
  • Size: 256.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.1

File hashes

Hashes for pybindtest-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e81aa84d5dd67c6f5f335df1b20bff77f4c723a474c8d2c4520e231b4204d797
MD5 d91a283578b74d47b09221da1e1ae92d
BLAKE2b-256 201a85389a2a6ae6389178b15c12ad603cda99b1a5d606bfcb20dbabf27c127d

See more details on using hashes here.

File details

Details for the file pybindtest-0.0.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pybindtest-0.0.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b78ce34c22802840cf8f27113bc90eb97e4b500753d1e6188ab0fcfbbfcdf0a8
MD5 9da7a3a30592e3cf3395db620bf5d8a5
BLAKE2b-256 231e950af030f4e3ca76d1f2db5cfafa041c5ddc97e0b46013499f9eb8f3cbde

See more details on using hashes here.

Supported by

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