Skip to main content

Build-time C++ binding-substrate headers for the SciForge ecosystem (never a runtime dependency).

Project description

sciforge-build

Build-time distribution of the SciForge C++ binding substrate headers (<sciforge/binding/...>). It is never a runtime dependency — list it in your build-system.requires and add sciforge_build.get_include() to your extension's include_dirs at wheel-build time. Pure-Python (py3-none-any); CalVer, aligned with the SciForge tag.

Resolving the headers (canonical consumption pattern)

A wheel/sdist build (pip, python -m build, cibuildwheel) resolves the headers through the sciforge-build package above. But a co-development checkout wants the sibling SciForge tree, not a possibly stale pip-installed package. The canonical resolver in a consumer's setup.py tries, in order, an explicit SCIFORGE_INCLUDE override, a sibling sciforge checkout, then the package — so local dev wins, CI/wheel falls through to the package:

def _sciforge_include():
    header = os.path.join("sciforge", "binding", "error.hpp")
    env = os.environ.get("SCIFORGE_INCLUDE")
    if env and os.path.exists(os.path.join(env, header)):
        return env
    sibling = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "sciforge", "include")
    if os.path.exists(os.path.join(sibling, header)):
        return sibling
    try:
        import sciforge_build
        return sciforge_build.get_include()
    except ImportError:
        raise SystemExit("sciforge headers not found: check out RECHE23/sciforge as a "
                         "sibling, pip install sciforge-build, or set SCIFORGE_INCLUDE")

Then include_dirs=["include", _sciforge_include()], and have the Makefile python target export SCIFORGE_INCLUDE=$(SCIFORGE_INCLUDE) (default ../sciforge/include) so a sibling build needs no installed sciforge-build. The exists(error.hpp) guard makes a sibling that lacks binding/ fall through to the package.

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

sciforge_build-2026.6.16.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

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

sciforge_build-2026.6.16-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file sciforge_build-2026.6.16.tar.gz.

File metadata

  • Download URL: sciforge_build-2026.6.16.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for sciforge_build-2026.6.16.tar.gz
Algorithm Hash digest
SHA256 8ac09a0373f1bf47fe65f9c831d94e59463daf9379e8e428379346671dc5b0ef
MD5 fb60db95088f3b6a1a2d3e7822b477f5
BLAKE2b-256 8a1edb1985835fef035ca190d5555f8f8ed2a779fb90ed44505537c97a5483bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for sciforge_build-2026.6.16.tar.gz:

Publisher: release.yml on RECHE23/sciforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sciforge_build-2026.6.16-py3-none-any.whl.

File metadata

File hashes

Hashes for sciforge_build-2026.6.16-py3-none-any.whl
Algorithm Hash digest
SHA256 a1b99c1ad61f0faea532e6d0eec08efb3a1cf4f52560aa7590591f2b25eb3d5f
MD5 2126afeaa00ae99148fddb562727c315
BLAKE2b-256 c6bbd37ec5f0cd3247b5b1d6ce8f05125edec223715dcd1a47a3ee8ff804fa86

See more details on using hashes here.

Provenance

The following attestation bundles were made for sciforge_build-2026.6.16-py3-none-any.whl:

Publisher: release.yml on RECHE23/sciforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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