Skip to main content
pyheclib

pyheclib

Python: Version Action: Test License: MIT Docs

Documentation: nzahasan.github.io/pyheclib

Read and write HEC-DSS files from Python.

HEC-DSS is the database format used by HEC-HMS, HEC-RAS and other tools from the US Army Corps of Engineers' Hydrologic Engineering Center. pyheclib works with DSS version 7 files. It bundles the official HEC-DSS C library for Linux (x86_64), macOS (Apple Silicon, macOS 14+) and Windows (x64).

DSS version 6 files are not supported. Convert them to version 7 with HEC-DSSVue first.

Install

pip install pyheclib

Requires Python 3.8 or newer. Depends on numpy and pandas.

Quick start

Every record is a Python object that holds its pathname, data and metadata. Create a record, write it to a file, and read gives you the same kind of object back.

Record Use it for Data Convert
RegularTs fixed-interval time series values (numpy), start time to_series() / RegularTs.from_series() (pandas)
IrregularTs time series with any timing times, values (numpy) to_series() / IrregularTs.from_series() (pandas)
PairedData curves, e.g. rating tables x (numpy 1d), y (numpy 2d [curves, points]) to_dataframe() / PairedData.from_dataframe()
GriddedData rasters, e.g. radar or DEM data (numpy 2d float32, north-up, NaN = no data) it's already a numpy array

Open a file

import numpy as np
import pandas as pd
import pyheclib as phl

dss_file = phl.open("example.dss")     # opens the file, or creates it

You can also use it as a context manager: with phl.open("example.dss") as dss_file: ...

Regular time series

The interval comes from the E part of the pathname, e.g. 1HOUR, 15MINUTE, 1DAY, 1MONTH. Missing values are NaN.

# from a list of values and the time of the first value
precip = phl.RegularTs("/DEMO/GAGE/PRECIP//1DAY/OBS/", values=[0.0, 12.5, 48.0, 3.1, 0.0],
                       start="2020-01-14", unit="MM", type="PER-CUM")
dss_file.write(precip)

# from a pandas Series
hours = pd.date_range("2020-01-14 01:00", periods=96, freq="h")
flow = pd.Series(40 + 50*np.exp(-((np.arange(96) - 40) / 12.0)**2), index=hours)
flow.iloc[70:76] = np.nan
dss_file.write(phl.RegularTs.from_series("/DEMO/OUTLET/FLOW//1HOUR/OBS/", flow, unit="CFS", type="INST-VAL"))

# read the whole series (leave the D part empty)
rts = dss_file.read("/DEMO/OUTLET/FLOW//1HOUR/OBS/")          # -> RegularTs
print(rts.unit, rts.type, rts.interval, rts.start)            # CFS INST-VAL 1HOUR 2020-01-14 01:00:00
series = rts.to_series()                                      # pandas Series indexed by time

# or just a time window
window = dss_file.read("/DEMO/OUTLET/FLOW//1HOUR/OBS/", start="2020-01-15 12:00", end="2020-01-15 18:00")

Regular time series

Irregular time series

Use an E part that starts with IR- (or ~), e.g. IR-MONTH. Times are stored to the second. Writing replaces any stored values inside the time span of the new record.

stage = phl.IrregularTs("/DEMO/OUTLET/STAGE//IR-MONTH/OBS/",
                        times=pd.to_datetime(["2020-01-14 08:13:00", "2020-01-15 07:30:15", "2020-01-16 16:45:00"]),
                        values=[3.1, 4.6, 3.4], unit="FT", type="INST-VAL")
dss_file.write(stage)

its = dss_file.read("/DEMO/OUTLET/STAGE//IR-MONTH/OBS/")      # -> IrregularTs
its.times, its.values, its.to_series()

Irregular time series

Paired data

All curves share one x array. y has one row per curve. labels (optional) names the curves.

h = np.linspace(0, 12, 49)
rating = phl.PairedData("/DEMO/OUTLET/STAGE-FLOW///RATING/", x=h,
                        y=np.vstack([5.2*h**1.80, 5.6*h**1.75, 6.1*h**1.70]),
                        x_unit="FT", y_unit="CFS", labels=["2018", "2019", "2020"])
dss_file.write(rating)

pd_rec = dss_file.read("/DEMO/OUTLET/STAGE-FLOW///RATING/")   # -> PairedData
pd_rec.n_curves, pd_rec.labels
df = pd_rec.to_dataframe()                                    # index: x, one column per curve

