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.1.4.tar.gz (972.2 kB view details)

Uploaded Source

Built Distributions

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

pyrestoolbox-3.1.4-py3-none-any.whl (916.0 kB view details)

Uploaded Python 3

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

Uploaded CPython 3.13Windows x86-64

pyrestoolbox-3.1.4-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.1.4-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pyrestoolbox-3.1.4-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.1.4-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pyrestoolbox-3.1.4-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.1.4-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pyrestoolbox-3.1.4-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.1.4-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

pyrestoolbox-3.1.4-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.1.4-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

pyrestoolbox-3.1.4-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.1.4-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.1.4.tar.gz.

File metadata

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

File hashes

Hashes for pyrestoolbox-3.1.4.tar.gz
Algorithm Hash digest
SHA256 1fcb7a64c73925fc2b620f4953ea8cc822050c17b05a78af6d39aac05605fc73
MD5 2d370fd0217045041a5fd14f2211ee9a
BLAKE2b-256 e1acceaea442114623574aa5a624d54ff97de8e21b71f9b9b3685d4786843a6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4.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.1.4-py3-none-any.whl.

File metadata

  • Download URL: pyrestoolbox-3.1.4-py3-none-any.whl
  • Upload date:
  • Size: 916.0 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.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1e9bf8f8208b574b641de2c24a0a95acca85e0fe559b434d48b07387a47966b6
MD5 78296cf7a8d2e36266bf0fbac773fdb8
BLAKE2b-256 2aecc1df7858dc1faa0b627b6bb90a1998de4f05a61166e312a90488373fa17a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2c99484de756bc7fe429b088218e38a539abcc152c18e82959ed12e3ba90317e
MD5 c3182edf996db31ec2b11b7859cd9ce0
BLAKE2b-256 177d74b42849f1f869dae0e6ffa7b5b123eef3bcae775ee331600c8b807eb2ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dcb5a5a0c44717928617b1f4bffdb998e6bae8fa820cef2695dedd4cec589657
MD5 979bc7cb2f394653edd527cce9b71251
BLAKE2b-256 2c0eb526cd8f81b07a936dd21f6c4361952065767374f877fb3e821a1f3387ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2fdaba70b50cf2b0ab3771d48ec2e987fbbcaa6772e0ce6336635cc6f93655ea
MD5 e5687f787aae6dfc36868bedd84725ea
BLAKE2b-256 60dd8dfdccd70a54766f22c3d447a93529dd76ee17a7aa4cf591443fa322d487

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7f06b0175e878166367618b364c12901539b26bce69bb0c242ff0d9b8888531a
MD5 93cd36b48c04a90f02069a8e277e49e7
BLAKE2b-256 acc76cde2e30fcbb488a96f654782a556958b91033f40da6ef5edbe064830ac4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b7f3072c84804c8a6859eaa1a25bcaed2a8ed08ed96b9dbca839e2e50e8f975
MD5 f0a38c4a4c3bc1ebe53fb9e0962e3f67
BLAKE2b-256 0e5d6ebbfb9409c319a9ea8aa7885f57a0f7a61ee756407d08a5cb25cd5ebc1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 982c15b1adcaca3d210785f5770521b484337cefb32e75a862883af7fd4d3f90
MD5 ba6aa112414dff9f9073889d03d6fefe
BLAKE2b-256 98120fef039cb91ecd993beb04504b0d3c6fc05c692b265905562e5faebd994f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b45f1c6a91780cc05a3ff279f97993f66087bd4d580c872118695daa7d46943d
MD5 2221b13cee02839d45917e71ed027156
BLAKE2b-256 015955f0ea037ea2c9c50ce4ee004a5c5e306b3278db010880b32977955fa827

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02a549e650495e57bbb7fc0c0500c852ca0e66a476c5a89b93b75644a51abc0b
MD5 0817cefa043d349340eb20b62ada30ee
BLAKE2b-256 a4c3ca778b6c66b80d7758463e5d2ad090b990543fb75bba8c84fd3be8dea369

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cef741767c9795c03a0f6f12cf8517a8a8023279de656daf9c24f6ab5a7e5b8f
MD5 e1cdc33290c170041d143e3b8098b816
BLAKE2b-256 726d73625abe98d03584e17e3ece6fc21d3c7e0ab2ddb4e338814d9c2f1fb5b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5932c996ab83615524dc4f50fdbb3dad96f8a388283ef92142b86d2494ebfd47
MD5 5ef4cff2bedca37d5c977bd8504b03e4
BLAKE2b-256 ea912cd6a390c93ccf7a1ce213e98d36f00472fe1512d864c411a49caa2d05b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c53fade3e44a2a475eefe63f4421551424c4aceaa1e6cf74dee26230c48c35af
MD5 d5fb774407db661325ead35e82ed6f3b
BLAKE2b-256 054e05490a5b6c6a41ed78bd8731d769909ee61270f573aec8caebb5b179ec10

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c3010e00599e6bd28341f0e7fede1684b9149d21e192bec6622e839bab4feb8
MD5 0e12ebfceead7078df38b98e2a79ea8f
BLAKE2b-256 b388fcf2c2bb51a4e229559a612c1f05c90d57bc71a7c7ad524bb7578a813677

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyrestoolbox-3.1.4-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.1.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 949dfd481f1e69ad8ae4bf28ae0df4654ceee01994411e280e9cced0c84f33a2
MD5 b38eae0d69efc5999d8a0d6b3566faa5
BLAKE2b-256 76e3da6c4c1e30febf1d3f89e8031f2bb629396904a9255443d5522d842148e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 715f53e071e927425cdea60bf63b24e52ebf07d87a40599cbcf49a9011c6d7c7
MD5 43bf8487a701f97694ae6f26567dc31e
BLAKE2b-256 9572e287915630b89c44f18899397e1b2457fa2befc2bccba137517d369175a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a307eabfcbc97c8cfdac9b445a51aa7783366fae510c90457bffa044d449825
MD5 b0529377cd4dfa92a4a1549691b3b867
BLAKE2b-256 cff36278c51d2e8ccca7228a6b3afdaa98a1ecce2bf7fdfcfa81ff86be9dbe65

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyrestoolbox-3.1.4-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.1.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 64ef5c2e7e3514fe07eb9ed101a69bbf794acf9bc95bcac495838944065d6f70
MD5 9b4eb57ad1ba7dc2bf8b4f2e36287b9e
BLAKE2b-256 0a725a34d520571af9461444d93f1abb87d2ad33a343c120fdcf4036b4720025

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c080ebb5094e3f972d8638e844d3794dd73ab98f5d8265b9f99a88e633f64306
MD5 7487770ba81644b81ece83c59b0c899b
BLAKE2b-256 190d2b18528555b70beaa7443eb0b9094f2bf75221909c374a3ce493b3bf4d47

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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.1.4-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrestoolbox-3.1.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b63a636ff69642d006538496de3f9857d9a427d59b6f8fd105fabffc918d38c
MD5 94c19bae19fbdfdab35eae9414f9a7f3
BLAKE2b-256 9c184f07f0e5924b41b76863cef2718c81e2b17892e68ea2ece4b55aacde4dfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrestoolbox-3.1.4-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