Skip to main content

pyResToolbox - A collection of Reservoir Engineering Utilities

Project description

This set of functions focuses on those that the author uses often while crafting programming solutions. These are the scripts that are often copy/pasted from previous work - sometimes slightly modified - resulting in a trail of slightly different versions over the years. Some attempt has been made here to make this implementation flexible enough such that it can be relied on as-is going forward.

Note: Version 3.0 consolidates simulation-oriented functions under the simtools module, adds nodal analysis (VLP/IPR), VFP table generation, relative permeability curve fitting, and Eclipse METRIC unit support across all modules. Version 3.0.4 adds decline curve analysis, material balance, method recommendations, and sensitivity analysis.

Includes functions to perform calculations including;

  • Decline Curve Analysis with Arps and Duong models — fitting, forecasting, EUR, windowed fitting, secondary phase ratio models, and uptime inference

  • Material Balance for gas (P/Z with Cole plot and Havlena-Odeh aquifer support) and oil (Havlena-Odeh with drive indices, parameter regression, and tabulated PVT)

  • Inflow Performance Relationships (IPR) for oil and gas wells

  • Vertical Lift Performance (VLP) with four multiphase flow correlations (Hagedorn-Brown, Woldesemayat-Ghajar, Gray, Beggs & Brill)

  • Nodal analysis operating point determination

  • Eclipse VFP table generation (VFPPROD and VFPINJ keywords)

  • PVT Calculations for oil

  • PVT calculation for gas, including up to 100% inerts for CO2, H2S, N2 and H2

  • Gas hydrate formation prediction with thermodynamic inhibitor calculations

  • Return critical parameters for typical components

  • Creation of Black Oil Table information (PVDO, PVDG, PVTO, PVTW keywords)

  • Creation of layered permeability distribution consistent with a Lorenz heterogeneity factor

  • Extract problem cells information from Intersect (IX) print files

  • Generation of AQUTAB include file influence functions for use in ECLIPSE

  • Creation of Corey, LET and Jerauld relative permeability tables in Eclipse format, with curve fitting support

  • Calculation of Methane, CO2 and multicomponent gas saturated brine properties (Soreide-Whitson VLE)

  • Method recommendation engine for selecting appropriate correlations based on fluid composition

  • Sensitivity analysis with parameter sweeps and tornado charts

All public PVT, flow rate, and simulation table functions support both oilfield (psia, deg F, ft) and Eclipse METRIC (barsa, deg C, m) unit systems via an optional metric=False parameter. See individual module documentation for unit mapping details.

Rust Acceleration (Optional)

pyResToolbox includes optional Rust-compiled extensions that accelerate computationally intensive algorithms. When the compiled extension is present and loadable, these functions run automatically through Rust with no API changes. When the extension is unavailable, all functions fall back silently to the pure Python implementation.

Accelerated functions:

  • Nodal VLP segment loops — all 8 VLP method functions (4 methods x gas/oil)

  • Gas Z-factor — DAK, Hall-Yarborough, and BNS full-pipeline calculations

  • Gas viscosity — LGE and LBC correlations

  • Gas pseudopressure — Gauss-Legendre quadrature integration

  • Oil density — Standing-Witte-McCain-Hill (iterative and above-Pb)

  • Oil FVF — McCain density-based method

  • DCA hyperbolic fitting — grid search with RANSAC (fit_decline, fit_decline_cum)

  • Material balance — oil matbal regression objective function

  • CO2-Brine solubility — Spycher-Pruess iterative RK-EOS solver

  • VLE flash — Soreide-Whitson multi-component Peng-Robinson flash

Behavior:

  • If the Rust extension is not found on disk, pure Python is used with no warning

  • If the extension fails to load (e.g. OS permission restrictions, architecture mismatch), a sentinel file is written to avoid repeated probe attempts on subsequent imports. The sentinel is automatically invalidated when the extension file changes (new build or update)

  • All Rust-accelerated paths use try/except wrappers — any Rust-side error falls back to the Python implementation transparently

Environment variables:

  • PYRESTOOLBOX_NO_RUST=1 — Force pure Python mode (skip Rust extension entirely)

  • PYRESTOOLBOX_RETRY_RUST=1 — Ignore the sentinel file and retry loading the extension

Programmatic status check:

