Skip to main content

Tests Wheels Documentation PyPI

GWFrames

Manipulate gravitational waveforms — changing frames, and so on.

Documentation is at https://moble.github.io/GWFrames/, including a tutorial that follows the paper described below and a reference for every class and function.

The code in this project extends code written for the paper "Angular velocity of gravitational radiation from precessing binaries and the corotating frame", giving an explicit implementation of the methods discussed in it. The first commit of this project is the last commit of the paper's project.

The license for using this software is basically open (see the LICENSE file in this directory), though citations to the original paper are appreciated, where relevant. Also, if your work depends on features found in this module that have not been described in a separate publication of mine, I would appreciate the opportunity to be a coauthor.

Note that this code is not optimized. In many cases, obvious optimizations were rejected in favor of clearer or simpler code, or code that simply reflected the discussion in the paper more directly. The code is generally more than fast enough for interactive use on individual waveforms, but there is plenty of room for improvement. In particular, rotations may be painfully slow for large data sets.

Installation

GWFrames requires Python 3.11 or newer, on Linux or macOS. Binary wheels for Linux and macOS (x86_64 and arm64) are published on PyPI.

The HDF5 functions (ReadFromH5, OutputToH5, ReadFromNRAR, and OutputToNRAR) and the GWFrames.Extrapolation module need h5py. PyPI has no h5py wheels for Python 3.15, and there may never be any, so on Python 3.15 and newer GWFrames is installed without h5py; everything else works without it. If you need those functions, either use Python 3.14 or older with uv or pip, or get h5py from conda-forge with pixi or mamba, which do build it for Python 3.15.

With uv or pip

uv add GWFrames          # in a uv project
uv pip install GWFrames  # or in any virtual environment
pip install GWFrames     # or with pip

With uv, adding --python 3.14 to uv init or uv venv selects a Python for which h5py is available.

To install the latest code from GitHub, or on any platform without a wheel, GWFrames is compiled from source. That needs a C++ compiler, GSL, and FFTW, which are available from most package managers:

sudo apt-get install libgsl-dev libfftw3-dev   # Debian or Ubuntu
brew install gsl fftw                          # macOS with Homebrew

after which

uv pip install "git+https://github.com/moble/GWFrames"

builds and installs it. (The submodules are fetched automatically.) If GSL or FFTW is installed somewhere unusual, set CMAKE_PREFIX_PATH to its prefix.

With pixi

pixi can take NumPy, SciPy, and h5py from conda-forge and GWFrames itself from PyPI:

pixi init my-project
cd my-project
pixi add python numpy scipy h5py
pixi add --pypi GWFrames
pixi run python -c 'import GWFrames; print(GWFrames.__version__)'

With mamba or conda

Similarly, the dependencies can come from conda-forge and GWFrames from PyPI:

mamba create -n gwframes -c conda-forge python numpy scipy h5py
mamba activate gwframes
python -m pip install GWFrames

To build the latest code from GitHub instead, all of the build requirements are available from conda-forge:

mamba create -n gwframes -c conda-forge python numpy scipy h5py gsl fftw \
    cxx-compiler cmake ninja pkg-config pybind11 scikit-build-core
mamba activate gwframes
python -m pip install --no-deps --no-build-isolation "git+https://github.com/moble/GWFrames"

On Apple Silicon, make sure that the environment is native: mamba info should show platform : osx-arm64. Older instructions for GWFrames recommended Intel environments (with CONDA_SUBDIR=osx-64 or a subdir: osx-64 setting), which run under Rosetta. The first build in such an environment can fail with "Accessing CMake timed out" while Rosetta translates CMake; running the same command again works.

Checking the installation

python -c 'import GWFrames; W = GWFrames.PNWaveform("TaylorT4", 0.0, [0., 0., 0.9], [0.0, 0.0, 0.9], 0.01); print("That worked!")'

Usage

The primary objects are Waveform and PNWaveform, with various methods defined for each; quaternions and functions of arrays of quaternions are in GWFrames.Quaternions. The tutorial works through examples following the outline of the paper, and the API reference documents every class and function. The same documentation is available through Python's help function, as in help(GWFrames.Waveform).

Changes from the SWIG-based versions

Version 2 replaces the SWIG bindings with pybind11, and the old setup.py with CMake and scikit-build-core. The Python interface is almost entirely unchanged, apart from these differences:

  • The separate Quaternions module is now GWFrames.Quaternions, so import Quaternions becomes from GWFrames import Quaternions, and GWFrames.Quaternion is also available.
  • Methods that modify a Waveform in place and return it (such as TransformToCorotatingFrame) return the very same Python object, including for PNWaveform.

Several bugs were fixed along the way, notably that Quaternion objects compared equal exactly when they were not equal, and that Hybridize read past the end of an array and could not handle waveforms in an inertial frame.

Development

Clone the repository with its submodules, then build and test it with uv:

git clone --recursive https://github.com/moble/GWFrames.git
cd GWFrames
uv sync --no-editable
uv run --no-sync pytest

To build the documentation as well, include the docs dependency group, and run Sphinx:

uv sync --no-editable --group docs
uv run --no-sync sphinx-build -W --keep-going -b html docs docs/_build/html

The documentation is built and deployed to GitHub Pages by the Docs workflow whenever main changes. The API reference is generated from the docstrings of the compiled module, which are in cpp/bindings/docstrings.hpp, written in the NumPy style. The tutorial, docs/tutorial.md, is a MyST notebook, executed on every build.

The C++ code is in cpp/, the pybind11 bindings in cpp/bindings/, and the Python package in src/GWFrames/. The submodules Quaternions, SphericalFunctions, SpacetimeAlgebra, and PostNewtonian, along with a vendored copy of spinsfast, are in extern/. The tests include a comparison with results recorded from the last SWIG-based build; see tests/reference/generate_swig_reference.py.

Every push to main that passes the wheel builds and tests is released automatically: the version is bumped, tagged, released on GitHub, and published to PyPI. The bump is a patch release unless a commit message in the push contains #minor or #major; adding #dev makes a development release (such as 2.1.0.dev0), and a later plain push completes it. A head commit message containing [no release] builds and tests without releasing, and [skip ci] skips CI entirely.

Note on licensing: spinsfast, GSL, and FFTW are licensed under the GNU GPL, and the binary wheels link all three statically, so the wheels as a whole are covered by the GPL.

Contributions

The code is primarily written by me (Mike Boyle). Dan Hemberger helped by porting some of my older code from Triton to perform noise-weighted overlap calculations, and with numerous bug reports and helpful suggestions. Serguei Ossokine also helped substantially by cross-checking the post-Newtonian formulas and results. Dante Iozzo helped to keep things working as this code entered its dotage. Claude (Opus 5.5) resuscitated the package for Python 3.

Metadata

Release files for GWFrames 2.0.2

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

Source distribution (sdist)

Source distribution for GWFrames 2.0.2
File Size Uploaded Provenance Actions
gwframes-2.0.2.tar.gz 2.0 MB With provenance Details for gwframes-2.0.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for GWFrames 2.0.2
File Actions
gwframes-2.0.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for gwframes-2.0.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
gwframes-2.0.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for gwframes-2.0.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
gwframes-2.0.2-cp315-cp315-macosx_11_0_x86_64.whl CPython 3.15 CPython 3.15 macOS 11.0+ x86-64 Details for gwframes-2.0.2-cp315-cp315-macosx_11_0_x86_64.whl
gwframes-2.0.2-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for gwframes-2.0.2-cp315-cp315-macosx_11_0_arm64.whl
gwframes-2.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for gwframes-2.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
gwframes-2.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for gwframes-2.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
gwframes-2.0.2-cp314-cp314-macosx_11_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 11.0+ x86-64 Details for gwframes-2.0.2-cp314-cp314-macosx_11_0_x86_64.whl
gwframes-2.0.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for gwframes-2.0.2-cp314-cp314-macosx_11_0_arm64.whl
gwframes-2.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for gwframes-2.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
gwframes-2.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for gwframes-2.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
gwframes-2.0.2-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details for gwframes-2.0.2-cp313-cp313-macosx_11_0_x86_64.whl
gwframes-2.0.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for gwframes-2.0.2-cp313-cp313-macosx_11_0_arm64.whl
gwframes-2.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for gwframes-2.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
gwframes-2.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for gwframes-2.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
gwframes-2.0.2-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details for gwframes-2.0.2-cp312-cp312-macosx_11_0_x86_64.whl
gwframes-2.0.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for gwframes-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
gwframes-2.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for gwframes-2.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
gwframes-2.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for gwframes-2.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
gwframes-2.0.2-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details for gwframes-2.0.2-cp311-cp311-macosx_11_0_x86_64.whl
gwframes-2.0.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for gwframes-2.0.2-cp311-cp311-macosx_11_0_arm64.whl