Paired data

Gridded data

data is a 2d numpy array, stored as float32:

  • the first row is the northern-most row (north-up)
  • NaN means no data
  • xll, yll is the lower-left corner of the grid, in the grid's coordinate system
  • the D and E parts are the start and end time; leave both empty for grids that don't change over time (e.g. a DEM)
yy, xx = np.mgrid[0:90, 0:140]
field = (38*np.exp(-(((xx - 85)/22.0)**2 + ((yy - 40)/14.0)**2))).astype(np.float32)
field[((xx - 70)/68.0)**2 + ((yy - 45)/44.0)**2 > 1] = np.nan       # outside the basin

grid = phl.GriddedData("/SHG/DEMO/PRECIP/15JAN2020:0000/15JAN2020:0600/RADAR/", field,
                       cell_size=2000.0, xll=-180000.0, yll=1320000.0, unit="MM", type="PER-CUM",
                       grid_type="ALBERS", srs_name="SHG", time_zone="UTC")
dss_file.write(grid)

g = dss_file.read("/SHG/DEMO/PRECIP/15JAN2020:0000/15JAN2020:0600/RADAR/")   # -> GriddedData
g.data.shape, g.cell_size, g.extent, g.lower_left_cell, g.start_time

Gridded data

Pathnames and the catalog

A DSS pathname has six parts: /A/B/C/D/E/F/. DssPath lets you work with the parts. Anywhere a pathname is expected, you can pass a DssPath or a plain string.

path = phl.DssPath("/DEMO/OUTLET/FLOW/01JAN2020/1HOUR/OBS/")
path.C                        # 'FLOW'
path.replace(F="SIM")         # DssPath('/DEMO/OUTLET/FLOW/01JAN2020/1HOUR/SIM/')
path.without_date()           # DssPath('/DEMO/OUTLET/FLOW//1HOUR/OBS/')
phl.DssPath.from_parts(A="DEMO", C="STAGE-FLOW", F="RATING")

dss_file.catalog()                      # every record (a long time series is split into blocks)
dss_file.catalog(condensed=True)        # one path per time series, D part = date range,
                                        # e.g. 01JAN2020-01MAR2020
dss_file.catalog("/DEMO/*/FLOW/*/*/*/", condensed=True, with_types=True)
dss_file.read(dss_file.catalog(condensed=True)[0])   # a condensed path reads the whole series

Find and delete

Use * at the start or end of any pathname part as a wildcard. delete returns the paths it removed.

dss_file.find("/DEMO/*/*/*/*/OBS/")                    # every OBS record in DEMO
dss_file.find("/*/*/STAGE*/*/*/*/")                    # STAGE and STAGE-FLOW records

dss_file.delete("/DEMO/OUTLET/STAGE-FLOW///RATING/")   # one record
dss_file.delete("/DEMO/OUTLET/FLOW//1HOUR/OBS/")       # a whole time series (all blocks)
dss_file.delete("/SHG/*/*/*/*/*/")                     # everything with A part SHG
dss_file.close()

Limitations

  • Quality flags are read when present, but not written.
  • Gridded data is always stored as float32.
  • Only DSS version 7 files.

Quick reference

A compact summary of the API, useful for scripts and AI coding agents.

import pyheclib as phl

phl.open(filename) -> DssFile                 # creates the file if missing; context manager
DssFile.write(record)                         # replaces existing data at that path
DssFile.read(path, start=None, end=None)      # -> RegularTs | IrregularTs | PairedData | GriddedData
DssFile.catalog(path_filter="", condensed=False, with_types=False) -> list[DssPath]
DssFile.find(path) -> list[DssPath]           # '*' wildcard at start/end of a part
DssFile.delete(path) -> list[DssPath]         # raises KeyError if nothing matches
DssFile.record_type(path) -> int              # 105 regular ts, 115 irregular ts, 205 paired, 4xx grid
DssFile.close()

RegularTs(path, values, start, unit="", type="INST-VAL", time_zone="")
    .interval  .times  .to_series()  RegularTs.from_series(path, series, unit, type)
IrregularTs(path, times, values, unit="", type="INST-VAL", time_zone="")
    .to_series()  IrregularTs.from_series(path, series, unit, type)
PairedData(path, x, y, x_unit="", y_unit="", labels=[])
    .n_curves  .to_dataframe()  PairedData.from_dataframe(path, df, x_unit, y_unit)