>>> from pyrestoolbox._accelerator import get_status, clear_block
>>> get_status()
{'rust_available': True, 'failure_reason': '', 'forced_python': False, ...}
>>> # If blocked by a sentinel, clear it and restart Python:
>>> clear_block()

Changelist

Upgrade previous installations with

pip install pyrestoolbox --upgrade

Module List

dca

Arps and Duong decline rate and cumulative, EUR estimation, Decline model fitting (time-domain and cumulative, with windowing), Ratio model fitting (GOR/WOR), Forecasting with uptime and secondary phase ratios

matbal

Gas P/Z material balance (OGIP), Cole plot diagnostics, Havlena-Odeh with aquifer influx, Oil Havlena-Odeh material balance (OOIP) with drive indices, Parameter regression with bounds, Tabulated PVT support

gas

Gas Tc & Pc Calculation, Gas Z-Factor Calculation, Gas Viscosity, Gas Viscosity * Z, Gas Compressibility, Gas Formation Volume Factor, Gas Density, Gas Water of Condensation, Convert P/Z to P, Convert Gas Gradient to SG, Delta Pseudopressure, Gas Condensate FWS SG, Gas Flow Rate Radial, Gas Flow Rate Linear, Gas Hydrate Prediction

oil

Oil Density from MW, Oil Critical Properties with Twu, Incremental GOR post Separation, Oil Bubble Point Pressure, Oil GOR at Pb, Oil GOR at P, Oil Compressibility, Oil Density, Oil Formation Volume Factor, Oil Viscosity, Harmonize Pb and Rsb, Estimate soln gas SG from oil, Estimate SG of gas post separator, Calculate weighted average surface gas SG, Oil API to SG, Oil SG to API, Oil Flow Rate Radial, Oil Flow Rate Linear

nodal

Flowing BHP (4 VLP methods), Outflow (VLP) curves, Inflow (IPR) curves, Operating point analysis, Multi-segment deviated/horizontal wells, GasPVT and OilPVT convenience classes

library

Return critical parameters for typical single components

brine

Calculate suite of brine properties with variable methane, Calculate suite of CO2 saturated brine properties, Multicomponent gas-saturated brine (Soreide-Whitson VLE)

layer

Lorenz coefficient from Beta value, Lorenz coefficient from flow fraction, Lorenz coefficient to flow fraction, Lorenz coefficient to permeability array

simtools

Summarize IX convergence errors from PRT file, Create Aquifer Influence Functions, Perform recursive ECL or IX deck zip/check for INCLUDE files, Solve Rachford Rice for user specified feed Zis and Ki’s, Create sets of rel perm tables (Corey, LET, Jerauld), Fit relative permeability models to measured data, Generate Eclipse VFPPROD lift curve tables, Generate Eclipse VFPINJ injection curve tables, Create Black Oil tables (PVDO, PVDG, PVTO), Create PVTW water PVT tables

recommend

Recommend Z-factor, critical property, oil PVT, and VLP methods based on fluid composition and well configuration

sensitivity

Parameter sweeps and tornado chart sensitivity analysis

Getting Started

Install the library with pip:

pip install pyrestoolbox

Import library into your project and start using.

A simple example below of estimating oil bubble point pressure.

>>> from pyrestoolbox import oil
>>> oil.oil_pbub(api=43, degf=185, rsb=2350, sg_g =0.72, pbmethod ='VALMC')
5179.51086900132

Fit a decline curve to production data and estimate ultimate recovery.

>>> import numpy as np
>>> from pyrestoolbox import dca
>>> t = np.arange(1, 51, dtype=float)
>>> q = 1000 * np.exp(-0.05 * t)
>>> result = dca.fit_decline(t, q, method='exponential')
>>> result.qi, result.di
(1000.0000000000007, 0.05000000000000006)
>>> dca.eur(qi=result.qi, di=result.di, b=0, q_min=10)
19799.99999999999

Estimate gas in place from pressure-production history.

>>> from pyrestoolbox import matbal
>>> r = matbal.gas_matbal(
...     p=[3000, 2700, 2400, 2100, 1800],
...     Gp=[0, 5, 12, 22, 35],
...     degf=200, sg=0.65
... )
>>> r.ogip
87.602774253829
>>> r.r_squared
0.9734794008096929

A set of Gas-Oil relative permeability curves with the LET method