Total release size: 35.1 MB

Release files / gwframes-2.0.2.tar.gz

Download URL gwframes-2.0.2.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
1091d7116d05ef63a0898a57b563b2abcc6e855b08432139a9703f81b7efae43
BLAKE2b-256 checksum
How to use checksums
b4cf3dcbdc5f6db4c09877628ab4cc7711e35d7c9ba5096dd6d3e1a1171e28c0
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gwframes-2.0.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.15 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c2993499ff2d8688da3ce779f41355a2c250113487d01718a9431f20f27ec42f
BLAKE2b-256 checksum
How to use checksums
0c845b560b8b68cf64da952f3f0962cca4744bbb23e6a82403259be7d7ad8fd6
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL gwframes-2.0.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.15 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e0705b3da492210693f896b9631e9370ad20069bbb1ab512fef2b804e4eed3c9
BLAKE2b-256 checksum
How to use checksums
52b7e10f796d2e6d6febf2b9105f538509906068edaf4b9ddd45ae351b9128f6
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp315-cp315-macosx_11_0_x86_64.whl

Download URL gwframes-2.0.2-cp315-cp315-macosx_11_0_x86_64.whl
Size 1.8 MB
Tags CPython 3.15 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
8e7ab02afcb418f6f2cb55bfe907d15d38ba9954b4cbea2d48ebd50721833025
BLAKE2b-256 checksum
How to use checksums
16c184cfa5a20091b6bea085eda6be1ab55970dbc4c68838b15d09327ad39578
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp315-cp315-macosx_11_0_arm64.whl

Download URL gwframes-2.0.2-cp315-cp315-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
98f1d1061aeea4b562e3bd9c7e16f5ba0c74ad64311e05975d05712185fcca1c
BLAKE2b-256 checksum
How to use checksums
3f6ecccc308c4d4286d961d79661b4be090b2b4ebc8d4a9d48d1955b4b35aa9a
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gwframes-2.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b1e47899a964ed88f4616fe2f532748a9f8ed7854e432ae08405e21d67849df4
BLAKE2b-256 checksum
How to use checksums
cf4d263e14223f8b254ef29d61e4b0553dd8f4e26f69ffb6a400c0203ae52857
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL gwframes-2.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
77c3aaa49e2d0a146844b327bcc989e10faec9c7ca3c801ea3cbd2072b685474
BLAKE2b-256 checksum
How to use checksums
8768523b72e18fb833c606ca388c8fa7d8fac1a34a455259adec1e97618662b2
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp314-cp314-macosx_11_0_x86_64.whl

Download URL gwframes-2.0.2-cp314-cp314-macosx_11_0_x86_64.whl
Size 1.8 MB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
384df815ef0b0a6806ac3d87be259969a3f02dcea5a1913cb492529b6649f56c
BLAKE2b-256 checksum
How to use checksums
152b84dab6d310d57dce29b931eb87ef0a3d537183103a8b21477fe33e6a8eda
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL gwframes-2.0.2-cp314-cp314-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9a906968166abbb9e46aef29d6f4e9edb86337071e7ea1962a31aa3bd2e2ce7c
BLAKE2b-256 checksum
How to use checksums
eec7a3ba6de48a77895ea13cdb692b94c3cf9c60b986b7225b4aff70d7b99acc
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gwframes-2.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d68fb867c0116f30cb0b727be4b8858aeb60530cdd923a8cc1671412b96d9a3a
BLAKE2b-256 checksum
How to use checksums
5fb9b2acb74f217d5892963e949d95dd10685f61ee44ea710f5a22b748f58702
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL gwframes-2.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
83017e3ee25decd66d17e3597a8ab0505e0d1b784f7f203ed607d03320075707
BLAKE2b-256 checksum
How to use checksums
cf438892d11acec9c5df44c26d74460eefadd335ff09501085c457ec22066b9f
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp313-cp313-macosx_11_0_x86_64.whl

