Skip to main content

Native dependency provider for Dominik Drexler's planning projects

Project description

Yggdrasil

pyyggdrasil packages the native dependency prefix used by the planning projects in this repository family.

The Python distribution name and import package are both pyyggdrasil.

Python Integration

Install the wheel and query the native prefix:

import pyyggdrasil

print(pyyggdrasil.native_prefix())
print(pyyggdrasil.cmake_prefix())  # prefix to put on CMAKE_PREFIX_PATH
print(pyyggdrasil.cmake_dir())     # directory containing yggdrasilConfig.cmake
print(pyyggdrasil.include_dir())
print(pyyggdrasil.library_dirs())
print(pyyggdrasil.cmake_dirs())

The same paths are available from the shell:

python -m pyyggdrasil --prefix
python -m pyyggdrasil --cmake-dir
python -m pyyggdrasil --include-dir
python -m pyyggdrasil --version

Python packages that consume this native prefix should depend on:

dependencies = [
    "pyyggdrasil>=0.0.14,<0.1",
]

The bundled shared libraries make the coupling ABI-level, so pin to the same minor version. The exported CMake package version file uses SameMinorVersion compatibility accordingly.

Build Python

Build a wheel from source:

uv build --wheel

The build creates dependencies-build/ and dependencies-install/. To package an existing native prefix without rebuilding dependencies:

YGGDRASIL_BUILD_NATIVE=OFF \
YGGDRASIL_NATIVE_PREFIX=/path/to/dependencies-install \
uv build --wheel

Set YGGDRASIL_JOBS to control the native dependency build parallelism.

Runtime libraries are stripped in the wheel by default. Disable that for debugging with:

YGGDRASIL_STRIP_WHEEL=OFF uv build --wheel

Build C++

Build the native dependency prefix directly with CMake:

cmake -S src -B dependencies-build \
  -DCMAKE_INSTALL_PREFIX=dependencies-install \
  -DCMAKE_INSTALL_LIBDIR=lib

cmake --build dependencies-build -j4
cmake --install dependencies-build

Yggdrasil builds its bundled dependencies as shared libraries. The native dependency prefix contains C++ headers, shared libraries, and CMake package configuration files consumed by the other projects.

CMake Integration

The wheel ships a CMake package config (yggdrasilConfig.cmake) defining the yggdrasil::yggdrasil interface target. It carries the include directory, C++20 as a compile feature, and the bundled dependencies (Boost, cista, fmt, gtl, TBB) via find_dependency. Downstream CMake projects consume it through CMAKE_PREFIX_PATH:

cmake -S . -B build \
  -DCMAKE_PREFIX_PATH="$(python -m pyyggdrasil --prefix)"
find_package(yggdrasil 0.0.14 CONFIG REQUIRED)
target_link_libraries(my_target PRIVATE yggdrasil::yggdrasil)

For compiler invocations launched from Python, use pyyggdrasil.include_dir() for the C++ headers and pyyggdrasil.library_dirs() for installed native library directories.

fmt Formatters

Yggdrasil's public fmt::formatter specializations are guarded by the YGG_ENABLE_FMT_FORMATTERS macro, which defaults to 1 (yggdrasil/core/config.hpp). Consumers can opt out by defining YGG_ENABLE_FMT_FORMATTERS=0. For Yggdrasil's own builds, the YGGDRASIL_ENABLE_FMT_FORMATTERS CMake option (default ON) toggles the macro. The sibling libraries follow the same convention with LOKI_/TYR_/RUNIR_ENABLE_FMT_FORMATTERS, and each library's CMake option also toggles the macros of its upstream libraries.

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

pyyggdrasil-0.0.14.tar.gz (108.9 kB view details)

Uploaded Source

Built Distributions

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

