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.3.0.tar.gz (979.7 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.3.0-py3-none-any.whl (921.6 kB view details)

Uploaded Python 3

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

pyrestoolbox-3.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

pyrestoolbox-3.3.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.3.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.3.0.tar.gz.

File metadata

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

File hashes

Hashes for pyrestoolbox-3.3.0.tar.gz
Algorithm Hash digest
SHA256 4afefc8946fd34b94ce586c37d038a304874336486a978af3570198e84b6fc63
MD5 9165de958691ea5db0674adb6de595c4
BLAKE2b-256 a9dcfc1e51c92afcbc30fcae97867efb276e83d3e0e02c641439a0f88940ad98

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyrestoolbox-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 921.6 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 acca36f2527c066c3c6927e934f33e94f0a7ae8c36d11f428c05e7a6136e6f45
MD5 771057e6432b1837f068ce25891cfbb6
BLAKE2b-256 f070cf3c15238f4179bac8283eb4958fd035d44bd3b1b792616b025d760031c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 50312da891765c67346c7f64599ceabb31ddb7de6d5b498a68e6cd6450bca0d6
MD5 23316fef28575a9d2fbe6527da1c8e3a
BLAKE2b-256 81d36a32ebbdb0a28216d91fde185baa186c584588afc9ce4a3994476ee1bcb8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 94e353ecd3ec70c24a09d09f995704fd32f80b694fcb287502c1b3f13bdc8d51
MD5 f867c6818f9d1d65fad12bbfc94c3574
BLAKE2b-256 6082aea693c0bfb068e0b2968798d154b1d2af06be338833a0a9754f8258a9ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06710437327f1021250e364223dab7e146c0cb9120648f401d31229de2e71765
MD5 f2ff2d4880fec98ab98b0ba1fa7c784d
BLAKE2b-256 088bdabf5f3f9713254cfaed459a5b3a6734eb0561254a77b51fa414a586d674

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ae76079525b981ef3e5dc4d3dc84c4eceed01be2cf91670ae1d805b9bedb33b8
MD5 5eba160ecf5f280351141f5ddd6d31a2
BLAKE2b-256 56056d9f630a7bf1df3ee19c9af018fc4795c36242485cb5c5e04ac573899556

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e476505dfe6551628b426bafd14a2eb8c6eb3817768dd3a6cd2608b2c987c3cc
MD5 03df5d3c5f25b3e63300d7ac8d9bd73f
BLAKE2b-256 67dc1dbd173835495c49e33248c38a1e605541bc6436aeb5a685ba77d2f9aa3f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8f56d843ed301f1e7f54a1002f156b7aa6311d6aa33e7d2740678f7390853cb
MD5 920b79fbdb43a8a919fc5f328a267218
BLAKE2b-256 f9eb773da30274600fef8a0db1453d4d5c588b699797b607f159ef7b1de24ca9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f8755724cdfb216fbc08865b6d63277ab9e479c7540f265ec7dfbcc3e16a86e5
MD5 97fd708d1b9b9be43a6ae9bf54142a1a
BLAKE2b-256 643ba66890840598ede08ebce5c90a527406a4d90736f6cea71327e594731c6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 193ae7896436cd571963522dbec7e31ab623d3fc0269f26ce141728f3dd37665
MD5 56730c7507fa5de5b92b02e61a0cd6e7
BLAKE2b-256 918ae31ea6ded3805cf9f898d7c80b00aef6c3ae6da2214c1a04226322beb0a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dedbcf691dd3073a9ed8f59554c7fe3db4241f28a204ca4b147de68cd42a4fab
MD5 a877a07ec2249725ceb559c90a26cb46
BLAKE2b-256 505f38a37f263165ea5493eb69a658093be5fa147565b7dcdcbd0f1e50aa8e33

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c97139fa6cffb5f2304f03cd42f07941b5a726c38c9332a9eb80ffde2d703c82
MD5 095243a6ee70f52bbdcb1dfab58a5338
BLAKE2b-256 efde33787a8e5a445a846ad566af5af31e36b3cc2bc5e10e435a075eea417c49

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17f17cbc321493bbb17be1f1208e9fe0b1bb95310c80d998bb10ff357664e0de
MD5 756e3c74baa8036d20cd7b346638336b
BLAKE2b-256 aaa422e915fe04dd454d17229f3d823aa62cd4a8003be1e6d24eca9b4539e237

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8f5595b0b3c28afd2e81b64e73b61d7191c24c31736ec73ea1282c151ac2db1
MD5 c4b728f7a31040ca9992f31003d912cc
BLAKE2b-256 dc92ec94e55c9c187e17dcaa566b56b849637ab8c9652e21a061f81d97350a9a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyrestoolbox-3.3.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.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 60228bc59671ae45afb3c73cc4fb7330df8cf7308dce20069b50959b4e09bcf0
MD5 dbcb6993a7b75f103d7dba7e56b850bd
BLAKE2b-256 9b627887e9e5c5c31ada39d8f57bd70ebae9c40f247749b20e9e263ef8e82c47

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 38be0be9acd2683e8db31c0e148c06358d639ad557cfd51f102386acd1b96f9d
MD5 984fa109a48bee12b637174b278df4f1
BLAKE2b-256 755bde685d7ed915debb0078525e28cd431b4d708e17b66e84f2e0d09a1a6218

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b918e63f50c670f462560469cb612be576dd3a58eabfa480296a4f03ff83639
MD5 01c808ea12deee8d667932ff43f7965c
BLAKE2b-256 e6c2168a861e1e11053c52afc1bae3ae459985e020e4b5056ec3e7ec86747db4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: pyrestoolbox-3.3.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.3.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2a85ff497e8b9abce13d0350b950a34a90e5480b6f771b37c8661161e351c9dc
MD5 9b0ad69866096a0b1c77af8c3584d5cc
BLAKE2b-256 031f5b2addf889047452d8440232bcff1ef99aa6e6efc514c65c060edea700b1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1ea2fcee5bb35cd241721a01fd8cc9b7a14b360a8e11597a8f89b6f2a7111a1
MD5 eabc74bffaed5f239932281dd0927055
BLAKE2b-256 87bd72332fa3f02b831cea5fb85a9011ba1b2d8dc2bfdd015581c1a8ac011f3b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for pyrestoolbox-3.3.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 10171111de1c2f9edabf2eea0f86c4e4a54c9fccc3bd980ca57de0b309673d8c
MD5 fa8daeb1859f2899be086d8756b97e62
BLAKE2b-256 73e71f9a883feefc00907957c565056d69aa5f3b7027532aefc2497be7f23fc0

See more details on using hashes here.

Provenance

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