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.16,<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.16 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.16.tar.gz (110.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.16-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (33.9 MB view details)

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

pyyggdrasil-0.0.16-cp313-cp313-macosx_11_0_arm64.whl (32.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyyggdrasil-0.0.16-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (33.9 MB view details)

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

pyyggdrasil-0.0.16-cp312-cp312-macosx_11_0_arm64.whl (32.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyyggdrasil-0.0.16-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (33.9 MB view details)

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

pyyggdrasil-0.0.16-cp311-cp311-macosx_11_0_arm64.whl (32.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyyggdrasil-0.0.16-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (33.9 MB view details)

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

pyyggdrasil-0.0.16-cp310-cp310-macosx_11_0_arm64.whl (32.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyyggdrasil-0.0.16-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (33.9 MB view details)

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

pyyggdrasil-0.0.16-cp39-cp39-macosx_11_0_arm64.whl (32.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pyyggdrasil-0.0.16.tar.gz
  • Upload date:
  • Size: 110.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.16.tar.gz
Algorithm Hash digest
SHA256 bcca99d8a3fc84853d502d8bdbc09d743450ed7b47761ddff488ff3d05a82f2d
MD5 04b4726a9d4c0255b0587b7197e670b7
BLAKE2b-256 8072a6feb90f84945de5b1347bd81120d4dc27e6531fe7ecad4dd2ee5baffa9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 559bb23c81cb2532274e7a86da9341ae27223435c2c8e8c6c95650e3483f06e6
MD5 652047dca5546b7a1511d37df4f62a56
BLAKE2b-256 53e579bcfa32170cee3f25cada58b379f3ae0f5fc3dcc6d9fad33f4b4fb05b78

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02e511dc55c1ed1202606c7d05a6c9221e6c618594817783c4e94758b8d455f3
MD5 cf9bc2524f94d8e34f3acd399cc55ea3
BLAKE2b-256 b63d57677181d63e98b7794b02bae372da72e6782a44d6f8b5cd7a4d77b2e708

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c75f254e8e6576f8a5c670acfe841cbe7e631cc5983097a0dd3516c4c44b3d0
MD5 b3ad578626ef0525403c89b107641ba8
BLAKE2b-256 89247a97f50a904a5891e8c3f4da412dab47f9a5c73d19d86a6709e305c9473a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90b662e7051bf60ccea5122b0b701add7d03583626393727f1fa85a7706e5404
MD5 f256642d530c27d7c91b1aff539ee773
BLAKE2b-256 3dbb177e612449be30ee9ca6c0a5cc30230e5970953815badd0bba29666a84ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a0dfb8d3980661d72413661906564f55f36240117422b8c93cb496b85e3165cb
MD5 59aecd7addee1a16cf94a9cedbd67de5
BLAKE2b-256 937d00e1b81992daad5acb21d7876dab81037c3cdc0f5cb63cd7a395f63189ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 302035adee0128f58eee9c733447a8852c1c438c11b7feb4d71893145c45adbe
MD5 1edd29f9441b1c1d5b7447e58302900e
BLAKE2b-256 41b374ae910d115020b1d25c5e3ab081095ea0975be16b7cc6b1233ae0c39699

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 670ffd7c435a73957482daa9942bc32d7808bf7b90b0a2ef92d389f1a6c912e1
MD5 e1cdaa6e16a3aecb396a195a4d27ca93
BLAKE2b-256 7e1cf09e2b76b9c44c27d6d09e6b52842167951f1cb4a28bb5e2cc830eaa6d14

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6c21264ca6b121b3f833bc1f4eaef5195761c2972dcb83df3900f67d7e0ee0a6
MD5 fd89d8d9cc7fe4fa9bb7a7f3d3cdae3c
BLAKE2b-256 18a447c8be0ee4ddbaf990f6c7acfad402058f7109e565fc31afa946a83fec77

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 26e21af0b5d39725fcdf492364e028479a2042b291d893f1262c8bb51d022a48
MD5 0e548afa63c7ce3cc617b09de377fe71
BLAKE2b-256 8c325afbdf3b6f0fe873d396f0bb16c5c1b279da982cabb3036da8293277352d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyyggdrasil-0.0.16-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d911a8c5ce69a2a97160b6b83361f2efb35f5bb4c5ffe277edb3a4ab06653ef
MD5 f24587875186fe495c88c45c6f913b6c
BLAKE2b-256 03ed3c705b968055e601f37b21a304ba4e49f79dd1a94cbe9fe63f72a6d47bdd

See more details on using hashes here.

Provenance

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