Skip to main content

XPG python bindings

Project description

XPG

XPG is a library for writing native cross-platform real-time graphics applications and tools with minimal dependencies. It is based on Vulkan for performance and portability. It provides helpers to simplify application development but exposes Vulkan concepts, functions, and types directly to give full control to applications and allow access all functionality and extensions that Vulkan offers.

XPG is written in a very C-like like C++, it makes lightweight use of templates and destructors for a few simple data structures, and it uses operator overloading for bounds checks and vector math.

Features

  • Helpers for device initialization, (optionally) window management, and most of the Vulkan API.
  • ImGui integration based on the GLFW and Vulkan backends.
  • Shader compilation and reflection utilities based on Slang or glslang and SPIR-V tools.
  • First-class Python bindings for graphics, imgui and shader compilation and reflection for Python 3.8+.

Project structure

The project currently contains 3 main components:

  • XPG: C++ library. Source is in src/include/ and src/lib/. Example applications are in apps/ and shaders in apps/shaders/.
  • PyXPG: Python bindings for XPG using nanobind. Source of the bindings is in src/python/ and examples are in python/.
  • Ambra: Ambra is a pure-Python 3D viewer based on PyXPG. Source is in ambra/ and examples in ambra/examples/. Ambra is meant as a standalone tool and is one of the main motivations driving the design of both XPG and PyXPG.

Dependencies

All dependencies are included as git submodules for versioning and for self-contained builds and source distributions:

  • Vulkan SDK components (tracking the latest official release).
  • GLFW for cross-platform window creation and input collection.
  • ImGui and ImPlot for UI and dear_bindings for imgui Python binding generation.
  • glslang and slang for shader compilation and reflection.
  • GLM for vector and matrix math.
  • Nanobind for writing Python bindings.

On Linux, GLFW has a few build dependencies for X11 and Wayland support. The easiest way to install these is from your distribution package manager. See the Build section below for more details.

Build

Building the XPG library, Python bindings, and sample applications requires a C++20 compiler and cmake. The recommended way to build XPG applications is to build XPG as a static library, this will produce portable executables with no runtime dependencies other than the system standard libraries.

XPG can be built for any platform supported by the Vulkan SDK and GLFW. It's currently tested on x64 Windows, x64 and aarch64 Linux and aarch64 MacOS.

Building XPG does not require the Vulkan SDK to be installed. But, if available, XPG can enable and configure the validation layer at runtime.

CMake options

The CMake build can be configured with the following XPG-specific options:

  • XPG_BUILD_APPS: If set to ON build example XPG applications in ./app. Default: ON.
  • XPG_BUILD_PYTHON: If set to ON build the pyxpg Python module. Requires Python header files to be installed and discoverable by find_package. Default: ON.
  • XPG_BUILD_SLANG: If set to ON build slang and the pyxpg.slang Python module. Default: ON.
  • XPG_BUILD_GLSLANG_AND_SPIRV: If set to ON build glslang and spirv tools (experimental). Deafult: OFF.
  • XPG_MSVC_ANALYZE: If set to ON and compiling with MSVC, build with the /analyze flag set for additional checks (significantly increases compilation time). Default: OFF.
  • XPG_MOLTENVK_PATH: If specified, link statically with the MoltenVK library pointed to this path. Otherwise Vulkan is loaded dynamically at runtime by volk.

Most dependencies also use CMake and their variables can also be specified at configuration time. By default, XPG configures some of the dependencies to disable optional features and configure them for static linking.

Windows

A C++ compiler and cmake can be installed with the C/C++ development package from the Visual Studio installer. XPG compilation on Windows is tested with both MSVC and Clang. For building PyXPG Python must be installed system-wide along with development header files.

Linux

XPG is tested with both Clang and GCC on x64 and aarch64 Ubuntu 24.04. Other distributions are expected to work by installing the respective packages. XPG builds GLFW with support for X11, Wayland, or both, depending on which packages are found at CMake configuration time.

The following packages are required for building XPG with X11 support:

sudo apt install libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev

The following packages are required for building XPG with Wayland support:

sudo apt install libwayland-dev libxkbcommon-dev wayland-protocols

The following packages are required for building PyXPG:

sudo apt install libpython3-dev

PyXPG Python wheels for distribution are built on manylinux_2_28 and musllinux_1_2. See pyproject.toml for the list of build dependencies on those platforms.

MacOS

On MacOS XPG is tested using Clang on aarch64 MacOS 14. Intel MacOS should also work but is not regularly tested.

MoltenVK is required for Vulkan support. By default, MoltenVK is expected to be installed by the Vulkan SDK and dynamically loaded at runtime by volk. Alternatively, MoltenVK can be linked statically to simplify distribution of binaries by specifying the XPG_MOLTENVK_PATH CMake option.