>>> import matplotlib.pyplot as plt
>>> from pyrestoolbox import simtools
>>> df = simtools.rel_perm_table(rows=25, krtable='SGOF', krfamily='LET', kromax =1, krgmax =1, swc =0.2, sorg =0.15, Lo=2.5, Eo = 1.25, To = 1.75, Lg = 1.2, Eg = 1.5, Tg = 2.0)
>>> plt.plot(df['Sg'], df['Krgo'], c = 'r', label='Gas')
>>> plt.plot(df['Sg'], df['Krog'], c = 'g', label='Oil')
>>> plt.title('SGOF Gas Oil LET Relative Permeability Curves')
>>> plt.xlabel('Sg')
>>> plt.ylabel('Kr')
>>> plt.legend()
>>> plt.grid('both')
>>> plt.plot()
SGOF Relative Permeability Curves

Or a set of Water-Oil relative permeability curves with the Corey method

>>> df = simtools.rel_perm_table(rows=25, krtable='SWOF', kromax =1, krwmax =0.25, swc =0.15, swcr = 0.2, sorw =0.15, no=2.5, nw=1.5)
>>> plt.plot(df['Sw'], df['Krow'], c = 'g', label='Oil')
>>> plt.plot(df['Sw'], df['Krwo'], c = 'b', label='Water')
>>> plt.title('SWOF Water Oil Corey Relative Permeability Curves')
>>> plt.xlabel('Sw')
>>> plt.ylabel('Kr')
>>> plt.legend()
>>> plt.grid('both')
>>> plt.plot()
SWOF Relative Permeability Curves

A set of dimensionless pressures for the constant terminal rate Van Everdingin & Hurst aquifer, along with an AQUTAB.INC export for use in ECLIPSE.

>>> ReDs = [1.5, 2, 3, 5, 10, 25, 1000]
>>> tds, pds = simtools.influence_tables(ReDs=ReDs, export=True)
>>>
>>> for p, pd in enumerate(pds):
>>>     plt.plot(tds, pd, label = str(ReDs[p]))
>>>
>>> plt.xscale('log')
>>> plt.yscale('log')
>>> plt.legend(loc='upper left')
>>> plt.grid(which='both')
>>> plt.xlabel('Dimensionless Time (tD)')
>>> plt.ylabel('Dimensionless Pressure Drop (PD)')
>>> plt.title('Constant Terminal Rate Solution')
>>> plt.show()
Constant Terminal Rate influence tables

Or creating black oil table information for oil

>>> results = simtools.make_bot_og(pi=4000, api=38, degf=175, sg_g=0.68, pmax=5000, pb=3900, rsb=2300, nrows=50)
>>> df, st_deno, st_deng, res_denw, res_cw, visw, pb, rsb, rsb_frac, usat = results['bot'], results['deno'], results['deng'], results['denw'], results['cw'], results['uw'], results['pb'], results['rsb'], results['rsb_scale'], results['usat']
>>>
>>> print('Stock Tank Oil Density:', st_deno, 'lb/cuft')
>>> print('Stock Tank Gas Density:', st_deng, 'lb/cuft')
>>> print('Reservoir Water Density:', res_denw, 'lb/cuft')
>>> print('Reservoir Water Compressibility:', res_cw, '1/psi')
>>> print('Reservoir Water Viscosity:', visw,'cP')
>>>
>>> fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(10,10))
>>> ax1.plot(df['Pressure (psia)'], df['Rs (mscf/stb)'])
>>> ax2.plot(df['Pressure (psia)'], df['Bo (rb/stb)'])
>>> ax3.plot(df['Pressure (psia)'], df['uo (cP)'])
>>> ax4.semilogy(df['Pressure (psia)'], df['Co (1/psi)'])
>>>
>>> fig.suptitle('Black Oil Properties')
>>> ax1.set_title("Rs vs P")
>>> ax1.set_ylabel('Rs (mscf/stb)')
>>> ax1.set_xlabel('Pressure (psia)')
>>> ax1.grid('both')
>>>
>>> ax2.set_title("Bo vs P")
>>> ax2.set_ylabel('Bo (rb/stb)')
>>> ax2.set_xlabel('Pressure (psia)')
>>> ax2.grid('both')
>>>
>>> ax3.set_title("Viso vs P")
>>> ax3.set_xlabel('Pressure (psia)')
>>> ax3.set_ylabel('Viscosity (cP)')
>>> ax3.grid('both')
>>>
>>> ax4.set_title("Co vs P")
>>> ax4.set_ylabel('Co (1/psi)')
>>> ax4.set_xlabel('Pressure (psia)')
>>> ax4.grid('both')
>>>
>>> plt.tight_layout()
>>> plt.show()
Iteratively solving for Rsb fraction to use in order to harmonize user specified Pb and Rsb