GriddedData(path, data, cell_size, xll, yll, unit="", type="INST-VAL",
            grid_type="SPECIFIED", srs_wkt="", srs_name="", origin=(0, 0), time_zone="")
    .shape  .extent  .lower_left_cell  .start_time  .end_time

DssPath(path) | DssPath.from_parts(A=, B=, C=, D=, E=, F=)
    .A .. .F  .parts()  .replace(**parts)  .without_date()

Rules worth knowing:

  • type is one of INST-VAL, INST-CUM, PER-AVER, PER-CUM, FREQ.
  • grid_type is one of UNDEFINED, HRAP, ALBERS, SPECIFIED.
  • Regular time series: the E part sets the interval. Irregular: E part starts with IR- or ~.
  • Leave the D part empty to read a whole time series; use start / end for a window.
  • Missing values are NaN for all record types.
  • HEC-DSS log output is set by the DSS_MESSAGE_LEVEL environment variable (0 = none to 15 = debug); default and fallback is 1 (critical only).
  • Gridded xll, yll must line up with origin in whole multiples of cell_size.

Tools

Command-line tools in tools/:

python3 tools/dss_browser.py file.dss [--port 8765] [--no-browser]   # browse a file in your web browser
python3 tools/dss_catalog.py file.dss [filter] [--condensed]         # list records
python3 tools/dssrec2csv.py file.dss pathname out.csv                # export one record to csv

The browser opens one or more files in tabs (or drag files onto the page). Search records by text or by part (B=GAGE C=FLOW*), view metadata, statistics, a graph or table of the data, and download a record as csv. Each record has its own link (/?file=1&path=/A/B/C/D/E/F/).

dss browser, light mode

dss browser, dark mode

Examples and notebooks

Development

git clone https://github.com/nzahasan/pyheclib && cd pyheclib
pip install -r requirements.txt
python3 setup.py build_ext --inplace    # rebuild after editing src/*.pyx or src/*.pxd
pytest                                  # also runs the code in this README

Code layout:

  • pyheclib/records.py: record classes
  • pyheclib/dsspath.py: DssPath
  • pyheclib/dssfile.py: open and DssFile
  • src/_core.pyx: thin Cython wrapper around the HEC-DSS C API

Resources

Metadata

Release files for pyheclib 0.4.1

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

Source distribution (sdist)

Source distribution for pyheclib 0.4.1
File Size Uploaded Provenance Actions
pyheclib-0.4.1.tar.gz 1.6 MB With provenance Details for pyheclib-0.4.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pyheclib 0.4.1
File Actions
pyheclib-0.4.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for pyheclib-0.4.1-cp314-cp314-win_amd64.whl
pyheclib-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pyheclib-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyheclib-0.4.1-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details for pyheclib-0.4.1-cp314-cp314-macosx_14_0_arm64.whl
pyheclib-0.4.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for pyheclib-0.4.1-cp313-cp313-win_amd64.whl
pyheclib-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyheclib-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyheclib-0.4.1-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details for pyheclib-0.4.1-cp313-cp313-macosx_14_0_arm64.whl
pyheclib-0.4.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for pyheclib-0.4.1-cp312-cp312-win_amd64.whl
pyheclib-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pyheclib-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyheclib-0.4.1-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details for pyheclib-0.4.1-cp312-cp312-macosx_14_0_arm64.whl
pyheclib-0.4.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for pyheclib-0.4.1-cp311-cp311-win_amd64.whl
pyheclib-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyheclib-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyheclib-0.4.1-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details for pyheclib-0.4.1-cp311-cp311-macosx_14_0_arm64.whl
pyheclib-0.4.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for pyheclib-0.4.1-cp310-cp310-win_amd64.whl
pyheclib-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyheclib-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyheclib-0.4.1-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details for pyheclib-0.4.1-cp310-cp310-macosx_14_0_arm64.whl
pyheclib-0.4.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for pyheclib-0.4.1-cp39-cp39-win_amd64.whl
pyheclib-0.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for pyheclib-0.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyheclib-0.4.1-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details for pyheclib-0.4.1-cp39-cp39-macosx_14_0_arm64.whl
pyheclib-0.4.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for pyheclib-0.4.1-cp38-cp38-win_amd64.whl
pyheclib-0.4.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for pyheclib-0.4.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
pyheclib-0.4.1-cp38-cp38-macosx_14_0_arm64.whl CPython 3.8 CPython 3.8 macOS 14.0+ ARM64 Details for pyheclib-0.4.1-cp38-cp38-macosx_14_0_arm64.whl

