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.15,<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.15 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.15.tar.gz (109.0 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.15-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.15-cp313-cp313-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyyggdrasil-0.0.15-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.15-cp312-cp312-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyyggdrasil-0.0.15-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.15-cp311-cp311-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyyggdrasil-0.0.15-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.15-cp310-cp310-macosx_11_0_arm64.whl (43.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyyggdrasil-0.0.15-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.15-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.15.tar.gz.

File metadata

  • Download URL: pyyggdrasil-0.0.15.tar.gz
  • Upload date:
  • Size: 109.0 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.15.tar.gz
Algorithm Hash digest
SHA256 5c140b76d7b7f412ac6922bb84784eb21828c88914be3c4f0a27d52a328fae20
MD5 07fadf5018c4ffa3f9fcc77ac104d514
BLAKE2b-256 b6d67b1b9116f137627d225a08fbd99ec1405763202315909175dd095b4559e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3a464389d6fe186d99fc8fe52c736d012bb4721352ba3c4bfede5e97a384cc7
MD5 02ad683f7d2f13ae5ca2b8e649c7d102
BLAKE2b-256 aac4704a9a362ed2332f6b8086381f23ee3399f979bcd6d6ccbaaa79883ef359

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 306651b7ed918118fe34c8ecc3c65fd8e04cb76f0735b4b98ae6c8ef2d4af1cc
MD5 2713da3fbd2074812c43b0144aebbba9
BLAKE2b-256 0b1459c2342e1aa032c48ff33b817a303cb307552b305d1e578878a01fbeb6ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f71d29feeed88ff3091446fc9bf9e6bc70bbc27f06fb567c5a4ad250d9a259a5
MD5 de26802f98c06cef6ab822ee444ea1da
BLAKE2b-256 367c9481354fa195f1cf5d0e40588c3bd1980e7bf4941c9ce51dc655e768d9c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf22d6e05ea76ef8c017f880ea0a4b371322902b02238f8ddf0fad48e84ca6d3
MD5 44c55b0363922805d16940354f18219f
BLAKE2b-256 a92ed532dbcc78422f070bf912ac02b97a2bfc18c71690a59616acd882d3ee39

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 25daeb670e49fad468a37383abd7edce03ea91e8f69fc9f527fff6cc030cf25d
MD5 6e2f2ddc9f0d5b74e5dc5f20c35a8e9e
BLAKE2b-256 b2ea0cbb24f339c46a7f73ea2766c825737927f9ccb89bc66216445691ffe4ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25ffa240c83e10e619cd916596e2a526f4821d9e626bb69008d56275a36362c4
MD5 042902fe1f2bba4c009f17787028b9ae
BLAKE2b-256 95144376e20b6c7db9888ec7ce8f86d3ad47232fb0578c6d5bd69dabaa526c62

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1082a97d99b34ab115cf0b913561632826ddffee47a04f54a84fd72babf35d97
MD5 76f2e3afa8e318f366fe998022a4b46b
BLAKE2b-256 dde52df14b02ab3bf84b4c2c1206b88765fa0c5868a9240b094cabf1848ef309

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12845c8bda3e5085ca73f97ae2c3cba25c9fa45ae1eef18f475e0ee9ac0c3539
MD5 9b97952436f4b7b85934cc404d0c99a0
BLAKE2b-256 8475920cbf02c8eada95193f7943ef560e8ce5137fcfb78eebb30459249a00c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0de2a7fe6f95324665213a9b11c58bea14c893d6a781c2f24fc50c027bd8117
MD5 29ddee759ce6c3893cba82e44c7ecc8a
BLAKE2b-256 24a4ecda7cd4da065e25beb740afe5fe2d0e4e94063b0513c210c87655081b24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.15-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e28a0c8c37af5d03f4c44aac8fd0cb2737ab41ce45092e1c3617fcafcfa3f999
MD5 61d4c50f0c0905e63b68cd8e69b426ca
BLAKE2b-256 5bb7a80694310ca850e1adee235e4fbb8ff166960afada927a051fd57e276078

See more details on using hashes here.

Provenance

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