Example build commands

Full build

cmake -B build/
cmake --build build/

Minimal build (no apps, no Python bindings, and no slang)

cmake -B build/ -DXPG_BUILD_APPS=OFF -DXPG_BUILD_PYTHON=OFF -DXPG_BUILD_SLANG=OFF
cmake --build build/

Editable Python build

For development of PyXPG it can be convenient to setup an editable build that will check for changes and recompile the bindings whenever the pyxpg module is imported.

This can be achieved with the following command:

pip install scikit-build-core
pip install -C cmake.build-type=Debug -C editable.rebuild=true  --no-build-isolation -ve .

See the scikit-build-core documentation for more details on build configuration.

Ambra

Ambra is a pure-Python library based on PyXPG for creating 3D visualization and GUI tools. Ambra aims to be a tool that can be quickly installed in most environments and can bring any data from any source to the screen in as few lines of code as possible.

The main motivation for writing Ambra in Python is to minimize the effort and time required for setup and customizations. Compared to other 3D tools, Ambra is designed to allow full customization and configuration for the application needs. You can start using Ambra with some of the default primitives, UIs and controls, but as your application grows, you are encouraged to customize any big or small part of the library. For example, you can add your own primitives, shaders, render passes, data streaming systems, etc..

Even though Python isn't the fastest language, Ambra tries to provide fast primitives that limit the overhead of the interpreter. This includes supporting modern GPU features like asynchronous streaming, GPU driven rendering, and bindless resources.

Ambra has minimal dependencies and should be easy to integrate into any Python 3.8+ environment alongside other packages.

Quickstart

The easiest way to install Ambra is from prebuilt wheels on Pypi:

pip install ambra

After the setup you can run the example scripts in ambra/examples/ to test the installation and learn more about the library.

Build

Ambra is still in development and changing rapidly, to get the latest version and for development, it is recommended to build from source both pyxpg and ambra:

git clone --recursive https://github.com/ramenguy99/xpg.git
cd xpg
pip install scikit-build-core
pip install -C cmake.build-type=Debug -C editable.rebuild=true  --no-build-isolation -ve .
cd ambra
pip install -e .

This will install pyxpg in debug and editable mode (automatically recompiling after changes) and ambra in editable mode.

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

