Skip to main content

gwframe

High-level Python library to work with gravitational-wave frame (GWF) files, based on framecpp

ci license documentation pypi version conda version


Resources

Installation

With pip:

pip install gwframe

Pre-built wheels are available for:

Platform Architecture Minimum Version
Linux x86_64, aarch64 glibc 2.34 (e.g., Debian 12, Ubuntu 21.10, Fedora 35, RHEL 9)
macOS x86_64 macOS 13 (Ventura)
macOS ARM64 macOS 15 (Sequoia)

With conda:

conda install -c conda-forge gwframe

Features

  • Multi-frame writing - Write multiple frames to a single file
  • Multi-channel support - Read all channels or specific lists with a single call
  • Masked array support - Detect and propagate invalid-data flags as NumPy masked arrays
  • Self-contained wheels - No external dependencies required for pip installation

Quickstart

Reading frames

import gwframe

# Read single channel
data = gwframe.read('data.gwf', 'L1:GWOSC-16KHZ_R1_STRAIN')
print(f"Read {len(data.array)} samples at {data.sample_rate} Hz")
print(f"Time range: {data.start} to {data.start + data.duration}")

# Read all channels
channels = gwframe.read('data.gwf', channels=None)
for name, timeseries in channels.items():
    print(f"{name}: {len(timeseries.array)} samples")

# Time-based slicing (automatically stitches multiple frames)
data = gwframe.read('multi_frame.gwf', 'L1:STRAIN',
                    start=1234567890.0, end=1234567900.0)

Writing single frames

import gwframe
import numpy as np

data = np.random.randn(16384)
gwframe.write('output.gwf', data, start=1234567890.0,
              sample_rate=16384, name='L1:TEST')

Writing multiple frames

import gwframe
import numpy as np

# Write multiple frames to a single file
with gwframe.FrameWriter('multi_frame.gwf') as writer:
    for i in range(20):
        data = np.random.randn(16384)
        writer.write(data, start=1234567890.0 + i,
                     sample_rate=16384, name='L1:TEST')

# Or without a context manager
writer = gwframe.FrameWriter('multi_frame.gwf')
writer.open()
for i in range(20):
    data = np.random.randn(16384)
    writer.write(data, start=1234567890.0 + i,
                 sample_rate=16384, name='L1:TEST')
writer.close()

Inspecting frames

From the command line:

gwframe inspect data.gwf            # file summary
gwframe inspect -v data.gwf         # + channel listing
gwframe inspect -vvv data.gwf       # + sample rates, dtypes, units, validity
gwframe inspect -vvvv data.gwf      # + invalid-channel report
gwframe inspect -vvvvv data.gwf     # + data preview (reads all data)

Or from Python:

import gwframe

# Get frame information
info = gwframe.get_info('data.gwf')
print(f"Number of frames: {info.num_frames}")
for frame in info.frames:
    print(f"Frame {frame.index}: {frame.name} at GPS {frame.start}, duration {frame.duration}s")

# List all channels
channels = gwframe.get_channels('data.gwf')
for channel in channels:
    print(channel)

Advanced: Full control with Frame objects

import gwframe
import numpy as np

# Create frame with multiple channels and metadata
frame = gwframe.Frame(
    start=1234567890.0,
    duration=1.0,
    name='L1',
    run=1
)

# Add channels
strain = np.random.randn(16384)
frame.add_channel('L1:STRAIN', strain,
                  sample_rate=16384,
                  unit='strain',
                  channel_type='proc')

aux = np.random.randn(1024).astype(np.float32)
frame.add_channel('L1:AUX', aux,
                  sample_rate=1024,
                  unit='counts',
                  channel_type='adc')

# Add metadata
frame.add_history('gwframe', 'Created with gwframe')

# Write with custom compression
frame.write('output.gwf', compression=gwframe.Compression.GZIP)

Handling invalid / masked data

ADC channels in GWF files can carry a data-valid flag indicating the entire channel is suspect. gwframe surfaces this through NumPy masked arrays:

import gwframe

# By default, reading a channel flagged invalid raises an error
try:
    data = gwframe.read('data.gwf', 'H1:ADC-CHANNEL')
except gwframe.InvalidDataError as e:
    print(e)  # suggests allow_invalid=True

# Allow invalid data — returns a masked array
data = gwframe.read('data.gwf', 'H1:ADC-CHANNEL', allow_invalid=True)
if isinstance(data.array, np.ma.MaskedArray):
    print(f"{data.array.count()} valid samples out of {len(data.array)}")

# Write a masked array — ADC channels preserve the flag,
# proc/sim channels warn that the mask is discarded
masked = np.ma.MaskedArray(values, mask=quality_mask)
frame = gwframe.Frame(start=1234567890.0, duration=1.0, name='H1')
frame.add_channel('H1:ADC-CHANNEL', masked,
                  sample_rate=16384, channel_type='adc')

# Control behavior when mask fidelity is lost
frame.add_channel('H1:PROC-CHANNEL', masked,
                  sample_rate=16384, channel_type='proc',
                  on_mask_loss='ignore')  # or 'warn' (default), 'raise'

CLI Tools

gwframe includes a command-line interface for common frame manipulation tasks:

# Inspect a frame file (add -v, -vv, -vvv for more detail)
gwframe inspect data.gwf

# Rename channels
gwframe rename input.gwf -o output.gwf -m "L1:OLD=>L1:NEW"

# Combine channels from multiple files
gwframe combine file1.gwf file2.gwf -o output/

# Keep only specific channels
gwframe select input.gwf -o output.gwf -c L1:STRAIN

# Remove unwanted channels
gwframe drop input.gwf -o output.gwf -c L1:UNWANTED

# Change frame duration
gwframe resize input.gwf -o output/ -d 4.0

# Replace NaN or sentinel values
gwframe impute input.gwf -o output.gwf --fill-value 0.0

# Update channel data from another file
gwframe replace base.gwf --update new.gwf -o output/ -c L1:STRAIN

# Change compression settings
gwframe recompress input.gwf -o output.gwf -c GZIP -l 9

# Chain stages in a single pass, e.g. raw -> curated dataset
gwframe transform raw/ -o curated/ --compression GZIP --level 9 \
    rename -m "L1:GDS-CALIB_STRAIN=>L1:STRAIN" \
    drop -c L1:DEBUG \
    resize -d 4
gwframe transform raw/ -o curated/ --dry-run @curated.recipe   # preview a recipe

# Check two files (or directories) for consistency of data and metadata
gwframe validate a.gwf b.gwf
gwframe validate dir1/ dir2/ --common          # only compare what both sides have
gwframe validate a.gwf b.gwf --metadata-only   # skip sample data (faster)
gwframe validate a.gwf b.gwf --atol 1e-9       # tolerate small float differences

All commands support batch processing with directories and glob patterns. See the CLI documentation for detailed usage and examples.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gwframe-0.6.0.tar.gz (4.2 MB view details)

Uploaded Source

Built Distributions

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