Stock Tank Oil Density: 52.09203539823009 lb/cuft
Stock Tank Gas Density: 0.052046870460837856 lb/cuft
Reservoir Water Density: 61.40223160167964 lb/cuft
Reservoir Water Compressibility: 2.930237693350768e-06 1/psi
Reservoir Water Viscosity: 0.3640686136171888 cP
Black Oil Properties

And gas

>>> fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(10,10))
>>> ax1.semilogy(df['Pressure (psia)'], df['Bg (rb/mscf'])
>>> ax2.plot(df['Pressure (psia)'], df['ug (cP)'])
>>> ax3.plot(df['Pressure (psia)'], df['Gas Z (v/v)'])
>>> ax4.semilogy(df['Pressure (psia)'], df['Cg (1/psi)'])
>>> ...
>>> plt.show()
Dry Gas Properties

With ability to generate Live Oil PVTO style table data as well

>>> pb = 4500
>>> results = simtools.make_bot_og(pvto=True, pi=4000, api=38, degf=175, sg_g=0.68, pmax=5500, pb=pb, nrows=25, export=True)
>>> df, st_deno, st_deng, res_denw, res_cw, visw, pb, rsb, rsb_frac, usat = results['bot'], results['deno'], results['deng'], results['denw'], results['cw'], results['uw'], results['pb'], results['rsb'], results['rsb_scale'], results['usat']
>>>
>>> if len(usat) == 0:
>>>     usat_flag = False
>>> else:
>>>     usat_flag=True
>>>     usat_p, usat_bo, usat_uo = usat
>>>
>>> try:
>>>     pb_idx = df['Pressure (psia)'].tolist().index(pb)
>>>     bob = df['Bo (rb/stb)'].iloc[pb_idx]
>>>     rsb = df['Rs (mscf/stb)'].iloc[pb_idx]
>>>     uob = df['uo (cP)'].iloc[pb_idx]
>>>     cob = df['Co (1/psi)'].iloc[pb_idx]
>>>     no_pb = False
>>> except:
>>>     print('Pb was > Pmax')
>>>     no_pb = True
>>>
>>> print('Pb (psia):', pb)
>>> print('Bob (rb/stb):', bob)
>>> print('Rsb (mscf/stb):', rsb)
>>> print('Rsb Scaling Required:', rsb_frac)
>>> print('Visob (cP):', uob)
>>> print('Cob (1/psi):', cob,'\n')
>>> print('Stock Tank Oil Density:', st_deno, 'lb/cuft')
>>> print('Stock Tank Gas Density:', st_deng, 'lb/cuft')
>>> print('Reservoir Water Density:', res_denw, 'lb/cuft')
>>> print('Reservoir Water Compressibility:', res_cw, '1/psi')
>>> print('Reservoir Water Viscosity:', visw,'cP')
>>>
>>> fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, figsize=(10,10))
>>> ax1.plot(df['Pressure (psia)'], df['Rs (mscf/stb)'])
>>> ax2.plot(df['Pressure (psia)'], df['Bo (rb/stb)'])
>>> ax3.plot(df['Pressure (psia)'], df['uo (cP)'])
>>> ax4.semilogy(df['Pressure (psia)'], df['Co (1/psi)'])
>>>
>>> ax1.plot([pb], [rsb], 'o', c='r')
>>> ax2.plot([pb], [bob], 'o', c='r')
>>> ax3.plot([pb], [uob], 'o', c='r')
>>> ax4.plot([pb], [cob], 'o', c='r')
>>>
>>> if usat_flag:
>>>     if no_pb == False:
>>>         for i in range(len(usat_bo)):
>>>             ax2.plot(usat_p[i], usat_bo[i], c='k')
>>>             ax3.plot(usat_p[i], usat_uo[i], c='k')
>>>
>>> fig.suptitle('Black Oil Properties')
>>> ..
>>> ..
>>> plt.show()
Pb (psia): 4500
Bob (rb/stb): 1.6072798403441817
Rsb (mscf/stb): 1.2863705330979234
Rsb Scaling Required: 0.9713981737449556
Visob (cP): 0.3422139569449832
Cob (1/psi): 5.711273668114706e-05

