pyQES
Version: 2.4.0 · Python: ≥ 3.10 · License: GPL-3.0-only
Python bindings for the Quick Environmental Simulation (QES) C++ suite — QES-Winds, QES-Plume, and QES-Fire.
The C++ core lives in the qes-core git submodule (fork of UtahEFD/QES-Public, branch develop_pyqes). This repository ships the pybind11 wrappers, the pyQES package, examples, and GitHub Actions for wheels / PyPI.
GPU: NVIDIA GPU with Compute Capability 7.0+ (CUDA wheel on Linux). CPU builds work without CUDA.
Table of contents
- Features
- Compatibility
- Installation
- Build from source
- Quick start
- Package layout
- Examples
- Development
- Continuous integration
- Updating the QES core
- Links
- License
Features
- Run QES-Winds from Python (
config/ XML / JSON), with optional DEM / buildings preprocessing and vegetation (Homogeneous / IsolatedTree / tree shapefile) - Export wind magnitude to georeferenced GeoTIFF (
pywinds.to_tif) - Export u/v arrow seeds as GeoJSON for MapLibre (
pywinds.to_streamlines) - Export RK4 streamlines as GeoJSON LineStrings for MapLibre (
pywinds.to_flowlines) - Run QES-Plume on winds + turbulence NetCDF fields
- Run coupled QES-Fire (optional smoke plume)
- Pydantic v2 config models, XML/JSON I/O, geospatial helpers
- Prebuilt CPU wheels for Linux, macOS (arm64), and Windows; optional Linux CUDA wheel
Compatibility
| Package version | 2.4.0 |
| Python | 3.10 · 3.11 · 3.12 · 3.13 |
| OS (CPU wheels) | Linux x86_64 (manylinux_2_28) · macOS arm64 (deployment target 14.0+) · Windows AMD64 |
| GPU wheel | Linux CUDA (cp312), NVIDIA CC ≥ 7.0 |
| Build system | scikit-build-core ≥ 1.0 · CMake ≥ 3.18 · C++17 · pybind11 ≥ 2.12 |
Runtime dependencies
| Extra | Packages | Role |
|---|---|---|
| (core) | pydantic≥2, numpy |
Config models & arrays |
geo |
rasterio, pyproj, geopandas |
DEM / buildings preprocessing, GeoTIFF & GeoJSON export |
io |
netCDF4 |
NetCDF helpers (incl. windsOut.nc → GeoTIFF / GeoJSON) |
Native libraries (from-source builds)
Boost (program-options, date-time, property-tree, optional), NetCDF-C++, GDAL — install via system packages or the included vcpkg manifest (vcpkg.json).
Installation
From PyPI
pip install pyqes
# optional extras
pip install "pyqes[geo]" # geospatial preprocessing / GeoTIFF / GeoJSON
pip install "pyqes[io]" # NetCDF helpers
pip install "pyqes[geo,io]" # both (needed for to_tif / to_streamlines / to_flowlines)
# with uv
uv add pyqes
uv add "pyqes[geo,io]"
Verify:
import pyQES
print(pyQES.__version__) # e.g. 2.4.0
From source
git clone --recursive https://github.com/rupeelab17/pyQES.git
cd pyQES
Native deps (Boost, NetCDF-C++, GDAL) — pick one:
# macOS (Homebrew)
brew install boost netcdf-cxx gdal
# Linux (Ubuntu / Debian)
sudo apt install libboost-all-dev libnetcdf-dev libnetcdf-c++4-dev \
libnetcdf-cxx-legacy-dev libgdal-dev netcdf-bin cmake
# Debian Trixie (e.g. python:3.13-slim-trixie): libnetcdf-cxx-legacy-dev
# is not packaged — use only libnetcdf-dev and libnetcdf-c++4-dev:
# sudo apt install libboost-all-dev libnetcdf-dev libnetcdf-c++4-dev \
# libgdal-dev netcdf-bin cmake
# Windows (vcpkg — recommended; needs Visual Studio / MSVC)
git clone https://github.com/microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
$env:VCPKG_ROOT = (Resolve-Path .\vcpkg).Path
# CMAKE_ARGS is picked up by scikit-build-core / uv sync
$env:CMAKE_ARGS = "-DCMAKE_TOOLCHAIN_FILE=$env:VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"
Alternatively on any OS, use the repo vcpkg.json manifest (same toolchain as the CI wheels).
# Editable install + extras ([uv](https://docs.astral.sh/uv/))
uv sync --extra geo --extra io
Always clone or pull with submodules:
git pull --recurse-submodules
# or
git submodule update --init --recursive
Build from source
Requirements beyond Python:
- C++17 compiler
- CMake ≥ 3.18
- Git with submodule support
- Native libs: Boost, NetCDF-C++, GDAL (or vcpkg via the repo manifest)
# after clone --recursive
uv sync --extra geo --extra io
# or
pip install -e ".[geo,io]"
Wheels are built with cibuildwheel (see Continuous integration).
Quick start
From a QES XML file
from pyQES import pywinds
result = pywinds.run(
xml="examples/umep_workflow/qes/umep_larochelle.xml",
dem="examples/umep_workflow/DEM_clip.tif",
buildings_src="examples/umep_workflow/buildings.shp",
buildings_mask="examples/umep_workflow/mask.shp",
solver="cpu",
work_dir="/tmp/qes_out",
)
print(result.winds_out)
Sensor paths referenced in the XML (e.g. sensor_umep.xml) are resolved relative to the XML directory. Set auto_preprocess=False to use the file as-is without DEM / buildings preprocessing.
From a Python config
from pyQES import pywinds
from pyQES.util.config import (
WindsParameters,
SensorParameters,
TimeSeries,
Homogeneous,
IsolatedTree,
VegetationParameters,
)
params = WindsParameters()
params.simulation_parameters.dem = "path/to/DEM.tif"
params.simulation_parameters.cell_size = (2.0, 2.0, 0.5)
params.simulation_parameters.halo_x = 40.0
params.simulation_parameters.halo_y = 40.0
params.simulation_parameters.domain_rotation = 0.0 # must be 0
params.buildings_params.shp_file = "path/to/buildings.shp"
# Optional vegetation — Homogeneous block (Cionco; rectangle or xVertex/yVertex)
params.vegetation_params = VegetationParameters(
homogeneous=[
Homogeneous(
attenuation_coefficient=1.0,
height=10.0,
base_height=0.0,
x_start=80.0,
y_start=60.0,
length=40.0,
width=80.0,
canopy_rotation=0.0,
)
]
)
# Or IsolatedTree blocks (QES domain coords, metres):
# params.vegetation_params = VegetationParameters(
# isolated_trees=[
# IsolatedTree(
# attenuation_coefficient=3.0,
# height=15.0,
# base_height=0.0,
# z_max_lai=0.7,
# x_center=20.0,
# y_center=100.0,
# width=10.0,
# )
# ]
# )
# Or trees from a point shapefile (fields H, D, LAI):
# params.vegetation_params = VegetationParameters(
# shp_file="path/to/trees.shp", shp_tree_layer="trees"
# )
sensor = SensorParameters(
time_series=[TimeSeries(speed=3.0, direction=270.0, height=10.0, site_z0=0.24)]
)
result = pywinds.run(config=params, sensor=sensor, solver="cpu", work_dir="/tmp/qes_out")
print(result.winds_out)
# optional GeoTIFF of |V| at 1.5 m AGL (needs pyqes[geo,io])
tif = pywinds.to_tif(z=1.5)
print(tif)
# optional GeoJSON arrows (bearing + speed) for MapLibre icon-rotate
arrows = pywinds.to_streamlines(z=1.5, stride=4)
print(arrows)
# optional RK4 streamlines (LineStrings) for MapLibre symbol-placement:line
flowlines = pywinds.to_flowlines(z=1.5, seed_stride=8)
print(flowlines)
pywinds.run accepts exactly one of config, xml, or json (or none, with keyword overrides). Solvers: "cpu" / "gpu" (or the QES integer code).
Package layout
| Module | Role |
|---|---|
pyQES.pywinds |
QES-Winds — run(...), to_tif(...), to_streamlines(...), to_flowlines(...) |
pyQES.pyplume |
QES-Plume — run(xml=..., winds_file=..., turb_file=...) |
pyQES.pyfire |
Coupled QES-Fire — run(...) (+ optional plume_xml) |
pyQES.util |
Pydantic config, XML/JSON I/O, paths, geo helpers, NetCDF→GeoTIFF / GeoJSON |
pyQES._winds / _plume / _fire / _util |
Compiled pybind11 extensions |
Config models live in pyQES.util.config: WindsParameters, SimulationParameters, SensorParameters, TimeSeries, VegetationParameters, Homogeneous, IsolatedTree, etc.
Examples
Sample La Rochelle / UMEP inputs: examples/umep_workflow/ (DEM, buildings, mask, QES XML).
uv run python examples/run_winds_demo.py
uv run python examples/run_winds_demo.py --speed 5 --direction 180
uv run python examples/run_vegetation_demo.py
uv run python examples/run_vegetation_demo.py --canopy isolated
uv run python examples/umep_workflow/run_qeswinds.py
uv run python examples/umep_workflow/run_qeswinds_args.py --speed 5 --direction 180
Vegetation demo (examples/run_vegetation_demo.py): flat domain with one Homogeneous rectangle (default), --canopy isolated for IsolatedTree, or --trees-shp for a point shapefile (H, D, LAI).
From a WGS84 bbox (pymdurs / IGN)
Script: examples/pymdurs_workflow/run_from_bbox.py.
Downloads DEM, buildings, LiDAR trees, and mask via pymdurs (France + network), then runs QES-Winds. Tree tops (H, D, LAI) are buffered to crown polygons for QES. Default cell size is 2.5 2.5 1 (finer grids on large bboxes may segfault). Optional flags: --to-tif (|V| GeoTIFF), --to-streamlines (arrow Points), --to-flowlines (RK4 LineStrings), --no-trees (skip vegetation), --lai / --trees-resolution / --min-tree-height.
uv sync --extra geo --extra io
uv pip install pymdurs
uv run python examples/pymdurs_workflow/run_from_bbox.py --to-tif
uv run python examples/pymdurs_workflow/run_from_bbox.py \
--bbox=-1.152704,46.181627,-1.139893,46.18699 --to-tif --to-streamlines --to-flowlines
# reuse previous IGN / LiDAR downloads in examples/pymdurs_workflow/output/
uv run python examples/pymdurs_workflow/run_from_bbox.py --skip-fetch --to-tif --to-flowlines
# buildings + DEM only (no LiDAR trees)
uv run python examples/pymdurs_workflow/run_from_bbox.py --no-trees --to-tif
Development
uv sync --extra geo --extra io
# lint / typecheck
uv run ruff check pyQES tests examples
uv run mypy
# fast unit tests (no full solver run)
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run pytest tests -m "not slow"
# end-to-end winds run (compiled extension + example data)
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run pytest tests -m slow
Dev tools (via [dependency-groups] dev): pytest, pytest-cov, ruff, mypy, plus the geo / io extras.
Continuous integration
| Workflow | Role |
|---|---|
ci.yml |
Ruff, mypy, pure-Python pytest |
wheels.yml |
CPU wheels — Linux / macOS / Windows · cp310–cp313 · sdist |
cuda-build.yml |
Linux CUDA wheel (cp312) |
publish.yml |
Publish to PyPI on v* tags |
Updating the QES core
git submodule update --remote qes-core
git add qes-core
git commit -m "Bump qes-core"
Links
| Homepage / source | https://github.com/rupeelab17/pyQES |
| PyPI | https://pypi.org/project/pyqes/ |
| QES documentation | https://qes-documentation.readthedocs.io/en/latest |
| QES core (submodule) | https://github.com/rupeelab17/QES-Public |
| Upstream QES | https://github.com/UtahEFD/QES-Public |
License
GPL-3.0-only — see LICENSE.
QES core: see qes-core/LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyqes-2.5.1.tar.gz.
File metadata
- Download URL: pyqes-2.5.1.tar.gz
- Upload date:
- Size: 462.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f869e553828afdc5d0a2a124ad5ce79538d41276b610f1f37604f3cda527a72c
|
|
| MD5 |
f1fd4d5887b1192c637bcc419ee28c53
|
|
| BLAKE2b-256 |
6d80c610a37f82299d01ebd8c9720481f82b6a1e3efac782921f02175c598c35
|
Provenance
The following attestation bundles were made for pyqes-2.5.1.tar.gz:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1.tar.gz -
Subject digest:
f869e553828afdc5d0a2a124ad5ce79538d41276b610f1f37604f3cda527a72c - Sigstore transparency entry: 2261409173
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 20.7 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c09d30c7d78a3ab797d27b3be82afb3d2021323f6ba8019e35823997101ab49a
|
|
| MD5 |
28b3a3977833a2c3b2794cc2d9b89935
|
|
| BLAKE2b-256 |
02b4ebc6b98fa4009b4768d9295a8323e752dafe5966c5e9ffbb37df96dd1d62
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp313-cp313-win_amd64.whl -
Subject digest:
c09d30c7d78a3ab797d27b3be82afb3d2021323f6ba8019e35823997101ab49a - Sigstore transparency entry: 2261409651
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 77.8 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9de5be4b351b90fa705cbe5d7ce83f89a1b260259bbc38d5a4732246155e30cc
|
|
| MD5 |
7d9b5e9f0fc48dc01015da96f30809b5
|
|
| BLAKE2b-256 |
0dac619ccbe1148aa6e435fcee2340f83a252c535bb46cda1a370dbd99e80f5c
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp313-cp313-manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp313-cp313-manylinux_2_28_x86_64.whl -
Subject digest:
9de5be4b351b90fa705cbe5d7ce83f89a1b260259bbc38d5a4732246155e30cc - Sigstore transparency entry: 2261410461
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp313-cp313-macosx_14_0_arm64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp313-cp313-macosx_14_0_arm64.whl
- Upload date:
- Size: 60.5 MB
- Tags: CPython 3.13, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fd11e3f8a32d13d057798be9e1961ac71ab892ada6e2947da9461ea386ec4b0
|
|
| MD5 |
b0bec13d7e255777fa7f600310b391cf
|
|
| BLAKE2b-256 |
e25b442cb435663487243548a053c94827549ccddb55fd8668c527e77548d105
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp313-cp313-macosx_14_0_arm64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp313-cp313-macosx_14_0_arm64.whl -
Subject digest:
2fd11e3f8a32d13d057798be9e1961ac71ab892ada6e2947da9461ea386ec4b0 - Sigstore transparency entry: 2261410260
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 20.7 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c0241781bce18635f7cd0c73fb6defd09dba20ed8c2bda1ebe0498e5d7f5f09
|
|
| MD5 |
4f898982b73454d65230f061e550e727
|
|
| BLAKE2b-256 |
86789002c8b5918b52913eb8fc04c60cdcce1ce8523b6d145e58a0ea19297ff1
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp312-cp312-win_amd64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp312-cp312-win_amd64.whl -
Subject digest:
2c0241781bce18635f7cd0c73fb6defd09dba20ed8c2bda1ebe0498e5d7f5f09 - Sigstore transparency entry: 2261410680
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 77.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2af3203c8e289ac445b9d5914a61eba725709be3d686d72f51dee6987bdcf09b
|
|
| MD5 |
4c4545bcd1aa46960e5a062e8eff1a98
|
|
| BLAKE2b-256 |
8402cdbd23cc04507f3e60eb058b0c58a2c67e9397d3a451c15eac9ba6100288
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp312-cp312-manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp312-cp312-manylinux_2_28_x86_64.whl -
Subject digest:
2af3203c8e289ac445b9d5914a61eba725709be3d686d72f51dee6987bdcf09b - Sigstore transparency entry: 2261409756
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp312-cp312-macosx_14_0_arm64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp312-cp312-macosx_14_0_arm64.whl
- Upload date:
- Size: 60.5 MB
- Tags: CPython 3.12, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97375905aaf32170b80b6675b998a93fc64c94dd362fe697f576bf90056abb90
|
|
| MD5 |
aed85cad8f3863405240586307dec59d
|
|
| BLAKE2b-256 |
c30b8a56dbf4835c6b31aa1412e6a27cdd308446fdd8320ae8e27fd29db86f6f
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp312-cp312-macosx_14_0_arm64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp312-cp312-macosx_14_0_arm64.whl -
Subject digest:
97375905aaf32170b80b6675b998a93fc64c94dd362fe697f576bf90056abb90 - Sigstore transparency entry: 2261410142
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 20.7 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32394f950cebc00d7b9a0183dc6b408b46c89c7e141dae8abd6ed526e224b06c
|
|
| MD5 |
e7f067ff09ed7e7baa5c2f3425ed7f59
|
|
| BLAKE2b-256 |
08c97e7cfcf82796efde6901247bb919d3b2c9538f3308e910fb85aa54adad87
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp311-cp311-win_amd64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp311-cp311-win_amd64.whl -
Subject digest:
32394f950cebc00d7b9a0183dc6b408b46c89c7e141dae8abd6ed526e224b06c - Sigstore transparency entry: 2261409339
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 77.8 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3e7e6fa7a3f1d9863c7ca1cbcd0d493615062181d507d69ab40eb5064ea6c76
|
|
| MD5 |
60a248ed767e860dfaf61eda89676d16
|
|
| BLAKE2b-256 |
5d6ac3d534e2d541b33af976e251733aa751ff96bce6b9cfdc5649e68b2f375d
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp311-cp311-manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp311-cp311-manylinux_2_28_x86_64.whl -
Subject digest:
e3e7e6fa7a3f1d9863c7ca1cbcd0d493615062181d507d69ab40eb5064ea6c76 - Sigstore transparency entry: 2261410020
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp311-cp311-macosx_14_0_arm64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp311-cp311-macosx_14_0_arm64.whl
- Upload date:
- Size: 60.5 MB
- Tags: CPython 3.11, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4716c222a1a42a229de3a0f4ae76736fcaee2fe7e548b82d7cf715bfe363e7c
|
|
| MD5 |
24eb51728daf6dee7f309135117fc799
|
|
| BLAKE2b-256 |
7f3608d4518fec9bd7cf992d58efa76e848f7b4862164d6f41e32ce68e33b751
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp311-cp311-macosx_14_0_arm64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp311-cp311-macosx_14_0_arm64.whl -
Subject digest:
d4716c222a1a42a229de3a0f4ae76736fcaee2fe7e548b82d7cf715bfe363e7c - Sigstore transparency entry: 2261410560
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 20.7 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef33ba2d5396d41e6396547777933c28440c383fdd5c35d4deb496605a8a50cf
|
|
| MD5 |
e8a9fcc2cdfea8696678eeaaa7633e2e
|
|
| BLAKE2b-256 |
d2623c4e1845213a7fccba7baaaf97fec73ac36c66ff747f7fe01201c393032a
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp310-cp310-win_amd64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp310-cp310-win_amd64.whl -
Subject digest:
ef33ba2d5396d41e6396547777933c28440c383fdd5c35d4deb496605a8a50cf - Sigstore transparency entry: 2261409486
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 77.8 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a446c5ae8fa90fc46dddec99cc6e82d921aad2855d1f2ea5448e0f5e43ad60c1
|
|
| MD5 |
28bef0900dd871b90448998f56ddd0f4
|
|
| BLAKE2b-256 |
2a254f3bf2c9feea3524341b37bc2aa0d73b0e57318ed36cc2ce4424ccc65c14
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp310-cp310-manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp310-cp310-manylinux_2_28_x86_64.whl -
Subject digest:
a446c5ae8fa90fc46dddec99cc6e82d921aad2855d1f2ea5448e0f5e43ad60c1 - Sigstore transparency entry: 2261409864
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyqes-2.5.1-cp310-cp310-macosx_14_0_arm64.whl.
File metadata
- Download URL: pyqes-2.5.1-cp310-cp310-macosx_14_0_arm64.whl
- Upload date:
- Size: 60.5 MB
- Tags: CPython 3.10, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eea3a2e4886e62b0ab65bf377f932e41dbfd3d8889ca753448f82e2d89b217f
|
|
| MD5 |
ff409e276944235613b5d172268e3a91
|
|
| BLAKE2b-256 |
4e6c6d8b89e6c361ebe7feb964606dbd0a7d66ed334b7f7db24d38c623520b69
|
Provenance
The following attestation bundles were made for pyqes-2.5.1-cp310-cp310-macosx_14_0_arm64.whl:
Publisher:
publish.yml on rupeelab17/pyQES
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyqes-2.5.1-cp310-cp310-macosx_14_0_arm64.whl -
Subject digest:
7eea3a2e4886e62b0ab65bf377f932e41dbfd3d8889ca753448f82e2d89b217f - Sigstore transparency entry: 2261410350
- Sigstore integration time:
-
Permalink:
rupeelab17/pyQES@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Branch / Tag:
refs/tags/v2.5.1 - Owner: https://github.com/rupeelab17
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1d332d7b71ffa7037c546c7917c926593ea0b0b7 -
Trigger Event:
push
-
Statement type: