gwframe
High-level Python library to work with gravitational-wave frame (GWF) files, based on framecpp
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.
Release files for gwframe 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gwframe-0.8.0.tar.gz | 4.2 MB | Details |
Built distributions (wheels)
Total release size: 310.7 MB
Release files / gwframe-0.8.0.tar.gz
| Download URL | gwframe-0.8.0.tar.gz |
|---|---|
| Size | 4.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
188d439b3228c0b55ed0d318adc23e73258fa830308921a0be634a4a477c93b8
|
|
BLAKE2b-256 checksum How to use checksums |
015ab13625bdc6c985be3f3392f8a5243e257c0a118514a4af060da029c2a1cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp314-cp314t-manylinux_2_34_x86_64.whl
| Download URL | gwframe-0.8.0-cp314-cp314t-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
f985082e6babdbd46fcf64f3e1236bf938ca416da6eb47949012d91d04092a6e
|
|
BLAKE2b-256 checksum How to use checksums |
3d9820ec69c32f43d94431f147ec962c809a05eeb1730743596abee097442dd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp314-cp314t-manylinux_2_34_aarch64.whl
| Download URL | gwframe-0.8.0-cp314-cp314t-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
8a457b13c41cd99446744143e04202059b6ef87174b73f5d821248719cb73bb7
|
|
BLAKE2b-256 checksum How to use checksums |
b68187abcac6834513c961ca40f82cb6f79aec3e9f98f65a3b67d7e6c3366213
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp314-cp314-manylinux_2_34_x86_64.whl
| Download URL | gwframe-0.8.0-cp314-cp314-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.14 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
cf29816bd3f3c37ef923ac6cba6e5a5a8477dcf6543ec55ec7d47a7865c43775
|
|
BLAKE2b-256 checksum How to use checksums |
613bdc12b878c28e535f6bce7483e2b885495fadf3a40f0ba71f41654c652043
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp314-cp314-manylinux_2_34_aarch64.whl
| Download URL | gwframe-0.8.0-cp314-cp314-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.14 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
826d5074211ebc80a329b90aca95272658e907987829c97038a4132081435863
|
|
BLAKE2b-256 checksum How to use checksums |
06785b86c5df346766e1d6216ff5981dde06f97fde69e32406d36410a1d6c8fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp314-cp314-macosx_15_0_arm64.whl
| Download URL | gwframe-0.8.0-cp314-cp314-macosx_15_0_arm64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.14 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
81dde8cf2d17292b359032677154589b268e6690c1fe96b3dd57f57eb4fb8736
|
|
BLAKE2b-256 checksum How to use checksums |
3c32de6b90da31d5ac18052e75e872dffd1659c3bb3a87c0ca7abbebad125fc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp314-cp314-macosx_13_0_x86_64.whl
| Download URL | gwframe-0.8.0-cp314-cp314-macosx_13_0_x86_64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | CPython 3.14 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
66f0e7fb2bfb1cd2d6c2579c901713c71e88848b98b126e32f99d7bdb00be631
|
|
BLAKE2b-256 checksum How to use checksums |
9bc12eb5cb6d7214543df94d17f38753a3467fda34f5e7b63a82a26cc5602409
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp313-cp313t-manylinux_2_34_x86_64.whl
| Download URL | gwframe-0.8.0-cp313-cp313t-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.13 CPython 3.13 free-threading Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
776c2c4c70c21e07e5891597cc20b4e6783d8d4f35e1a9e2ed0de9a0281e03ff
|
|
BLAKE2b-256 checksum How to use checksums |
94f243b9144ade5c187128d7abf3e2cb450088177ba2dad707614779956b4bd9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp313-cp313t-manylinux_2_34_aarch64.whl
| Download URL | gwframe-0.8.0-cp313-cp313t-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.13 CPython 3.13 free-threading Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
fc9c33f73df123c64412294a2cfe9c28511a3959058415888407a8a449e1241b
|
|
BLAKE2b-256 checksum How to use checksums |
3bcb3556999fe68d4cf17489c6904497c394eb4310c0859b7f46594998f9c662
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | gwframe-0.8.0-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
2248904fc99158b470f170d072cbff70a93880af3876b5a581c9f5962f02ae9c
|
|
BLAKE2b-256 checksum How to use checksums |
decdbc15bfe1cafec30572bd2c6331bdb992876dd2e87a411ad6c98026767dd4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp313-cp313-manylinux_2_34_aarch64.whl
| Download URL | gwframe-0.8.0-cp313-cp313-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
feb3d08825ae874932ebc6b0613d58cb4df8f3c442b5c9ad3c6c7c4183adee34
|
|
BLAKE2b-256 checksum How to use checksums |
67c28b9ac388e9938b38af45bdd51da6a4cb97e5538da493a1262f38624f5e5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp313-cp313-macosx_15_0_arm64.whl
| Download URL | gwframe-0.8.0-cp313-cp313-macosx_15_0_arm64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.13 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d1fd6ed5baa0249236467e2892cb12881284a0b4069cb95d07e840f1a8935de7
|
|
BLAKE2b-256 checksum How to use checksums |
a5068b35801cf3f5fdd5fcc51f0fb056fdeada105b01a8622d8aa48314f203a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp313-cp313-macosx_13_0_x86_64.whl
| Download URL | gwframe-0.8.0-cp313-cp313-macosx_13_0_x86_64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | CPython 3.13 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
8988c71cfdeecf5c191b229442036ef7467aa787923e9068ad8eebabceab5a10
|
|
BLAKE2b-256 checksum How to use checksums |
7d5e02410f2907332a9573bd5bed695c8b02cd9a37fcef7d545151b1ec74adec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | gwframe-0.8.0-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
a4627b2068cb4a11e8b3af51b954f027081401ea4efb14333538738618791cfb
|
|
BLAKE2b-256 checksum How to use checksums |
845cf22bc2a4bfb04c39e9fca92053384c0432572bdbddd6c9f4ae9e98ed5015
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp312-cp312-manylinux_2_34_aarch64.whl
| Download URL | gwframe-0.8.0-cp312-cp312-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
6fbcb76401a137dbc6bbd822d8a56742631ed729eef9cd2efd6c0ee173365713
|
|
BLAKE2b-256 checksum How to use checksums |
42ccb1631bbe94918ee0ec8339c439f0e3f5cd89e7bb7abbdb8b4f1ee42accee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp312-cp312-macosx_15_0_arm64.whl
| Download URL | gwframe-0.8.0-cp312-cp312-macosx_15_0_arm64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.12 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2940c693be2fca8f359af9ccefc42c4944489a5e0c11ce3c4f4f80c099cf5a53
|
|
BLAKE2b-256 checksum How to use checksums |
064fdfd38644a7e8d79f3755f62bad668300778ac742e19152f73ae95b3ecb5d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp312-cp312-macosx_13_0_x86_64.whl
| Download URL | gwframe-0.8.0-cp312-cp312-macosx_13_0_x86_64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | CPython 3.12 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
0b335031ada7a96164615784ac900475f5d797054c064d348017ebba13a906cc
|
|
BLAKE2b-256 checksum How to use checksums |
08b50a4588425340dc67c3eeda91700b0a3aa43618ef885ab462c44f58069308
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp311-cp311-manylinux_2_34_x86_64.whl
| Download URL | gwframe-0.8.0-cp311-cp311-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
7b8142cbb49b162af4e2cedc28d5a7b5ff0930e24479648d71b4072ae30c8200
|
|
BLAKE2b-256 checksum How to use checksums |
b6f4abdcd8ddc8bf9d2f84bccb91e0f1f047d2be974a1e46f395edaeaf2823a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp311-cp311-manylinux_2_34_aarch64.whl
| Download URL | gwframe-0.8.0-cp311-cp311-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
10e0d39ee3260eab2ff0c452314c3571a9ab34ce9d89ecde8ae02aeda1158a9c
|
|
BLAKE2b-256 checksum How to use checksums |
89507dafe8dff4a29dbe6bd1d06735af1df7b97cea9c368bbff58516f17ac5db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp311-cp311-macosx_15_0_arm64.whl
| Download URL | gwframe-0.8.0-cp311-cp311-macosx_15_0_arm64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.11 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
97c11adaca1a016f80afa43a498e03051fc5cb36d20c6e7efe139a3a5c5b79cd
|
|
BLAKE2b-256 checksum How to use checksums |
831f064bae3eadf8ad135a85aedfc1a4371612ec6af20d303bdc4c98827e2ed1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp311-cp311-macosx_13_0_x86_64.whl
| Download URL | gwframe-0.8.0-cp311-cp311-macosx_13_0_x86_64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | CPython 3.11 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
2c02fe369841f1a04db5501a7612f07d83de970c079b662716284ee5db47f393
|
|
BLAKE2b-256 checksum How to use checksums |
42380749540b1fd07d2838d2824eca95456f1685ea705cb689ccef7dfd302216
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp310-cp310-manylinux_2_34_x86_64.whl
| Download URL | gwframe-0.8.0-cp310-cp310-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 18.8 MB |
| Tags | CPython 3.10 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
078b042e86248a7de0865c7bc366e742dae13758f10a18c78f6ac8945a27efdc
|
|
BLAKE2b-256 checksum How to use checksums |
fadf43926bb931c949e174cf02b7a278de8b9065304c6b759ce44d1c6237e07f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp310-cp310-manylinux_2_34_aarch64.whl
| Download URL | gwframe-0.8.0-cp310-cp310-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.10 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
34ce952881b430a18c6cd81dceb4637d136240e0c78ee937f6f49f763c7c7588
|
|
BLAKE2b-256 checksum How to use checksums |
54e49bd59b7874e4c627ab8231e3d8b693eeaaf9872237daad8a2211182ca576
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp310-cp310-macosx_15_0_arm64.whl
| Download URL | gwframe-0.8.0-cp310-cp310-macosx_15_0_arm64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | CPython 3.10 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
42ebf9afd51105943dc350ebf0b5953d40d15f35d91b0315ea247fd6a023116f
|
|
BLAKE2b-256 checksum How to use checksums |
77dc673f75d14488572a0cbb61a010bdc36a5ac1b7af05512cacdd6b195c60f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / gwframe-0.8.0-cp310-cp310-macosx_13_0_x86_64.whl
| Download URL | gwframe-0.8.0-cp310-cp310-macosx_13_0_x86_64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | CPython 3.10 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
5ff9b81b8e2f2450b79d2fda996ea16a5653a56a78154888d3b762cdc88a3009
|
|
BLAKE2b-256 checksum How to use checksums |
bc8d8723f22f23913a98c8fcfb3d3b73abab27abc021fc0bb3ef3f4dd39ff492
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|