Stock Tank Oil Density: 52.05522123893805 lb/cuft
Stock Tank Gas Density: 0.052025361717109773 lb/cuft
Reservoir Water Density: 61.40223160167964 lb/cuft
Reservoir Water Compressibility: 2.930237693350768e-06 1/psi
Reservoir Water Viscosity: 0.3640686136171888 cP
Live Oil Properties

Development

pyrestoolbox is maintained by Mark W. Burgoyne (github.com/mwburgoyne).

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

pyrestoolbox-3.6.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

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

pyrestoolbox-3.6.0-py3-none-any.whl (949.3 kB view details)

Uploaded Python 3

pyrestoolbox-3.6.0-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pyrestoolbox-3.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyrestoolbox-3.6.0-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyrestoolbox-3.6.0-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

pyrestoolbox-3.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyrestoolbox-3.6.0-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyrestoolbox-3.6.0-cp311-cp311-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86-64

pyrestoolbox-3.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyrestoolbox-3.6.0-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyrestoolbox-3.6.0-cp310-cp310-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pyrestoolbox-3.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyrestoolbox-3.6.0-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyrestoolbox-3.6.0-cp39-cp39-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.9Windows x86-64

pyrestoolbox-3.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyrestoolbox-3.6.0-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyrestoolbox-3.6.0-cp38-cp38-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.8Windows x86-64

pyrestoolbox-3.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pyrestoolbox-3.6.0-cp38-cp38-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file pyrestoolbox-3.6.0.tar.gz.

File metadata

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

File hashes

Hashes for pyrestoolbox-3.6.0.tar.gz
Algorithm Hash digest
SHA256 6210de6552b120e84bfeafee223a1123da28c176a991d379bd00e9cc9a7e12f9
MD5 46434a58e32dc1f16314b50290a7b8c7
BLAKE2b-256 8cf286a84e24e9d7ceefa8b54e41ca86e459905193ad94a16b05df5d4be4898b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0.tar.gz:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-py3-none-any.whl.

File metadata

  • Download URL: pyrestoolbox-3.6.0-py3-none-any.whl
  • Upload date:
  • Size: 949.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyrestoolbox-3.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0127f1e2271061ae51e7f8572b4dd051e15f4369ca11702bafc6ac9d33b5f422
