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.

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.18,<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.18 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.18.tar.gz (121.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.18-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.18-cp313-cp313-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyyggdrasil-0.0.18-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.18-cp312-cp312-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyyggdrasil-0.0.18-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.18-cp311-cp311-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyyggdrasil-0.0.18-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.18-cp310-cp310-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyyggdrasil-0.0.18-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.18-cp39-cp39-macosx_11_0_arm64.whl (33.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pyyggdrasil-0.0.18.tar.gz
  • Upload date:
  • Size: 121.3 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.18.tar.gz
Algorithm Hash digest
SHA256 b47d49f7a70372782c810390b27977e721a153e5a660b912006fdcf8aedc323f
MD5 65f8865b25805299a204cfc636162a3d
BLAKE2b-256 eb92a37f1f9c1ff111bdf78d3a355d7e5bc4010c96d4cb2a9349f6e4d1b31886

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d61e8acdde16d6d8824e5be950d048701a7b11c9ab3bf70a332d90c5d2fc2e69
MD5 9cfc15602ee3bd0ffa7ec86be9d4dc80
BLAKE2b-256 9950fc9582d069fe608a7df8fbcf3fa163532306946ca5c2be124742c00167b5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56e35f052c4516e289d6acde97ea944553bc8b676bddd5ee33a7c5796b01158a
MD5 5c65d2fcaf87f9b394ee229429992ff9
BLAKE2b-256 f804bfd754358d26b32461c3bdb3a538ca5367443982c8d841a9edec4cf6b545

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 731da9efcaa9e5aa28cd07875fb3655cd3744d06de467daeea290dee120fff27
MD5 6a84c34057a880a1b3c6723238d8cf07
BLAKE2b-256 e8cbba4a23070a8255456f624f7105a0719f67aa3d8ae817203410429b8b0bf9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6308fc081625ca044bec1a46c2b5c7e55bf3c8e93d5641ad8a4faae6a2114b0d
MD5 580433a8b065a9af124839d8716d0ba0
BLAKE2b-256 9be8f1ab55688c3e7aefa13738d1550f1ef83eca1f6bf64322ee3c4530583171

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a0859a0b2d5e19ecba095f01d1f6175d3ce1488459425462abb0e65c5c2b0553
MD5 f19b40ad67339bcbdb9734a1c6115a29
BLAKE2b-256 f87b86316f713eb750c86a4430135b945c98d2dbe6a35cb383bd74a40a8753be

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6927a4b7750a354aa16daff9d58d257e847cde68dad225abc9f61d2aceb81d37
MD5 1c984311a10d237b9a19a7125c2864e2
BLAKE2b-256 e25a64661756c91ec29952c22eab3e9efd07177bede55b997618da5200799f92

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7c74cebf8c139011540dcec251f24774de7114fea0c27da0d75afa1bdc909f25
MD5 1206377028b2d4e02aca8c5fa3a9c290
BLAKE2b-256 fa4ae631865d5dae2dae02d1c01b8268113794c5a134723229e397ab8690aefc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8afff5124e2a17934b1ab9a8163fcb46933fd57203294448d643f462073f0172
MD5 4542a69c6b91dd454b7f76fb41da31d3
BLAKE2b-256 2be31c84d173025a9dd85e236b9636e4ea0ea3642a75b7a1a1f21b76145b1240

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f67714ca52e6a5f104ca1dfa1f180d826c32d63598b064daf1fa0b0df76fa1cb
MD5 fb8cca042fb0c9f181a4679a335fda8b
BLAKE2b-256 037bc393c84069d40221c7bdab0c357d2f8c8af54051184d545b1ad4b08e7a0c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.18-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79cdf1d35786f522968d94445a08b654e12a3b4ee5002db8849a0930e4088260
MD5 28cecc42612fb0b8c08aa8a2ab5b05e0
BLAKE2b-256 5131682f37d8ff54c289c129311e8d7ca18173e14a7e63fa1b61e2ac6feb8121

See more details on using hashes here.

Provenance

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