Skip to main content

pyrestoolbox

A collection of Reservoir Engineering Utilities

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.

Modules: gas, oil, brine, nodal (VLP/IPR, VFP tables), simtools (black-oil, PVTW, rel-perm, aquifer and deck tools), dca (decline curves), matbal (material balance), layer, library, recommend and sensitivity. Every module accepts Eclipse METRIC units with metric=True; the full documentation ships inside the package, and pyrestoolbox.docs_dir() returns its location for offline reading.

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, H2 and He

  • Gas caloric properties (enthalpy, Cp, Cv, Joule-Thomson coefficient) from the BNS tuned Peng Robinson EOS

  • 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)

  • Multi-salt gas-free brine viscosity: IAPWS-2008 water, an ion-additive salt ratio over any combination of Na, K, Mg, Ca, Sr, Ba, Cl, Br, sulfate and carbonate, and a measured pressure factor

  • 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, Gas Caloric Properties (H, Cp, Cv, Joule-Thomson), Non-Darcy and Partial-Penetration Pseudoskins

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), multi-salt gas-free brine viscosity

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')
5199.2406069808885

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
(999.9999999999953, 0.049999999999999885)
>>> dca.eur(qi=result.qi, di=result.di, b=0, q_min=10)
19799.999999999953

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.60264634235122
>>> r.r_squared
0.9734793606102145

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()
Stock Tank Oil Density: 52.06448672566371 lb/cuft
Stock Tank Gas Density: 0.05204687045843109 lb/cuft
Reservoir Water Density: 61.37100825498743 lb/cuft
Reservoir Water Compressibility: 2.930237693350768e-06 1/psi
Reservoir Water Viscosity: 0.36386395924173587 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.5372158966466267
Rsb (mscf/stb): 1.137900924344287
Rsb Scaling Required: 1.0362710951888936
Visob (cP): 0.36663121233374113
Cob (1/psi): 2.0042955593519084e-05

Stock Tank Oil Density: 52.06448672566371 lb/cuft
Stock Tank Gas Density: 0.05204687045843109 lb/cuft
Reservoir Water Density: 61.37100825498743 lb/cuft
Reservoir Water Compressibility: 2.930237693350768e-06 1/psi
Reservoir Water Viscosity: 0.36386395924173587 cP
Live Oil Properties

Development

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

Metadata

Release files for pyrestoolbox 3.8.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyrestoolbox 3.8.3
File Size Uploaded Provenance
pyrestoolbox-3.8.3.tar.gz 1.1 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for pyrestoolbox 3.8.3
File
pyrestoolbox-3.8.3-py3-none-any.whl Python 3 none any Details
pyrestoolbox-3.8.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pyrestoolbox-3.8.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
pyrestoolbox-3.8.3-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pyrestoolbox-3.8.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pyrestoolbox-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
pyrestoolbox-3.8.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pyrestoolbox-3.8.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pyrestoolbox-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
pyrestoolbox-3.8.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pyrestoolbox-3.8.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pyrestoolbox-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
pyrestoolbox-3.8.3-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
pyrestoolbox-3.8.3-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pyrestoolbox-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
pyrestoolbox-3.8.3-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 25.4 MB

Release files / pyrestoolbox-3.8.3.tar.gz

Download URL pyrestoolbox-3.8.3.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
52337bd62e48e7d8dcb9eccda2626de7c9b4e8eadcdf09f9b8d1a13070e8f449
BLAKE2b-256 checksum
How to use checksums
b91eef5b46093ef2e62156df37d7bfd7e1c0c1f7514ff8ee482dc082594411d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-py3-none-any.whl

Download URL pyrestoolbox-3.8.3-py3-none-any.whl
Size 1.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d146e3da383d87eb890bd3b6c0bafd68c23205d62df01c5e5c31b61b11bd126a
BLAKE2b-256 checksum
How to use checksums
1a6be9c0167717824b6d77d68d299d28e37556576f4d1c10c61303cce188b8d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp313-cp313-win_amd64.whl

Download URL pyrestoolbox-3.8.3-cp313-cp313-win_amd64.whl
Size 1.6 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1ce8d502f758eb60cff23a27d83fdedf181dfaf19f17262781806c27f7fb3945
BLAKE2b-256 checksum
How to use checksums
7dfb99288d4ef178bf0d4ec36f80951ada28ccaebc4ea9bec4463047259952a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrestoolbox-3.8.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ae9a69cfc21331439ccc029803c0df75b7522a1b8003cd1869809f809f3061ac
BLAKE2b-256 checksum
How to use checksums
78ad3a241579044ff1004e4073c0c06421c810709f9e48d0604ef905fcd5b7d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL pyrestoolbox-3.8.3-cp313-cp313-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1bf77537d0c8fa91170b99dd78945126c6d0c5492f1ab663564a2c10939939d8
BLAKE2b-256 checksum
How to use checksums
949566e687f17f7f382dc6bc2af2b41a8813f6dde256d66925000bee004efb7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp312-cp312-win_amd64.whl

