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.4.0.tar.gz (55.3 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.4.0-cp312-abi3-win_amd64.whl (11.9 MB view details)

Uploaded CPython 3.12+Windows x86-64

pyxpg-0.4.0-cp312-abi3-musllinux_1_2_x86_64.whl (15.5 MB view details)

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

pyxpg-0.4.0-cp312-abi3-musllinux_1_2_aarch64.whl (15.0 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

pyxpg-0.4.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.8 MB view details)

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

pyxpg-0.4.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (14.2 MB view details)

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

pyxpg-0.4.0-cp312-abi3-macosx_11_0_arm64.whl (13.1 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

pyxpg-0.4.0-cp311-cp311-win_amd64.whl (11.9 MB view details)

Uploaded CPython 3.11Windows x86-64

pyxpg-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyxpg-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl (15.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pyxpg-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.8 MB view details)

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

pyxpg-0.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (14.2 MB view details)

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

pyxpg-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (13.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyxpg-0.4.0-cp310-cp310-win_amd64.whl (11.9 MB view details)

Uploaded CPython 3.10Windows x86-64

pyxpg-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyxpg-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl (15.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pyxpg-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.8 MB view details)

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

pyxpg-0.4.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (14.2 MB view details)

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

pyxpg-0.4.0-cp310-cp310-macosx_11_0_arm64.whl (13.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyxpg-0.4.0-cp39-cp39-win_amd64.whl (11.9 MB view details)

Uploaded CPython 3.9Windows x86-64

pyxpg-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pyxpg-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl (15.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

pyxpg-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.8 MB view details)

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

pyxpg-0.4.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (14.2 MB view details)

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

pyxpg-0.4.0-cp39-cp39-macosx_11_0_arm64.whl (13.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyxpg-0.4.0-cp38-cp38-win_amd64.whl (11.9 MB view details)

Uploaded CPython 3.8Windows x86-64

pyxpg-0.4.0-cp38-cp38-musllinux_1_2_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

pyxpg-0.4.0-cp38-cp38-musllinux_1_2_aarch64.whl (15.0 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

pyxpg-0.4.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (14.8 MB view details)

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

pyxpg-0.4.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (14.2 MB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pyxpg-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f345d9707edeefab825b262feef0567b4535cd1234ef639f3dd1327fabd296ec
MD5 43d91eb462e45d02cc738dbb8e8de76d
BLAKE2b-256 bc34376cf512651f0a2824fc63ac47c51870694700a15e7be2e20bae9ce1de6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp312-abi3-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyxpg-0.4.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 12a46761e76989be91c200286123ee1fe0f74fa49a30230437ba8cd1a707f834
MD5 358c67bddc25072641bb22096aa98972
BLAKE2b-256 117226511d8392b78c97a15f03249833a6e9ac753c9e50738f5c5fa44987b7dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0684c2df90eb1fcaadf8658f9565a5b15ddac9a280825b21b91259c313122608
MD5 c2cb3f8a15618f73adcf191ddc974add
BLAKE2b-256 554fa0df464695e1c206a305359cef7c784968251e129acbb55704165e6065ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d4ccdf79f0972352c263b09397bcdf3f2b336354515215cb467c0fa5f9dee8e6
MD5 90561967fabb65a5bfbe61b5fc868d73
BLAKE2b-256 c930c6972a3c0b27f1a5fd52f59833ee895808ff6ca943c0181ebe1f7b86254c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13670b8d7f317567295ea69b4d87399366ee3f3bb71f084eeac6d2d195f4717a
MD5 a18e5c612e87f419a99ea74f12f7b56e
BLAKE2b-256 cb123e9ac4dcae6d051d91fc111e770ee5c28d9dc1b7aeb7854544b332296005

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 efe42c8cfccb777d02604ab28ca138a6dbd03f153fbd663e4d7a120a456af4c6
MD5 0f9aa8ed8b65ac791ff397e7de0b7fcb
BLAKE2b-256 ec6b3a181a674e2bd0d87b3e09379c50fc1b308a8742d8025e0cdf9fc1372ef5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pyxpg-0.4.0-cp312-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 13.1 MB
  • Tags: CPython 3.12+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyxpg-0.4.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f1b0e27d658fe445c58c194ef70515a1dfe8db263c12800b863d8c6793c2728
MD5 49ea25eb47bb253f8de02d64e7f79cd7
BLAKE2b-256 bdc5b2ef8d7da9a386fff2be51c884577ac7731c10e952bbadc757fa9f18af8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyxpg-0.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 db0d47eca2afc32e90cc0277dfa35efa0c32a77cdcaaf13c84a56c104eacd8f0
MD5 8e62f59f8ee41d00eef1e7282eeba612
BLAKE2b-256 975586a5319c28e71a9b8f5b9c1b3f07be5eb3bf13ca5760822a56f487f7aa9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dccc8391ec65ea0510b4e197ebe5e31747ca29a5b95e487595c7775f5a1e8500
MD5 828644cb4cbb90d2976787a3b73224cb
BLAKE2b-256 707aa79655d56c5a19600f4aa31dd619f2f80752c6fa77be8178e72a22d870b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 28b7c91be00703275f6b5a998ac1853405641a9c2224e0e151455ffea924a67a
MD5 3702bac5e4df9883d858be5bc1386f47
BLAKE2b-256 93517bae2ab7b92208319debd6a55403050e9ac00306afaf192a2b41333351e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c028bcf8d1493f80ab69d5c41e4e2a1ed035d78636f4441d5cc4fcd0f25cdcf
MD5 077455589ef0db631e480784442548d3
BLAKE2b-256 1c4744adb761dfd8bf9d6e93f4ee6cac1382fd0190bee6b7bef1aa7618940f7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 32fdb0ca0397332a4e2d387291e5dc5d437d249e76ff2e1f3c19a311aa5a45e1
MD5 e408feafbe8f575c0cbf2733ecd85740
BLAKE2b-256 af4f8cb52279d3b6c30fcb1d0b2230c09e94d16cb141b8d614ba7c24ea016a5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 38814b8c4d7010bd5e7642078a18f9dbb8631ed30b14c2e43346f8ca0b87b6b7
MD5 626da3e4d3b677086067e5167fc4e90a
BLAKE2b-256 cf22824d7d89ac97440237c7f0bf9fee4f5a9a056a3d557ee6f2672b8200f008

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyxpg-0.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8e10842611d44eb131425f0733f44e0fc55cf791ad69c72ab2247ea28025ea1a
MD5 2cc3000bbc5b2af95b61623a4675cf44
BLAKE2b-256 15cf583a0e6d50080a242c25869b63ce2f0fbadfae00e5db2875b210da038763

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1db6c441de482c284395a3361a9b17e3477fb0fd102b2e5579128cd200daa411
MD5 881d4c44fc5820b903e02d73d6dc4c0f
BLAKE2b-256 508f5c623ab49688b11c1f2d9265b1c2ff4dd56c30ca56de1ecc55343f8fc0f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6043cb2170411df00e3ab4c6ad26411f9c5d5b8c935e6bd7a31639838f07779a
MD5 0465465a9fbfd0fc593fbdceacc7397d
BLAKE2b-256 5c47b3182721e061a3111609a7d2b787e79eab7e296474f7f6e9626017bd3564

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b63f634ce7d450faf6716584f19ec50b23b698cbf6f80a8de857e0043e44e495
MD5 605d7ec6cac42ad4a9369a6802f45d56
BLAKE2b-256 ae9f2cd0c1868e50c1f7723be488d7a70460226652e240060f17bc6c90530513

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fe772ca31a0929c93f8539a40e874cded1d6cd3bba2b60a3bec1bee2c6192526
MD5 68e66faa0c83f9d9a174065fe9cca182
BLAKE2b-256 bb95f22318310b6efc65a884cd7b5ded35c4d5286056876020bb6cb6c3e919cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3bfc859884c0f5333a3b5e1fbb0dd48e3494ee82fbc95660d99287d65c1f8e1c
MD5 c6e1d8731433846dfecc210126929fdd
BLAKE2b-256 897c3da8524b2b6545a3eff138e1916535ed9e8c2f3159199d3b03c8a5df68bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp39-cp39-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyxpg-0.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 97df8b344e36bc2e2f6695cdbf06742e9fdc344d05b32f28d473b7c84619b4c8
MD5 bad547f24f1a81163a358c8928c2093e
BLAKE2b-256 ed344c86fd88f6046d16c71c809eb5a0e07abad35c6270aeb964627680317b96

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: pyxpg-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyxpg-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34ebee42a0b0e829b4d1e2016e0d9c6a04a1828ec3ec9fccf522321bdbac9208
MD5 7926e67dd9a5ca278210b3197428167c
BLAKE2b-256 5ac689ed4e1aa19964b6dfa544e999b6aeee4970d2ab1d9371d168416a7a3ac8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 12573b9b16dfc563ac2e85f67c59f831781a12f70b587d02d267d7fa3128759f
MD5 d47f41b3b818e3f94678188f951a0148
BLAKE2b-256 779a317b5d35be14891967dec2407f0a3bf09e8e8916666482f67003a4b7dd15

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f44344b0cbd0633784f44dc33d0a79b299fc3f7dbaec7e841d0a759332ecd42
MD5 521b8ccd1042836fe562525ce3041c6a
BLAKE2b-256 23b9e2207c38678c862afe4b48edda2363f81ed83203b18885a929a4f42acaaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 01de8308c64c099babdc66b85416b6a93fdbf711ba157e59bc283918f163465d
MD5 f9275d60c4636b6b4bbca9265de7e421
BLAKE2b-256 5916f5a3f1c1f9fbb354a80b08e1a6c75687aa3b5580b249cf50d2ddf54096d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

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

File hashes

Hashes for pyxpg-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b08bf1e9e041029c6d676f10719d1c855c0114744d37440be75fecccea97bcb9
MD5 d489632b785f5573bfb739726cc765c9
BLAKE2b-256 6cf3ebf56686a68338a5943a18fee5862b9ac105200284461bf04f8ca0e574aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp38-cp38-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyxpg-0.4.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8da450bd2f73c069926a87cdd165bcf37138a8f03f105a48af517063250cf583
MD5 358b1895b2a3eaed53b6ea856db8ffe1
BLAKE2b-256 23bdd6e688c618ef12dff1dba864a7e07fecd2e76be1c738659f5a5702a09080

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: pyxpg-0.4.0-cp38-cp38-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.8, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyxpg-0.4.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f77f84e231902f95003ada41b2aca7e5f35a2ab5187575d84a9074a95bcf4619
MD5 3fbec26bdad1ada8f6bdbebf4a6f55b6
BLAKE2b-256 2a18b500f269a1ced35ea5a684ca2302066937bfaaf02feab6424dafb37aa28d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 de70d6adb9a97f51bdc7c99ec583c630a72854eb12ae6ebe1d7b42113862f6bd
MD5 f9274017684662018263441aefec7823
BLAKE2b-256 33e4385a0d7fc066b50d6434f74a68567dd2ce4be03091095405eddc8f631433

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0b1eabd4724a687627b1fc69a0e3ec66d90d3a0ab9bd0d792de54b267ff14df6
MD5 6a52a425618b8f45d795fa8473f7e52c
BLAKE2b-256 b888d8bace0b915a0d15e3411abc627d14c12ebf3122f79d53bda469e71a83ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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.4.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyxpg-0.4.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 560ecdf5ba4a277f2c97e990f3862855a18d2dda49eaddc277c59295c5d147b1
MD5 0d60f10c619bd2f8b8002926f2ba419f
BLAKE2b-256 6344fbefffd8cca0e33227cf526ef836bef9da2edd84531f902db0044448fbe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxpg-0.4.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