pyxpg-0.1.0.tar.gz (54.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyxpg-0.1.0-cp312-abi3-win_amd64.whl (8.3 MB view details)

Uploaded CPython 3.12+Windows x86-64

pyxpg-0.1.0-cp312-abi3-musllinux_1_2_x86_64.whl (11.5 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

pyxpg-0.1.0-cp312-abi3-musllinux_1_2_aarch64.whl (11.2 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

pyxpg-0.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (10.8 MB view details)

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

pyxpg-0.1.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (10.4 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyxpg-0.1.0-cp312-abi3-macosx_11_0_arm64.whl (9.5 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

pyxpg-0.1.0-cp311-cp311-win_amd64.whl (8.3 MB view details)

Uploaded CPython 3.11Windows x86-64

pyxpg-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (11.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyxpg-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl (11.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pyxpg-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (10.8 MB view details)

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

pyxpg-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (10.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyxpg-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (9.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyxpg-0.1.0-cp310-cp310-win_amd64.whl (8.3 MB view details)

Uploaded CPython 3.10Windows x86-64

pyxpg-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (11.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyxpg-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl (11.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pyxpg-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (10.8 MB view details)

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

pyxpg-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (10.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyxpg-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (9.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyxpg-0.1.0-cp39-cp39-win_amd64.whl (8.3 MB view details)

Uploaded CPython 3.9Windows x86-64

pyxpg-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl (11.5 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pyxpg-0.1.0-cp39-cp39-musllinux_1_2_aarch64.whl (11.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

pyxpg-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (10.8 MB view details)

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

pyxpg-0.1.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (10.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyxpg-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (9.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyxpg-0.1.0-cp38-cp38-win_amd64.whl (8.3 MB view details)

Uploaded CPython 3.8Windows x86-64

pyxpg-0.1.0-cp38-cp38-musllinux_1_2_x86_64.whl (11.5 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

pyxpg-0.1.0-cp38-cp38-musllinux_1_2_aarch64.whl (11.2 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

pyxpg-0.1.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (10.8 MB view details)

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

pyxpg-0.1.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (10.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file pyxpg-0.1.0.tar.gz.

File metadata

  • Download URL: pyxpg-0.1.0.tar.gz
  • Upload date:
  • Size: 54.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyxpg-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6df239d1f8462a5b11471fb36cd133f2ad66fe9409ad167d87c90e5c093f2e99
MD5 15453844dd7840109db93a926f4d6a4b
BLAKE2b-256 13a1359384b30378734e4cc88f09e5750361729aa8a90df43ef6fcb46b43a0fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0.tar.gz:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: pyxpg-0.1.0-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyxpg-0.1.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3df5e2cdf71a74db8af0c9190c04045cef64054ad14b4f395ca9bc8f4bea02b0
MD5 8dd84104d1873effaf63cd6314ebab88
BLAKE2b-256 6738a1196a936f563323081b87912efcb5aba3c12cc065cd2db70142f3e67a0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp312-abi3-win_amd64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f7a96fa54fa4beaa4cc483102aa31d05561a8170a9cac6cbe5b85ec6dce5e0e6
MD5 49a6d41eb0b590ca6fb58fc19691aa66
BLAKE2b-256 99aac9b7dfd78fe38886dfa0d6b5509a282600414b685b1fb8ae629139d1020b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp312-abi3-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 053d6b1ccab6558c77a98b3ac30739030dd647ea19209400a14befef5200de2d
MD5 19f78a9d01d27d5ae62d006d5e8322ea
BLAKE2b-256 ec6799f4a3b2c9b532f0ca53705a0a7c923d7d5291801b84309918cf88543d61

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp312-abi3-musllinux_1_2_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d8aec03dd78579d0197e6302d9051b9357d8ba4dc985f056eba7d1b1be00421c
MD5 33957285f3f82800edfa633e4f82d8f2
BLAKE2b-256 3ad632526307417899011c1abda7d74c01fb0eb98939f475b3f5f12f9d0bfda1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ee423cee8c9cdffb387b2e692d9d37936912d033e45e2ad79c1260cfefe2480b
MD5 4f7a81083d8f907b807aa536ef3ddf6d
BLAKE2b-256 9c862ad2d7b50574e748284af34cc6f8c77cb455ae3cf21082e276f8a661a224

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 91281e802bb9c709f6a88f0bd3620a7da06ba0b16311b8d5afd6507b6f5b220d
MD5 2c1e74fdb902809ce0fd7b518720654c
BLAKE2b-256 9cbfe8794f0f0ec7190c55fc2172fcbac5e74c7af622efa9bab8f319cbc833d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyxpg-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyxpg-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 87e65b8ad7a9fbed2e3180edd597e0b1fed743655c0d0cb53eb1ee31db0bb3a6
MD5 c61c0088617061c0cac3d15e77b56cc9
BLAKE2b-256 946b4e1080a798f08a61c3fa88a5a858810581449d31eede3f44a64af08ed281

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4a412ac177c5cfd35afd611db2522075859ec8bc548000765bf13ac906ba33cb
MD5 0f1ec0ed40ef91cfe70553719f810006
BLAKE2b-256 ba6fd3b06ba9d1cac82944bbec0f1322f0449041373bce27a82ab10e164bef90

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 14fd74de2bbefe9da87b46fe451e59f04246df05e388774b7c9fb8b1c833d214
MD5 0a9fb30e2dd0fcf342dda173d8181447
BLAKE2b-256 8beb1c4b9fa94983de5da5842843895145e2f6af67d644af874ed9a5d0b4a838

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5a63852566784a6629192920e6321ae2c39809cc195bf415dc375f03cecfb63
MD5 cb73a13f311383af982aee3e3b6e1c53
BLAKE2b-256 8b377998dd897fc98213d9817d1b364fa8bebbcb1db90e107f846390dcdb4965

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 580ec49919968a921d019e00b2b374bed7684c17d6072761c4c43d7b023d924a
MD5 ce366bde5cdd2f9f717b7e26aea48655
BLAKE2b-256 762a8745566cd4aac55dc66551df40e9cb7b476dea9d30cde5fa411c3f3eab78

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e1fe02825cc347a40ccb0bf111ced04a5cf8ab0e482582f6618414bb700a12c
MD5 9a3f106e7a1751e253bdc8b84fb5a2e9
BLAKE2b-256 0ad14d9b91ca31d835e4396634fe106202c413a9b314fb588cd3030b678a14d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyxpg-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyxpg-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f310d4c1e27860831ac17114d514e874c89304db57e584e84e344c867d117f22
MD5 d1839f705923f588e3e4fa563308ee56
BLAKE2b-256 5a2f077c6dcaaff0bb9d53dd9591f9a1dc4fc28889661a4ca46ea15a17d051a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fd2ed8990c8783de8265cb7dc3a1912c53a819b3d9d8e74b471b7fe8020a41bc
MD5 d946e89de61b0aa02f7e664f9721a32a
BLAKE2b-256 514b938ed54c018bc89b8dec8e93ffdb8b6a2fd8b88acccb5b5b4073d744b73d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a74aeddff16aa0228ea0a55545c13c22c62b982aaa927af39bb9aa0835740667
MD5 11970f1a0a52c0f0394f93783cfe4164
BLAKE2b-256 18b6022d42338b7384a7ba06b1513aea01373554c37cd2bbb6f0a6b61629f7f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66c611096557b0daa9d4e7209020f3d2c9e1e1ba288a1a9b02256fa387b57782
MD5 f96a036b720558cf01367e2ab6041ea4
BLAKE2b-256 aa69074435cefca0c3ae5d6403aa3828ae1de226d115f10c1603fd299e6d6e1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 69d0442eed8a880c60a29b7f046b3001325bb7bde53fef01496e916481571e4b
MD5 a4217160a5455a0fadc9861d43005fe2
BLAKE2b-256 97e9352ab83150c2bb8c5464285d8013a185dc99f17a63704d2f7b2280c97cc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ba804e1821c3334cca810247c9c008c46e6de6ca73536d077fd966ab6bcecc1
MD5 1341d4020661f2097aa4b7dcdcff9102
BLAKE2b-256 28ed7977b38b7b350b495d41a476f0d62b0da84895a3d16f7cac69fee7a1c672

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyxpg-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyxpg-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4f95f9a9b6b4caa219e40393f6528068db962a0e46f277a44b385fa5b1e900c1
MD5 af1951f3d69f7ef6c06c5eceefa4c681
BLAKE2b-256 7cf11fc52beba177adbfbe345ad275f7edcdc707fd167b71b19f76175842eb19

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp39-cp39-win_amd64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9e8de312659126b5136db5c7f8ae716bf517f7cd22e13faca46eede7ae76ad47
MD5 3aef5e92902322a7a2170ed8e297160c
BLAKE2b-256 1390a18f8f8191a87262c53079a3e1443fd547d5060ec4f271fc3de0a9994202

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 38cf2dbd7b20a23a0c279bc6a93a4ca7202672bbaae6aeba5ce63d5b3501fd21
MD5 638a17e371981cb5defee9c0c4e2cd3f
BLAKE2b-256 7f29279f65a5950bb9aafa5f8b0f0b1b90afd152d683caf3ed7d7b17c0d67cbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a8c1178f338cc66ebe34b973094f4b366ab85c094ce627b01e4efad9c5511739
MD5 1e02ab7940b095dbea16e84a67ca9a43
BLAKE2b-256 03135c78aa87f4beee088b7c9a351e6dda2e1b6439819fc99295b7c2179b6ada

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e86e3a29d360abf583450dd420307ea23e52d970b4b6f96139ca1f02c46ba408
MD5 8cddbbb51a3a7b32c9e1a7ba796e6b9e
BLAKE2b-256 238812e10d76e94bd33a43483134d9047029665a6afed088a851d3f8fb267dc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pyxpg-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 9.4 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyxpg-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c543a4195896f5f6f2250d6f82c03e750073595ec7548da1a13c2e772000ba37
MD5 7c092e11605a10fc90d5214284be070f
BLAKE2b-256 07fbc189beb369f8799535831fec42de67b7ca698710bfd148562675809d49c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyxpg-0.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyxpg-0.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5c500946448382da8f492b80bdcfe588f5e0a25e290ddbae1c9e68ba74b92bbb
MD5 bebfeba7490207ca6672e30a6826df04
BLAKE2b-256 b61ab11d5d9651e3326466def936d458d97942faa00148cc8f666b7513dbd724

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp38-cp38-win_amd64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d32b941bac918d8d024d31e673b99321e2dff6e4556587b4095f15f2efadda73
MD5 590c9b25f9d3b05b20731c056ec7c2c7
BLAKE2b-256 289a61ac06ae5467f16de01176229b79f4686d879de20bd57a652247e4c9f09b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp38-cp38-musllinux_1_2_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 699316c468f480a4c2cba3f7e0f5e9d9ba4e033b4c0bb53c442ed3fdd4138a69
MD5 8c59f60b9e4b0db003822bac7e53eb00
BLAKE2b-256 1808e6523aa2b2def26888b064adbc0822cc44786851a08afcd5ecb6ed1c8aa6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp38-cp38-musllinux_1_2_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2990b43d6cb2be927069583c41dc23212688a136a3481c95696556674b121cc1
MD5 175322975c41eaafa568989f7a92a356
BLAKE2b-256 cc36ea7b67004ddf5cc5948f42692dc16ffc9fcc6f5b4a140b07462b197976be

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pypi.yml on ramenguy99/xpg

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxpg-0.1.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.1.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 44196a243ecef884e5b8eef8c90cf5f24607060fed0d25a37d80e3bb0abb0be4
MD5 a1a96163f4449c533b9f3c11c8fc05db
BLAKE2b-256 442ae4546b9d13da4598e444a9ea71674a32861e8499afd18230686b07f3bc84

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.1.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: pypi.yml on ramenguy99/xpg

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