Download URL pyrestoolbox-3.8.3-cp312-cp312-win_amd64.whl
Size 1.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
76a04402d746544345b054128bd98e16eb386c046def91211dc38d8c55d7d22c
BLAKE2b-256 checksum
How to use checksums
ec72d62c3223a9052344e8ab74ec9394d05297a06d8d8723f3ac86046c255e94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrestoolbox-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3c63eb8b4d5cebb9c13d8a02e72a22b54e07114b97dc268425e922021f98ae38
BLAKE2b-256 checksum
How to use checksums
fcefca5e8dd51d6e6ad4ffede2c7c9c625b26eb770209abb13f2a5919261f34e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL pyrestoolbox-3.8.3-cp312-cp312-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ba7876846406ed174c1ebca6c393292e4ef7497be0531e7f116b05ea8899cf6d
BLAKE2b-256 checksum
How to use checksums
d3bae9e1a41e9c24792e371e519bf77be87a3b094ac72d38be2db72f60270ce0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp311-cp311-win_amd64.whl

Download URL pyrestoolbox-3.8.3-cp311-cp311-win_amd64.whl
Size 1.6 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
db623955d10067eaa9c03e46108e30e7a100459976e084539117ec53225b79aa
BLAKE2b-256 checksum
How to use checksums
8ec5e59bc5b69bf7254c397eabbb08d3145065b5812fceab9e238747c87d7982
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrestoolbox-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0ffa9df8c75e21d765907e6f6bb25f85a3a62a32af8e694b6648331960566a0a
BLAKE2b-256 checksum
How to use checksums
eabb4798725de6b0a96528d1f9370ed6c64dbf966e87a89f0af75c99d0fb9485
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL pyrestoolbox-3.8.3-cp311-cp311-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
830424f9c312e18d14249a0ab1008fa8dcf154e05c0ecaa4bf623af506a76142
BLAKE2b-256 checksum
How to use checksums
d8fe40f901b9555733b2b88a64d5fd87c78aa82f8fe094f25b904200d6b5d171
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp310-cp310-win_amd64.whl

Download URL pyrestoolbox-3.8.3-cp310-cp310-win_amd64.whl
Size 1.6 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
a38ecad75ae6bb20a15f4d6c228a6d0240c05c4c5405a8ee3da8e106fbae3b6e
BLAKE2b-256 checksum
How to use checksums
4eb78d37d4d5d866c3ad6f8bbab1b896a7f53c6a00d9f81f834d09edbe417637
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrestoolbox-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8c67d9bac369cee0ff47a0cba0954bef294b8bbfc185fc599896169838e29e64
BLAKE2b-256 checksum
How to use checksums
562b3d5d9f92cfa8427c2d37c5a803f3dde1854513f9325fc96830ef33c61c9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL pyrestoolbox-3.8.3-cp310-cp310-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
96aa2c9ee7904e8abc22389c5c03ce45d7327c3051286b73c8abce8320de70a8
BLAKE2b-256 checksum
How to use checksums
20d7b39168677ae80e6a1fdc989491eacb76c086a0353ba154bec8398c7462f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp39-cp39-win_amd64.whl

Download URL pyrestoolbox-3.8.3-cp39-cp39-win_amd64.whl
Size 1.6 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
c3ca3a29b4406eb924c9ef2b4b1571b0307ae5246daed24228773a636cd44fe5
BLAKE2b-256 checksum
How to use checksums
b86317bba5c4435e166b208c8cbe2172b5e132e0a395dc9fae86a67861863b25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pyrestoolbox-3.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e96a25100ac88498c6ee8a597fdf50e72a8a9ba913c0e635a2dd444f9c028070
BLAKE2b-256 checksum
How to use checksums
a125c5a3bdecea69f3bf5032a27d3e8ef3b4b267480ea6af1746a5a95532d549
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / pyrestoolbox-3.8.3-cp39-cp39-macosx_11_0_arm64.whl

Download URL pyrestoolbox-3.8.3-cp39-cp39-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
45915f4900c9333916cd6e449a51e2554b2916f81bb4cfef1c8c48ce9a6c0212
BLAKE2b-256 checksum
How to use checksums
f6084fe1435c54d8d8b776e831ab1b029fd30ea80575d1a399bfc5207e90925e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Security for pyrestoolbox 3.8.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 17 files in this release have been uploaded with provenance metadata.

Select from 17 files

Attestation for pyrestoolbox-3.8.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

3.8.3 This release

17 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page