Total release size: 16.2 MB

Release files / pyheclib-0.4.1.tar.gz

Download URL pyheclib-0.4.1.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
6df50b3465e8b4053b4949f993daa83f9260748b45c5ed5bf0b840f5fab850c4
BLAKE2b-256 checksum
How to use checksums
b5c4409892add76404eff874fd1fe3f8c856a88747ffa8eb23adb571a8a7bbf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp314-cp314-win_amd64.whl

Download URL pyheclib-0.4.1-cp314-cp314-win_amd64.whl
Size 304.8 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
cedd09624cfb441962d52dfd59fc4a45bc6ee10e41c5ade1e35e2f7e6d5e4c86
BLAKE2b-256 checksum
How to use checksums
251cc31ae0b2b4a9cce98a4fcd76e2bc6bb47d2a13d84ba6807bbd67fe2f6512
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyheclib-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0e5a998960edfe0f7370361513d51e36b68a4bf7e5d29fb9bcb3c059c834daa6
BLAKE2b-256 checksum
How to use checksums
11e61f78526dff570b9abd6db782cbcc16efc7bcc7c6ceed969635d273c814d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp314-cp314-macosx_14_0_arm64.whl

Download URL pyheclib-0.4.1-cp314-cp314-macosx_14_0_arm64.whl
Size 490.6 kB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
48b08d81cbc63050968cd4fdc81c2a65953b1d6de3608d586efb5a0161bc2352
BLAKE2b-256 checksum
How to use checksums
60611cce48637253c72f7bba0b8cfb2d4cedd5840a576ad78921f9776724be38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp313-cp313-win_amd64.whl

Download URL pyheclib-0.4.1-cp313-cp313-win_amd64.whl
Size 295.1 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
b23dac4e7545563fcee768cefe089caa7d7cc4267b8bd069418747aa7327e7b5
BLAKE2b-256 checksum
How to use checksums
9b30237ad15484f4179de2e604140828be02a6737ac234d91dce1b7279c897da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyheclib-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
78f68a8b7ae89b1e0bb24a7213ad9bb771dd17ccca7165eb1a7ee5a2e3c8d7e4
BLAKE2b-256 checksum
How to use checksums
0f9fc27547e010325001b3ed84f4ced774ea761465212937d918ac2217d7a955
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp313-cp313-macosx_14_0_arm64.whl

Download URL pyheclib-0.4.1-cp313-cp313-macosx_14_0_arm64.whl
Size 490.0 kB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
b8856807c3d549ebbdd61f48ed1e2ba3af7d5066040488d5c596df622acad9e0
BLAKE2b-256 checksum
How to use checksums
d56ef7a78f4a871ff9657d4c67889bb5604f0d0b029f126c9e26f6af42a568fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp312-cp312-win_amd64.whl

Download URL pyheclib-0.4.1-cp312-cp312-win_amd64.whl
Size 295.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
88d1a5e8d3afa345775542387e166aa1a4b86c4e221ef59f418df9aee9372f99
BLAKE2b-256 checksum
How to use checksums
297eac836ca564e08c907f5fd2f2556589a4c5a79451a78131a938fcb65b532c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyheclib-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
83f5673913b87cc6f6ed24f050dda9d42b61429f9b907286b85f0c55bf5c1419
BLAKE2b-256 checksum
How to use checksums
3eb783e624a5a3383644bf759b18adfab7d39f7e25015e94ec95a06f3ce54884
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp312-cp312-macosx_14_0_arm64.whl

Download URL pyheclib-0.4.1-cp312-cp312-macosx_14_0_arm64.whl
Size 489.2 kB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
82ea82a871b5abf96d26d51a223727fa8b35fb95af285a841d55b5883eb40b3d
BLAKE2b-256 checksum
How to use checksums
963cc787c25d18fcefcfda5952138118503fe34c3f51f0ea66135970d4a7d9ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp311-cp311-win_amd64.whl

Download URL pyheclib-0.4.1-cp311-cp311-win_amd64.whl
Size 298.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
094c5ce7534c40d81f735c8f9816cb486d01c10abbf4d20a52bedff49b0fc99a
BLAKE2b-256 checksum
How to use checksums
57e62f78bab6bd0c30f2dcb18bdcbdfb557210a0621ace4e900f43f2e1bcc8d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyheclib-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7a6e451610c40f047a8c896610d484aecabeb73e7874b4e080e07b6ff90369cf
BLAKE2b-256 checksum
How to use checksums
921ce4f106e65bf8f03711321a58bc9754cb02c9d3d2aa4dc146fd8e4a1f0582
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp311-cp311-macosx_14_0_arm64.whl

