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.25,<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. Set YGGDRASIL_BUILD_TYPE to select the dependency build profile; it defaults to Release.

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

YGGDRASIL_STRIP_WHEEL=OFF uv build --wheel

Build C++

Native Dependencies

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.

Yggdrasil Targets

Configure Yggdrasil separately against the installed dependency prefix:

cmake -S . -B build \
  -DCMAKE_BUILD_TYPE=Debug \
  -DYGGDRASIL_NATIVE_PREFIX="$PWD/dependencies-install" \
  -DYGGDRASIL_BUILD_TESTS=ON

cmake --build build -j4
ctest --test-dir build

CMake options:

Option Default Description
YGGDRASIL_BUILD_TESTS OFF Build Yggdrasil C++ tests.
YGGDRASIL_ENABLE_FMT_FORMATTERS ON Enable Yggdrasil's public fmt formatters.
YGGDRASIL_USE_LLD ON Use LLVM lld with Clang when available.
YGGDRASIL_ENABLE_LTO ON Enable link-time optimization for Release builds.

Single-config CMake builds default to Release. On GCC and Clang, Debug builds use -Og with debug symbols, RelWithDebInfo keeps frame pointers and disables LTO, and Release LTO uses GCC LTO or Clang ThinLTO. Editable installs and wheels disable YGGDRASIL_USE_LLD and YGGDRASIL_ENABLE_LTO by default for build reliability. This compiler policy applies only to Yggdrasil's first-party extension and tests; the src/ dependency superbuild leaves each bundled project in control of its own compiler policy.

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.25 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.

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.25.tar.gz (135.3 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.25-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.4 MB view details)

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

pyyggdrasil-0.0.25-cp313-cp313-macosx_11_0_arm64.whl (34.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyyggdrasil-0.0.25-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.4 MB view details)

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

pyyggdrasil-0.0.25-cp312-cp312-macosx_11_0_arm64.whl (34.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyyggdrasil-0.0.25-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.4 MB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

pyyggdrasil-0.0.25-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.4 MB view details)

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

pyyggdrasil-0.0.25-cp310-cp310-macosx_11_0_arm64.whl (34.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyyggdrasil-0.0.25-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.4 MB view details)

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

pyyggdrasil-0.0.25-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.25.tar.gz.

File metadata

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

File hashes

Hashes for pyyggdrasil-0.0.25.tar.gz
Algorithm Hash digest
SHA256 8ab73759493a14bd8371d165b02935d79bc649bd54754014eca99c733241b528
MD5 e2e93138ca2114bc47600376b7a67714
BLAKE2b-256 3df01e2aba5afd847939b91d1e74f5e9b84407f3ca59ad7a7d3aa9529d60be28

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7f65c6cc9f39d5975f7ba9149efa316db926e7b127211507c225264ab7d29a77
MD5 9c3ecf270e9967c22d6af4a657207b3b
BLAKE2b-256 30e004b49948da9aa7aeda193d75efb75bfaa141bfa83a32f83bbb6d95a148b8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b8342e874882a01b15c65d9d2e813a813a94d610b3b5b1938751e4a33903409
MD5 beca2a6a5a2e40c1987f61011e9e6fbe
BLAKE2b-256 0598f1b0236953498c45328074689147ef32347a199d944629f7e551f1cea012

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd9b4bd23543e4c2203a609deb9db0a37433352a6c9130580b265a7ca1172602
MD5 9f30d50af0363d1fc60ea4d7b04a9da1
BLAKE2b-256 3e74ec5b17ee5b68446cf0ea401f7a2cb9b446328143cdb82720a838595343ca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5195aeba459af2ec49bc4796458a6473321ed39042fd041ecac320d9c5f18d3e
MD5 dfd713befbd8cc85213a035abf1cbd9d
BLAKE2b-256 a9d5de49a102e04817845a32601d79ec08c70a7e80cd88f9bfe7c958a9209fc6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dbe6ea1f43f42f143515794b1a7d2c1cc4cf4d31d2752cdaec6c64433b95fec0
MD5 182df9bea2bf007b6cc066061b74df56
BLAKE2b-256 20b9be2c9c103ed42203d45c22a73c7477b1ca8bee032974f74c667d15b63179

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80135af217020b04428028a29be12ad1a01238cf07ab0693e604269dda633f61
MD5 7865bcfeb5ff05055c40085cd69ca0a9
BLAKE2b-256 a9a0271a490fe3e274daa09f03c2b4dac309492dc8009e416bc4bdd76d3ee89c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14395c5cbd4e005e71879bee87620c403b589eb1597ecb6be7a4d2be78bbf76a
MD5 81320897b7b837c8e765b8d73500c8f2
BLAKE2b-256 9339f64838c0dce1e9fb86a2c30acf8fa7ab0abdcd8dc9125abd2e781bf53796

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 38ad87ca249e61865276c8423c88e450e310bd7667b71a60802a4457eb8a1c0f
MD5 349ba565e06c92564b545b003dc4eecf
BLAKE2b-256 334852678b0cf2161fe33a27725c08d17df5d74dc13add1eedcbd258881b3520

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b232b547ec254da272f71f0131f5d8f5000c35f56d47fb69440ff2e86196540
MD5 1b0101bf68a8cb2fb5fea25b01695289
BLAKE2b-256 299741e4d5ecb163ca491955a6b6bc3f33c5a5abb4ee6476bad207963316a4aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.25-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2dcfd2f855cb194cc8020e1aa5cb342d0b0deeab23286efd9ca73e965366608e
MD5 95a1f45819ab78d40a52a906c569b740
BLAKE2b-256 5a4f5dee4d9a881b851c519cc63001a50643e59e43437594cc265453d71d8bf6

See more details on using hashes here.

Provenance

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