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.9+ (see older commits for 3.7+, or even 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

pypto-0.0.1.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

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

pypto-0.0.1-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file pypto-0.0.1.tar.gz.

File metadata

  • Download URL: pypto-0.0.1.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for pypto-0.0.1.tar.gz
Algorithm Hash digest
SHA256 4dcf0f90b321e00e49cf0636bf23d905c98a6acdbb60b9211a38825fb7d38a1b
MD5 4b782028e90c04daddbf657e28ab3a2f
BLAKE2b-256 20d574a2572f32b8079f4826a8251bcc19221ecb142f86d54f1ae812eff18de2

See more details on using hashes here.

File details

Details for the file pypto-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pypto-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for pypto-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d7c816706b064bf10c33f4cb20615587dbdb1b2339207762f864807b9eee66e0
MD5 f77a456e9ad760dd681cc19eae6a2712
BLAKE2b-256 344167c99d5c6052a9adfa31671c5a0a5b063086c7d79143202cde5ce8c59d28

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