Download URL pyheclib-0.4.1-cp311-cp311-macosx_14_0_arm64.whl
Size 489.4 kB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
68bd41c3fdd3c2d77528c67502a9a16e62db4123583c2995aae451714a55ff7e
BLAKE2b-256 checksum
How to use checksums
ac37e2d5592bcacdc95698893155c6be4e247becf65ea7f255a143b84005023a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp310-cp310-win_amd64.whl

Download URL pyheclib-0.4.1-cp310-cp310-win_amd64.whl
Size 298.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e540f915e6253e694b333367d05af0f058fb384e54fc66c845d91eac0b4d076f
BLAKE2b-256 checksum
How to use checksums
fe4112ebfebe37612f08ad896451afb827427451eebb21b7b67e865293138bc7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyheclib-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d5cf16283e7344fd4e08837688ebeaa30b860bb8f08b90ab74e177bc471348d0
BLAKE2b-256 checksum
How to use checksums
7d5557b023db8823edf5ae7de6a12b9e83671e2d98bfa87f3e4583f78b28ef1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp310-cp310-macosx_14_0_arm64.whl

Download URL pyheclib-0.4.1-cp310-cp310-macosx_14_0_arm64.whl
Size 490.6 kB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
adf64d6be666bcbba1a1425f23c5dba59653f21fab4c4d97ec93c89d1a6f91e1
BLAKE2b-256 checksum
How to use checksums
6827695f2d363f3007e49e084a65e54621dbfd42ff03e6d86f2c310349b4ea45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp39-cp39-win_amd64.whl

Download URL pyheclib-0.4.1-cp39-cp39-win_amd64.whl
Size 298.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
6b230f0379384d46a3e1df74b04b89dfdf6897c739b049e2b9ba175e2f2e79ea
BLAKE2b-256 checksum
How to use checksums
d6397570ad4c3705528682603a95dc880a43320c8cbe40eb43e7e1d53ccaf41e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyheclib-0.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
99ec8e603557ced061f10a11b2f0090b11e447fdd4a3e4193887f957abfb36df
BLAKE2b-256 checksum
How to use checksums
21732c03eb80883958e4c297ea37b715ec16af142db577e037e3dbaaea8976d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp39-cp39-macosx_14_0_arm64.whl

Download URL pyheclib-0.4.1-cp39-cp39-macosx_14_0_arm64.whl
Size 491.2 kB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
8b6e6729b90402618044b3b504df59828388c6505c807a1da20fa2fb92068585
BLAKE2b-256 checksum
How to use checksums
9f0b8e37dc764a0cb94ab1e3e8b53ba3c387b8e46e793aa7bc0406d66f032420
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp38-cp38-win_amd64.whl

Download URL pyheclib-0.4.1-cp38-cp38-win_amd64.whl
Size 297.5 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
527ded9acd3f4c155dfbdb2190b0f561baf23128ab2f9ba85c79a56276c0d8fc
BLAKE2b-256 checksum
How to use checksums
1934bc29c155ff4e238c7859b0c54969abe38f64ebdd907edeca8d5661688c4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyheclib-0.4.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2bf033f09e2d2736480b5a1d2dba810962eae31bd87e82c2fdc5a777b04e522a
BLAKE2b-256 checksum
How to use checksums
bd4193578ac0cf72e5fc3ea01d7a8f3a7a1ddbd4eb7acf5ce5413e15a18c56ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Release files / pyheclib-0.4.1-cp38-cp38-macosx_14_0_arm64.whl

Download URL pyheclib-0.4.1-cp38-cp38-macosx_14_0_arm64.whl
Size 488.5 kB
Tags CPython 3.8 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
3155d50bb43990930f23449e874a5e089b75cf039c19654250e12d141bde7f26
BLAKE2b-256 checksum
How to use checksums
c3fa144289029019adc81ab8297904a1680e455ba568af74c33ba6d4f4d7d94d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Security for pyheclib 0.4.1

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 22 files in this release have been uploaded with provenance metadata.

Select from 22 files

Attestation for pyheclib-0.4.1.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 29, 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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