pyyggdrasil-0.0.14-cp313-cp313-manylinux_2_28_x86_64.whl (48.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pyyggdrasil-0.0.14-cp313-cp313-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyyggdrasil-0.0.14-cp312-cp312-manylinux_2_28_x86_64.whl (48.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pyyggdrasil-0.0.14-cp312-cp312-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyyggdrasil-0.0.14-cp311-cp311-manylinux_2_28_x86_64.whl (48.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pyyggdrasil-0.0.14-cp311-cp311-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyyggdrasil-0.0.14-cp310-cp310-manylinux_2_28_x86_64.whl (48.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pyyggdrasil-0.0.14-cp310-cp310-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyyggdrasil-0.0.14-cp39-cp39-manylinux_2_28_x86_64.whl (48.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

pyyggdrasil-0.0.14-cp39-cp39-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyyggdrasil-0.0.14.tar.gz.

File metadata

  • Download URL: pyyggdrasil-0.0.14.tar.gz
  • Upload date:
  • Size: 108.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyyggdrasil-0.0.14.tar.gz
Algorithm Hash digest
SHA256 14dc325e5afcddf42d36ae0d3b188056304fe4b08c8be49a032d4fceb40598c7
MD5 927c0a4ad389ef1db66303cbdd8758ee
BLAKE2b-256 826ca002afaf3a87099716e82675eb5b9da6d9e68996fa5381f20d183f9563a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14.tar.gz:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e53b9a5c80449afc63f6c99a0ea298adb37027d5d6fcf0fb61061eaee3c5122
MD5 8eda3572f818c108b2bf30f054a10634
BLAKE2b-256 db4e9d1b7ffefd19e5bcc02c38f80574fa722d69ff19faee0cf846f519b81514

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6d64ab545b4520a59a96ab2161c0550618e7d3fedbfb40e38f2526afa709abf
MD5 c8cd042dfc099bbf28402e31b342af2a
BLAKE2b-256 1f910f665ad43be917a18f2f59d8de6c9d1f2a260bb3ea929895565a8d2bfc69

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2f9804e3d7647e091f99825526464f90427512c13915c2909bc148d47ddca815
MD5 9fffe173c77f37e74a00ac33646b4075
BLAKE2b-256 7d615178cf1507a0d31254dfbf9145f50e613ae3ba4fa18d87705f21a1d03bea

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d92305d1db6b818908dbdf70bfab436498963a1cd0369affe322ec7f9c7b5ad
MD5 b60b4c75cf9b351f5c9d5f1767ff9921
BLAKE2b-256 4d7296d1e7c71916c221f2201088b5bcc58956338f353285c8901f75985743d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e2b5cd9be58596579081489a67136ed8bafa89055df764192e200fcd48568be2
MD5 d60f95901b3d19513838c8fd45889238
BLAKE2b-256 c76d82c659c01a93bb454be4f29070cea160024ca846ef36195f90a94ae02eb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f610e3cc44ff7587edccf4382858fad79da0a3cf5ca56c7879c8467300b33549
MD5 2f0569e3dafe1dd7241b10b556439233
BLAKE2b-256 c55e8e1306be713896c6c7a472478e6bff45d69238751a326063c24603d0f879

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a861b5e358c0da94d1db12353ef563db5bf9881eacd5ed849d181736181f487
MD5 28e2a1ff6698042e735b932166ec59d8
BLAKE2b-256 2157582b93b1cce34810bb26dd53a61e5f4c26d25026fe093d75f5a91160b6cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e27901834240ffd99540b78273dd59ebf1baf69f86dd6fcd2f20cc0ecf66abab
MD5 739e9e08fc7a99bd2539107f18fbe0de
BLAKE2b-256 f46e2abcb1a155687fc3f8a036bd0d165a06de3a07fb2e5b4554093e8d06fd35

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 11d02b269b0f8e769e4f437553fa7db33e7c95c72a58cdfabd09f38b253eb33f
MD5 fe237fe6441ae728771410dd562d687b
BLAKE2b-256 f3a778bf0deff038852c9752d2811e978b3b0c42f7a1a961afdc3ad8561fede5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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

File details

Details for the file pyyggdrasil-0.0.14-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.14-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3bbb5e20bef76022a9db6a6429bf4d63793cf604b6fcaa8d224806ebaba76add
MD5 b24377aa09eb2b26132e497a3f8fad35
BLAKE2b-256 d82db85d4478a937b9903e4e664bc1426b32cb990db41c9a8f4b5bf78a1c9e5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.14-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on planning-and-learning/yggdrasil

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