MD5 f7398302823def1f2fc5af3adeaa9ca6
BLAKE2b-256 749ffc918c20d311bb7380b67a930344fbf6e175f38b28436297b9f10641d797

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-py3-none-any.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 21f6a4dbf00b251fe7e10f4c95ad60eb7d20b339f99c59052d90dd5cfc67e583
MD5 a4b11a409bb69891f8f61f17dfe4657d
BLAKE2b-256 c9765f01dabcf751a19c7ed8b2867da521a2561a5150189af4abad508811118a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp313-cp313-win_amd64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a93128a656d9074a70628ad5afe3968d79a246c4c522f64112f7268fe85c5c30
MD5 91d6effd6c9bd3555ba59e2bb379a5a9
BLAKE2b-256 307510eaf647130795e31b5b1dc77492b74bf7b00b57e25353bf48070189db9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c6d75911f2c5a6584b6f1bb58f0601808479781144a19851368f2ff31b04f32
MD5 fcd992bd19c26226d5711f16a9973f0c
BLAKE2b-256 6c0004b04716b2c2c07e475c654b04f53fd12908b10771f60cc5a6917a29ec32

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2ef7bee589c216189c65995933cd42463977a93b98b32eb273fcc090727764ad
MD5 900b258c41aafba8c7782210a3535439
BLAKE2b-256 44510ebf955ba969aca5fefcdd80b374061912aafc6349080a702dbdf488409e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp312-cp312-win_amd64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1102923aba01d17d1ca1a0c948fa5caf48192eb8cdaa00d0c2ae86b1f299d7f6
MD5 86bba8879dc7f6cc2e92883a5cd56afb
BLAKE2b-256 9eafe00187ebbea2f6850529948dfe9fcf6db9feece9e6502bb42988c0741517

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 365741e907f033161dd318e6fd5045fb427e1191f132dece6b2f18d44fb973d2
MD5 2f9a9e01b432c7638c0bbbdc7e2061d4
BLAKE2b-256 58b5fc2241422a952b0587f9422f408fdb4df1c9d41647a97b04270a827076df

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 049d1401b1061f18b36cbc33bbd38602f3d5ddee638a16d81d0d51d8f88f4fcc
MD5 10b90895768897925671c6b67ec93758
BLAKE2b-256 6784655265fa32dbc822fb4451d6ea0b7d4384e8a6749ecdc2bd93a2b18600cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp311-cp311-win_amd64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c65f25d0d6e7e922f8d84f7d57a174bd037a3703c1c64c31d82fe2220ed448a9
MD5 c6fb9285940ceabd1d3a0ab70dc4a8a6
BLAKE2b-256 62c9a472fa7699ee696576d593ec8a7dbca7f5613e4b6fd82958cfef5ded60b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ea43e23b7795dbf6eccad17f4880165d8fc562e957570311345d7d64accd8d5
MD5 a99918056e47c21eba1ac5b689276efc
BLAKE2b-256 824f40a838db8ab6861d45d1b9bfa7aee053fff160c95e617f61420ccbf82f93

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3d44643008d307b0da191af12148d7ef66c7177391f39d9415e71c03b47a7536
MD5 398aeca80ae39e377c4c83cb83b59b89
BLAKE2b-256 f0352f8a7f5ba46e28762fec24f9c13e87d8b4f191ee63c543a2a338b895abf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp310-cp310-win_amd64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 396a3348f766a7ebf77e313f48ccbc84d47cad8e5f8abc65a446a01448782877
MD5 dda3a530d6587f26bf75d9bc6594e795
BLAKE2b-256 35bbad1b6aebb45bfaca2f0aa0f5e926eee3ed32efbfb1b814285a54f05ae079

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e735aec14d48357b4f0d8e1abc4c90639f641f3b9b1f0ba11a370d73f3811050
MD5 47cbe7fe3739d768db014dafb059c46c
BLAKE2b-256 e074df68faec04f18c566bc8c4bd0b40c51ce32a2706b1e1e03f3125ee121e83

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyrestoolbox-3.6.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.5 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 pyrestoolbox-3.6.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 dfe9f3d32b2128091f789bb7996b129feedf58812e8b2533eb10936745b2098f
MD5 afa9bfa81eef563818fc34c64c21c275
BLAKE2b-256 2c634656399c8de99c8497fbf1be6e42b8a3703125b3f25dc1bb46898cca581a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp39-cp39-win_amd64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0f551d878b8d3c62e22a74550a5db422285c3742e57cd78fb7e3d0d98df8e489
MD5 5f68ffd1284dee059b4d11cadbfade77
BLAKE2b-256 7b3c2de3d22004b752ced970653e6b49a933e14836de2fa0d41b869f9d1f0e45

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd5f11941b2069f5a2a41d8cc8cd4191ce405a9378fe5b59e8a2696c5f9e2158
MD5 5acc7ed216bc16a37a43508229fab34a
BLAKE2b-256 82d043a4f49aebc613869f97ac4aed34f4c2abd8021743516754bc1483626d6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyrestoolbox-3.6.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.5 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 pyrestoolbox-3.6.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 7b485c91e950e5c4f15d14fbea15a10fefc9a4e7ffa64c661e61d715fcebca63
MD5 016cfe4fd7854a342be1749fd1871d3f
BLAKE2b-256 d6064c7ee0af16c61f2906abecd999a9595f5fd55892de0729c374a8befecaf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp38-cp38-win_amd64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d0da291ab88b6bcd832c99668227fb0ed6498608be21a02695bf54bbdb70f016
MD5 b9b51bc716a9e2794821565dd89c81c9
BLAKE2b-256 2303307b22eb98ab690b30880a0c9d38d49ccb2e871500e8be65dbe395a35f6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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

File details

Details for the file pyrestoolbox-3.6.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.6.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1bc0ef6dfba2f85d731cdced7a03d24f19381c53f27b8d185ca18d7231f46aa9
MD5 39181ab879a8624656400bc5efbcc3b4
BLAKE2b-256 590db6b2dd6f96be6934a43cfb07fb483f8e2c8621baa02604d7c78cafaec40d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.6.0-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: build-wheels.yml on mwburgoyne/pyResToolbox

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