Download URL gwframes-2.0.2-cp313-cp313-macosx_11_0_x86_64.whl
Size 1.8 MB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
615d58da10a58ce49f3ec501ee114b76c6588de55f4c633be2978afcb38be2de
BLAKE2b-256 checksum
How to use checksums
17a0de6a0eefdbb64e17150329d89399c3e4662cac437772db48ff0e2a0ad16d
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL gwframes-2.0.2-cp313-cp313-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fae930a8d52de92ac1af159103aab2318d0d21359ebd834715426803355c22c5
BLAKE2b-256 checksum
How to use checksums
1c09b357095091cda1558c215254d90298e46b044ed18ee443011543c22f97a1
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gwframes-2.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
80636b34e4515bec017474d6ec45435dafa6243d8b790d33a0a3b66e98ea3d57
BLAKE2b-256 checksum
How to use checksums
a6f6e7d3bd5591b9d5d5ea8d3666d500b42f2df94d283246ef33fe347065e54b
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL gwframes-2.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3dfe2e099cb017ee0555e45507c1697cbb74d3b895816cd6f61453cc343b5fba
BLAKE2b-256 checksum
How to use checksums
ce8a7d2473105bbf54be64813644d1be53dc53883d7c579e6b3a2c932cfb5013
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp312-cp312-macosx_11_0_x86_64.whl

Download URL gwframes-2.0.2-cp312-cp312-macosx_11_0_x86_64.whl
Size 1.8 MB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
9561a085ac22a8b256ab5d87d5600e11af8b81d373c4009314cf316c334716b8
BLAKE2b-256 checksum
How to use checksums
be76ffcf483c7e8c8a5b71c7ce9b1f7f4a37c67b155d1524e3101fad148bf28f
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL gwframes-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a88485ebbb6f3852f81382484914edd6375a6a50d970c7d102e016eb1227c462
BLAKE2b-256 checksum
How to use checksums
5144a9740eee6e266d5057e1dde771de4177f039c10a9d6a7a6a9b2850a2f6c2
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL gwframes-2.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3c2253b8b8b61a244bab89bc6e4212b984ac397b6c96134596c0a83992f50459
BLAKE2b-256 checksum
How to use checksums
908396d6f165c40af5d59d7e9c5b7614eb304f6300b25dadcdafe70aadb96d51
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL gwframes-2.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a2dc22278ce6574f381545da1bc6ce16d78ce63a5a9a4007ae4737f6677eeca8
BLAKE2b-256 checksum
How to use checksums
bd07f8ea5fe67f6e5a5afc90e6ce0dbb833be89ef3b7a488b5269f8e9013441c
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp311-cp311-macosx_11_0_x86_64.whl

Download URL gwframes-2.0.2-cp311-cp311-macosx_11_0_x86_64.whl
Size 1.8 MB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
0b90e7e8ae8bb05df34f332d7ea982ecfbff9b38438670bb5256d6922c28c22f
BLAKE2b-256 checksum
How to use checksums
64f65a89f28fac30f2f2a594f8e1ce0c2579e3379fb56f1342adc26808ff6093
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 28, 2026.

Transparency log

Release files / gwframes-2.0.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL gwframes-2.0.2-cp311-cp311-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9ec5f2d80e07bae482c7e6beb57e94f9cabc9467aff07b439aadfd3187e2c14c
BLAKE2b-256 checksum
How to use checksums
30f9aa2b558b401485809bf35631e514ef9c8f8c6b724e6697112feae2b0177f
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 28, 2026.

Transparency log

Security for GWFrames 2.0.2

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

Select from 21 files

Attestation for gwframes-2.0.2.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 28, 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