gwframe-0.6.0-cp314-cp314t-manylinux_2_34_x86_64.whl (18.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ x86-64

gwframe-0.6.0-cp314-cp314t-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ ARM64

gwframe-0.6.0-cp314-cp314-manylinux_2_34_x86_64.whl (18.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

gwframe-0.6.0-cp314-cp314-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

gwframe-0.6.0-cp314-cp314-macosx_15_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

gwframe-0.6.0-cp314-cp314-macosx_13_0_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.14macOS 13.0+ x86-64

gwframe-0.6.0-cp313-cp313t-manylinux_2_34_x86_64.whl (18.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ x86-64

gwframe-0.6.0-cp313-cp313t-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ ARM64

gwframe-0.6.0-cp313-cp313-manylinux_2_34_x86_64.whl (18.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

gwframe-0.6.0-cp313-cp313-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

gwframe-0.6.0-cp313-cp313-macosx_15_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

gwframe-0.6.0-cp313-cp313-macosx_13_0_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

gwframe-0.6.0-cp312-cp312-manylinux_2_34_x86_64.whl (18.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

gwframe-0.6.0-cp312-cp312-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

gwframe-0.6.0-cp312-cp312-macosx_15_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

gwframe-0.6.0-cp312-cp312-macosx_13_0_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

gwframe-0.6.0-cp311-cp311-manylinux_2_34_x86_64.whl (18.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

gwframe-0.6.0-cp311-cp311-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

gwframe-0.6.0-cp311-cp311-macosx_15_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

gwframe-0.6.0-cp311-cp311-macosx_13_0_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

gwframe-0.6.0-cp310-cp310-manylinux_2_34_x86_64.whl (18.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

gwframe-0.6.0-cp310-cp310-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

gwframe-0.6.0-cp310-cp310-macosx_15_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

gwframe-0.6.0-cp310-cp310-macosx_13_0_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

File details

Details for the file gwframe-0.6.0.tar.gz.

File metadata

  • Download URL: gwframe-0.6.0.tar.gz
  • Upload date:
  • Size: 4.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for gwframe-0.6.0.tar.gz
Algorithm Hash digest
SHA256 fd97d345db03c8ebfaab097ec05132e02a4651be9392ccdc3de0bec9995620f8
MD5 c4f2fe8523789d33694ca4097954c169
BLAKE2b-256 c050086269640fd158f333c910424cd99e5eb3f56617a7de659d886d45950a8a

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp314-cp314t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ae694b7ff974c1b8f5b8d64d5dbd534bfb7f0849c8ff3f40250b3c2a35e1fda9
MD5 6c3818e3e5e32f2404a83399a0c68928
BLAKE2b-256 e548a60cd3eea54f685170d42c95cedf53726a085fbbab3f0da2331d948bd0f4

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp314-cp314t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 de3b2337c8e831866f61e028fbae788bcbcdc5b623573843fe4f5a68c76d8b8c
MD5 5487273adb76e42acba592312f469428
BLAKE2b-256 9dea87fac518c70d58d6f4ee20904d62fef7cd74e35f4c44af1f3dc636a1f9e6

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f20cafeace307987aa6db7812e696cb1cf547bdf95b2200950f3bc95011faf6d
MD5 f43c99cc30e4d04ad35e8016a853de6c
BLAKE2b-256 8e559bf1e2abb90c481b0883d60dd501193b6f19a76fc67d4c6503fd2451d45a

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1d2def9972642551f974bcade5270aaab1e36402b022d3996dd047637a19ad9f
MD5 f0130a1b75fadd462343cf1055febf1c
BLAKE2b-256 a04a04f5373041ce69c54d54259ff2a8928b453dd33672440190763a38fc35c8

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 353f263ed54c28347f13468886faff579c33b5f8595e7955988bc6efcafebd23
MD5 630b86dc859ae4a5c59a829b86c9a2e6
BLAKE2b-256 c720613719cd0b7bf3c4e7141c635b1d15c73ab2f1f94dc0d4b3d978b9260df8

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp314-cp314-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 ba1ef3f2ad579a38bcc2efd0c353b176d3b781862413a0a73538ca98a931e22d
MD5 13da92823ed4d50a1b1ad87d0fd394e0
BLAKE2b-256 87291997b0fac883fe0bbaa232a1c3322fe9c7adc3ca0724accdfbdcd699126c

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp313-cp313t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp313-cp313t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ba9d5d6d76da46c7d0e3f72b8e9ddab422797b9c5f863e3f9da9e2b9ce42423c
MD5 305d65c86203aef706457152e051bd3d
BLAKE2b-256 8d3d67da23d39b9509805182f3e758bbfa9b9a82a15b374511851286d94f0abd

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp313-cp313t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp313-cp313t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 0b28448102736d3b4c39bd1e6abc2d99316172130a4b112a890a27b5fbb57c77
MD5 eb01430acfc3a4587b539f97d376611a
BLAKE2b-256 e1480b2d54e69bff25b34a1cf5dcf5596e3d20bbc9bb4156fff21303ecac0bbe

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8780e92305dbc076d66e6a84119315e25cdee567cfef47260eb19f65f5cb1211
MD5 85b107843175aed7bb9a9f5aa0d33ea7
BLAKE2b-256 a02d21de09f9985cce694f40f31eecf337b38a52b7d8392e7d214d89953b3e85

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 fb75d110920aa67ea311b8ff0cd62bf9c94270532c7a46f4ad79f0c7950ceb3d
MD5 1c48394d0ffaf7793a64fe22e39c5054
BLAKE2b-256 c17f5f8cc910bc2cf352c2a3618e6508b526273229ec12772bd0ad5cc77734b4

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 850c88118f53574c1be8167a68e5dc636ea5ae10b70557b157685c9a2ce310c3
MD5 08dfe254876c14ff1cf3fcd8bfef24f3
BLAKE2b-256 c6904a5243df84cb7023baccab7be568d7872ed1ea4a042b1bbaf35dfef6658b

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a9bfbfa69d8265eb61079349363b64b0b1691f2f2abbf1993bafbb8ad8737bdb
MD5 cf2f9c9407a291409c5b4d2a8bc44fa5
BLAKE2b-256 10ca4801fe4c86d5977402f46e7af0ca4a01679abe4cb93df7e1801bc6be580b

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c16dae2f3c24a38bc07b67dc2f744fd37f22879ccdaf9d34dde513a52309ed59
MD5 0b75069f06b1dd40319474aee41199a7
BLAKE2b-256 c3a37c49b1cac769128df4272b1183af2404a3e058f6d65a9d85d3f072ae4355

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b312dc871faf0b891eda315eeae3e926a92e7e7aedc6e5a40158ec2d0ada4588
MD5 a2bf8f47e3ecc3d7de0512c4fab60a5b
BLAKE2b-256 eec247d95e79ca73df79e0cc7ffc35db36a9278b89cbdaf334e6e117ad980f1b

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 066c3b6136db58c59a08a11aff7b964fb0bcb23de687b4bfef7138819a8cd27a
MD5 40b051d2ddfbe7162921b2885ca0078d
BLAKE2b-256 0053455832ae37a173d3a9c0bfc1df59e26442641214263cf0a4f21a42f4ea09

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 183289c2aa5bec39282e57ba4e6122380226e560b62c4d3efe5fb4aa98f44fa3
MD5 a433223d52b073cb1d35ea7acd778af0
BLAKE2b-256 6f037eb7c2babe55d8f308400d1f8c46662619222627e35af9999e5fcaae0371

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e03d6b0371a9c0d3040141487dce065e16aa39bb56b2f182142036bed0b1196e
MD5 d68afcf1817c043afde9feaecb15fae2
BLAKE2b-256 f3b176d55e93929b727567ee758dbf4c1c800833c2505a3a18588df640857f2c

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 baceac99810d2e237e177c03169b3fe403fabcf4220caa42806a5ae3accb3031
MD5 5fa31fb225cef6ff6feae7cb9a66b330
BLAKE2b-256 3ca956c3963838c298bc83b4a00c4ef5305a39015d3e31a2e582a41f2acf2751

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e6931135bdc91c08f7316248a64cbcb9378feaaf97c401d10e22feb7fb212a45
MD5 baa259a56a24f450288db3694906e268
BLAKE2b-256 36a38e3a60b3989f776cbc4b347ddf0b5571d23fc6228138a4012c5fcec756c6

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 cadbf30caee980d440a3fb0026b6383827916f9aa8f3a79932fba7b5024b8560
MD5 dbb82361cc1bcbee171d28a7fd8e53e8
BLAKE2b-256 aefce91f887f84d5f2358a66af17a1bec4c2a8a97c5d79969a4858928f9caba0

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1d118e74f5e6054d92cda1c11f3c965ba7aa433bbbaa1082b949acdf8cc699d9
MD5 493191077db67bae0932486b2c267d04
BLAKE2b-256 934931b466e195c602e31f32d646ebca69634f5afad48b8b42e84566db2b97c7

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 8875bc422af71da15937ef931fb31e7fd0fbf730f7b9b196b802fe8f4c88ea19
MD5 62b75ba8eaa7295b7c05fcf1f716505d
BLAKE2b-256 f41747c16835e32e4ea960922c9a4e1b7e8309b31dfbd1cb3bdcd94e84746415

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 da73313291d2863211570eb879bac0626e633fb6c886480c3958a88f8683e044
MD5 f11fbda51de776c36be654fd6e703bf0
BLAKE2b-256 15eb6714c0be0c858701cc51c4f9f3987a766a77cdd8016a6f4a2018505ae1f4

See more details on using hashes here.

File details

Details for the file gwframe-0.6.0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for gwframe-0.6.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 049977e9ab9e911c22f0501dadf7cdae8f9936964cafc856c7b8e5a8051767b5
MD5 bfaadf005d55c4bffdb8b5086faf1545
BLAKE2b-256 ff79e4dc1ae7a82ce12703ca110b996663ae3f8a1a8ad950c29a57bc2a8ad227

See more details on using hashes here.

Release history Release notifications | RSS feed

0.7.0

25 files

This release

0.6.0 This release

25 files

0.5.0

25 files

0.4.4

25 files

0.4.3

25 files

0.4.2

21 files

0.4.1

17 files

0.4.0

17 files

0.3.2

17 files

0.3.1

17 files

0.3.0

17 files

0.2.2

17 files

0.2.1

17 files

0.2.0

17 files

0.1.2

17 files

0.1.1

17 files

0.1.0

11 files

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