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.7.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.7.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.7.0-cp314-cp314t-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ ARM64

gwframe-0.7.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.7.0-cp314-cp314-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.14macOS 15.0+ ARM64

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

Uploaded CPython 3.14macOS 13.0+ x86-64

gwframe-0.7.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.7.0-cp313-cp313t-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ ARM64

gwframe-0.7.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.7.0-cp313-cp313-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.13macOS 13.0+ x86-64

gwframe-0.7.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.7.0-cp312-cp312-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.12macOS 13.0+ x86-64

gwframe-0.7.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.7.0-cp311-cp311-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.11macOS 13.0+ x86-64

gwframe-0.7.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.7.0-cp310-cp310-manylinux_2_34_aarch64.whl (18.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.10macOS 15.0+ ARM64

gwframe-0.7.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.7.0.tar.gz.

File metadata

  • Download URL: gwframe-0.7.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.7.0.tar.gz
Algorithm Hash digest
SHA256 fe04eef8da76efe52a312165ba97a99656a4a3c11dcf4c0607621c69f8e600ae
MD5 7b66d27d8a41347e552f921fac448f6d
BLAKE2b-256 5a3533d1db34fd35399ad3247ebec64b6a60a414e86a71aa6d32c76c110f3b72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 85ac91536909f3635a43756ed2f93fe59543b7a61c9b366d6599ae67a513706f
MD5 f7ebbcb957290e8b5dbf6640cc3f24ef
BLAKE2b-256 f6b9db4c21981909a912b8b22367f98258442d98557b224aa34c2db3a09f502e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 34e4073fef0b632b4228f907d948be5642b9d6aa5bd0f44d75c6f7447a1f5f8b
MD5 09c0b832b874f72384a3b296ac6c6ccb
BLAKE2b-256 2508841b00c531cfd641611895c68ff26352365803c6dd51f29277ce67de9d35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ff829c781f025194052f2b1f6ad1802add80c9b34e0c811dd0da20b5b6879d1f
MD5 7b9367b1b80cbd2dbed231f64e23dd64
BLAKE2b-256 57e5577837ab301106c6de5e83c31458068ca31d0fe30ecdcddfbe8ee40e6a2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 abfa8b79d6c14ba82287b62dfa03e6eda83e7e6a5f4d065617d1ae88300e2ce1
MD5 27a1841f5ae94645655c6b021deb0fbe
BLAKE2b-256 1b829ae4b53790d6799f5497511dc1f3cd2428c61f5ddc0c959d3f1cb2854322

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 df141ceb7ecc9c64bca461f1c7814f697abf65c1777ab6d8195b2fcda4f06380
MD5 cbc334fac7199ec2fe20d32c7f084978
BLAKE2b-256 e0d93cd8849c9caf5ba8119ddece96ae18bcbc2a511c87dc88d48e131aab5849

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 225233ba3b0466ce972493022ce72813bb7de8f1d986518f1df09c14dd9a61a0
MD5 a8c93c3999d901156d0590b62757efb1
BLAKE2b-256 e8ad760cb78f176bfabd43c6fa852200a5a3df4f2444e2236247f79f3a65dbe5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp313-cp313t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e9055aca8457d3b41da4127e0e6984ee74b6482f6d89ba88f695afa2902a0501
MD5 3aa73ef31fd613d0237d7596dd0ba6c9
BLAKE2b-256 dd4d773b3cab6fa9777c1273483caae833c0a09fca17867a07986e2b83687ff7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp313-cp313t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a7d893de35953e2fdef6280da193bf7d7252eff1617d4b3904be2ec0beb65bf1
MD5 62fffd6df7efca547cc9863c1040f8ee
BLAKE2b-256 760d9f9122b2b662c47fdb9c25e81e7a5ddb3a6505087b043645b65e9bbd7e60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 60d6fa1dab69ad53ad9e525fc282f688db6a9ce37046c5fef0de0e348cb74b14
MD5 3fe185e0d3de963ae83feac51dd0f4a1
BLAKE2b-256 b604f84dc4b9826daa4863fb6b0cbe4ec19bdf70b2a6eef770e32d38938a5ef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 77d4842a7ff5cf8fb5c5ed45524d0270fbfe782a78fc64204783b659a4ec10db
MD5 aa310935c9a9b5f703d23b78df9d6b6e
BLAKE2b-256 ccd43a68cb5d52c0ecffcbb7e4f57a6a44c62b4bd538fab1e222e0deb7fc3057

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6e6ba9f2c1a4e41051f2de344c82bd526e099f79ea68074e19b53ca8e0ac66a2
MD5 f09b824fb3bf797df3c7edf4002d6182
BLAKE2b-256 36fd497ac726ee269752082262e2447932daca436e97f139fa70c58a9a20dd40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7c1a252378d295f0b5ae677d76c4e6a05f983f4c41bcae3885fd27aaf93114c7
MD5 bd3955e4d3fa10990cf64ccccabd02a2
BLAKE2b-256 df5598cda07ece74c5896828268bba7faca3d5f809ba261ed11a5f67c0c4f327

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 f467a7827a3e966e07ab97736fa4c3baf10689df69c9c33f64dff4b07e3a632a
MD5 613b4e0c2d26c5105d349b0ba68b3019
BLAKE2b-256 7d1ea6c0f9a145d48d27b836330b0001fa54d163449cf1af13d8eee0b1cd6d70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 7d6f148f1fe7af6641683edfa05bd81e611990efc7a3a0753921a6cd1b6377b8
MD5 ac77b6031ebd0720808540455c241364
BLAKE2b-256 c8372fcad04c9f4b7676bd878b640d1b99ac0b6544a8487f985ba3c2ebc7264f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1b41c06662bfb5c6099202d05d1e082654db2c3a841adc7bc878fdd158afb704
MD5 36026692d564adf95e201b8acd644e95
BLAKE2b-256 dc890d58fc9ee17e582eac3eacd12b645d677d6960e02431e366bb97c6f365be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b412354086a5cd9d393b1cac6404af4a8fef40348bcfd2a6d477b27055a27d9d
MD5 4ff72cbb3a5f5c864fdf3fb6dd2873da
BLAKE2b-256 80b5aeea06523a78314b2b86b798265483305fdebb56ab9418d6a148c8c4242d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dd97b84d85eb4056cf6f655a2383633f1617d15191c66cd3a936114821386828
MD5 29be9533572305cf86218a3812a085bb
BLAKE2b-256 31f57b12f5661f0ee1092dbebad0d07fe1ccf874a289bfc925efe4811f8a2b01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a3de6f062bd4bfee1d25647de7a099eee947d5d16e24e144dc9de7ebe2603d8e
MD5 bd61cc006cfb27aba06cded2619da3e8
BLAKE2b-256 36111adda96e8aebd15895f57a9197ce7f23b3c2d690abc7cd859e0e1cb344a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b60db87c95b8ac306ee71cffad07dfc1bc358125be6f7ecc9c5519d195b4e476
MD5 6a8cf1d2a8ebe9352d23f50a93daf03a
BLAKE2b-256 7afa6e6a4e48f31b95392006571cd8db081e6116fc77e4700204e50e03956ea9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 877a899e8a4b05538f174e35b29e4b6aba71bd4555b82b9312261b6a176b9229
MD5 f7c97d7e08cfc244ff69174fe2a4f19b
BLAKE2b-256 c777c778dec70241bfd9e97333c42adaf0b77f4ff586cadbed99e363e9228d8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6c7d927e5b932a5a5e5822b25ab8df356b4f15d1227d7d968d5827c81e692267
MD5 ab6de57980255a118cc515e4a417c0b6
BLAKE2b-256 731df59d3123496ff94efd1f999abe1d400893372ddce9f974b8b62ad38acb41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 866537af918d2011be4269365e51ef7c51a36b3e626610637d8cb54cb7d5a2bb
MD5 4cf94ce37afef6cd8b31fe20d2654bec
BLAKE2b-256 93b928013c4f785da1b80206e30dd3ca243025f4f434dd3c6087357be0b27009

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8f771e1017e6c07f9e2f684a07bc977be1c2406f28376ac796af4f8a7bcdeb29
MD5 22a93feff892d9e1733c3cdd9aa4e1a4
BLAKE2b-256 dadf71282ca915544633e8e77ad9346a97fcb8efe2ecb990927f79620c2fdc2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gwframe-0.7.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 08306891fb194c0c985a7d0eac0b9e2fdc28fc2fe844ee181beb7b34cdc1317a
MD5 87a6b4693e1aa0a8440836c38e601995
BLAKE2b-256 366a2b2fde517d32017802aa23dee4023fa2ccf91f3224b295f2a38355f905d6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.7.0 This release

25 files

0.6.0

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