Skip to main content

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.

pyyggdrasil is the base of the planning-and-learning package chain. The shared workspace layout, the layered install order, and the common build-from-source and CMake-integration patterns are documented in the Planning and Learning build instructions; the sections below cover pyyggdrasil-specific details.

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.20,<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, fmt, gtl, TBB) via find_dependency. (cista is consumed through the include directory only — its target exports compile definitions that would otherwise change cista's hashing and fmt integration.) 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.20 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.

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.20.tar.gz (124.5 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.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.2 MB view details)

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

pyyggdrasil-0.0.20-cp313-cp313-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyyggdrasil-0.0.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.2 MB view details)

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

pyyggdrasil-0.0.20-cp312-cp312-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyyggdrasil-0.0.20-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.2 MB view details)

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

pyyggdrasil-0.0.20-cp311-cp311-macosx_11_0_arm64.whl (34.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyyggdrasil-0.0.20-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.2 MB view details)

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

pyyggdrasil-0.0.20-cp310-cp310-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyyggdrasil-0.0.20-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.2 MB view details)

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

pyyggdrasil-0.0.20-cp39-cp39-macosx_11_0_arm64.whl (34.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pyyggdrasil-0.0.20.tar.gz
  • Upload date:
  • Size: 124.5 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.20.tar.gz
Algorithm Hash digest
SHA256 d0836896d011ba0761d7966ddf55753c7f0666e1b4cb46466ccf37c93ece523b
MD5 88a6e2cbe7e2bbbe7e5adee4f46df8cd
BLAKE2b-256 f309f91a64fc1a60b12fcf2bcf7621d760c78e5aeb6daf74c53a97373b52ed36

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20.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.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96510fa62eb701eadb4a2fc58cf4bed6bd0109622db67876443ccc22ccc941d3
MD5 2ad79c9b67b90692c54445f7b472c964
BLAKE2b-256 dbed453a0c5274d9f35c3087456f6db7de845b9d983e64639ebfae6200215e5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-cp313-cp313-manylinux_2_27_x86_64.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.20-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb6d81a25fcbb19056b45ed4986ab8f897c4943820cd71a2dbdff9775e1f607a
MD5 9a6abb8e22be55cf21887744c13fb528
BLAKE2b-256 fbfd37ea5b42ec671b46a4deceb057bc5087260300e3e3e547c2e95a1d2f46ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-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.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d1096718be87b238e7898da7237ce17a304032118235e082142593cffb155d4
MD5 3005e1a93a5bd275d4d9ef52eb3d9f8a
BLAKE2b-256 d6d4e3f6ae5f8ddf11bf37fe42988f37ddb1d58ba5cad87f9441f10cd1ca3df6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-cp312-cp312-manylinux_2_27_x86_64.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.20-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ebb46ba43866cfab60e12456c9f7cc91f52065a1efc5e279eb68a00eba2c42d
MD5 345398877d6f5c235d9b9138ab5675ac
BLAKE2b-256 11b7a829d432140d1a74c0d58076419bb647913b3e7fe29442d86e023111b0ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-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.20-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 99a2bcef65754eebf37d12adf3fadeecfd9deebd3f9427a8a6459b5d73d2ce32
MD5 70e812d850e66c0ecd9582747c0588cb
BLAKE2b-256 7e3c48a2edeaf4b933d88c9c32fa0697e4515240d441e6903a5af7fabed1cb88

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-cp311-cp311-manylinux_2_27_x86_64.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.20-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81eabf199c34176fa7ab3004fc79d173feb49b51cdfaeca397610289443031b9
MD5 b4b6d0a7bb2d353d01653f16552f96b1
BLAKE2b-256 ab5bc66ec7990574de07375ffdddef65c03781524cef4918ac152e1bc94c76aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-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.20-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac74c8729935e4054148bbc830bea9c8f71831a01f762aced3b943d4b5555890
MD5 2fe6c9bd8b113f039981f150f4d00b62
BLAKE2b-256 9516e1c9d2ce8d464096ba396ce8219ef180951fdff543f95a1531a7e1b15811

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-cp310-cp310-manylinux_2_27_x86_64.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.20-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b19c8ae35fefef3807b456be433f21e45a0dff924e04fc2a2580849246663710
MD5 83e63a0b690cdb21151aee5f6be4a33e
BLAKE2b-256 59d7e6eab013c048cfc3c3a1de2ff738edf3c14d8e2d3d6ea1ed3fdb9adab2ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-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.20-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13ac4820021073b38ddbbda7732aac2858480ab90e4c64f98b646af66eeb2705
MD5 9b2134a6ec311afd6b3765010d8122f3
BLAKE2b-256 be3b56fe040b7b6f992830317069109fe1423350a569a0b7b251c50d9675d320

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-cp39-cp39-manylinux_2_27_x86_64.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.20-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyyggdrasil-0.0.20-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31f53f80d9c35d924dae2b023ecb22e0547e4d8104f3d8998dd71b6e7b388e73
MD5 3982a7f620810e1d2fa82a27bb20a910
BLAKE2b-256 eae4e9eec6c604b217f9370c7eb4097273a745aef42090ebaf9b2c8c236a8a52

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyyggdrasil-0.0.20-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