Parquet Metadata Reader
Project description
rugo
rugo is a C++17 and Cython powered file reader for Python. It delivers high-throughput reading for both Parquet files (metadata inspection and experimental column reader) and JSON Lines files (with schema inference, projection pushdown, and SIMD optimizations). JSON Lines reader returns high-performance draken vectors for efficient columnar processing. The data-reading API is evolving rapidly and will change in upcoming releases.
Key Features
- Parquet: Fast metadata extraction backed by an optimized C++17 parser and thin Python bindings.
- Parquet: Complete schema and row-group details, including encodings, codecs, offsets, bloom filter pointers, and custom key/value metadata.
- Parquet: Experimental memory-based data reading for PLAIN and RLE_DICTIONARY encoded columns with UNCOMPRESSED, SNAPPY, and ZSTD codecs.
- JSON Lines: High-performance columnar reader with schema inference, projection pushdown, and SIMD optimizations (19% faster).
- JSON Lines: Returns draken vectors with zero-copy Arrow interoperability for high-performance columnar processing.
- JSON Lines: Memory-based processing for zero-copy parsing.
- Works with file paths, byte strings, and contiguous memoryviews.
- Optional schema conversion helpers for Orso.
- Runtime dependencies: draken (for JSON Lines reader), pyarrow (for Arrow interoperability).
Installation
PyPI
pip install rugo
# Optional extras
pip install rugo[orso]
pip install rugo[dev]
From source
git clone https://github.com/mabel-dev/rugo.git
cd rugo
python -m venv .venv
source .venv/bin/activate
make update
make compile
pip install -e .
Requirements
- Python 3.9 or newer
- A C++17 compatible compiler (clang, gcc, or MSVC)
- Cython and setuptools for source builds (installed by the commands above)
- On x86-64 platforms, an assembler capable of compiling
.Ssources (bundled with modern GCC/Clang toolchains) - ARM/AArch64 platforms (including Apple Silicon) are fully supported with NEON SIMD optimizations
Runtime Dependencies
- draken: High-performance columnar vector library (for JSON Lines reader)
- pyarrow: Apache Arrow Python bindings (for Arrow interoperability)
Quickstart
import rugo.parquet as parquet_meta
metadata = parquet_meta.read_metadata("example.parquet")
print(f"Rows: {metadata['num_rows']}")
print("Schema columns:")
for column in metadata["schema_columns"]:
print(f" {column['name']}: {column['physical_type']} ({column['logical_type']})")
first_row_group = metadata["row_groups"][0]
for column in first_row_group["columns"]:
print(
f"{column['name']}: codec={column['compression_codec']}, "
f"nulls={column['null_count']}, range=({column['min']}, {column['max']})"
)
read_metadata returns dictionaries composed of Python primitives, ready for JSON serialisation or downstream processing.
Returned metadata layout
{
"num_rows": int,
"schema_columns": [
{
"name": str,
"physical_type": str,
"logical_type": str,
"nullable": bool,
},
...
],
"row_groups": [
{
"num_rows": int,
"total_byte_size": int,
"columns": [
{
"name": str,
"path_in_schema": str,
"physical_type": str,
"logical_type": str,
"num_values": Optional[int],
"total_uncompressed_size": Optional[int],
"total_compressed_size": Optional[int],
"data_page_offset": Optional[int],
"index_page_offset": Optional[int],
"dictionary_page_offset": Optional[int],
"min": Any,
"max": Any,
"null_count": Optional[int],
"distinct_count": Optional[int],
"bloom_offset": Optional[int],
"bloom_length": Optional[int],
"encodings": List[str],
"compression_codec": Optional[str],
"key_value_metadata": Optional[Dict[str, str]],
},
...
],
},
...
],
}
Fields that are not present in the source Parquet file are reported as None. Minimum and maximum values are decoded into Python types when possible; otherwise hexadecimal strings are returned.
Parsing options
All entry points share the same keyword arguments:
schema_only(defaultFalse): return only the top-level schema without row group details.include_statistics(defaultTrue): skip min/max/num_values decoding when set toFalse.max_row_groups(default-1): limit the number of row groups inspected; handy for very large files.
metadata = parquet_meta.read_metadata(
"large_file.parquet",
schema_only=False,
include_statistics=False,
max_row_groups=2,
)
Working with in-memory data
with open("example.parquet", "rb") as fh:
data = fh.read()
from_bytes = parquet_meta.read_metadata_from_bytes(data)
from_view = parquet_meta.read_metadata_from_memoryview(memoryview(data))
read_metadata_from_memoryview performs zero-copy parsing when given a contiguous buffer.
Prototype Data Decoding (Experimental)
API stability: The column-reading functions are experimental and will change without notice while we expand format coverage.
rugo includes a prototype decoder for reading actual column data from Parquet files. This is a limited, experimental feature designed for simple use cases and testing.
Supported Features
- ✅ UNCOMPRESSED, SNAPPY, and ZSTD codecs
- ✅ PLAIN encoding
- ✅ RLE_DICTIONARY encoding
- ✅
int32,int64,float32,float64,boolean, andstring(byte_array) types - ✅ Memory-based processing (load once, decode multiple times)
- ✅ Column selection (decode only the columns you need)
- ✅ Multi-row-group support
Unsupported Features
- ❌ Other codecs (GZIP, LZ4, LZO, BROTLI, etc.)
- ❌ Delta encoding, PLAIN_DICTIONARY, other advanced encodings
- ❌ Nullable columns with definition levels > 0
- ❌ Other types (int96, fixed_len_byte_array, date, timestamp, complex types)
- ❌ Nested structures (lists, maps, structs)
Primary API: Memory-Based Reading
The recommended approach loads Parquet data into memory once and performs all operations on the in-memory buffer:
import rugo.parquet as rp
# Load file into memory once
with open("data.parquet", "rb") as f:
parquet_data = f.read()
# Check if the data can be decoded
if rp.can_decode_from_memory(parquet_data):
# Read ALL columns from all row groups
table = rp.read_parquet(parquet_data)
# Or read SPECIFIC columns only
table = rp.read_parquet(parquet_data, ["name", "age", "salary"])
# Access the structured data
print(f"Columns: {table['column_names']}")
print(f"Row groups: {len(table['row_groups'])}")
# Iterate through row groups and columns
for rg_idx, row_group in enumerate(table['row_groups']):
print(f"Row group {rg_idx}:")
for col_idx, column_data in enumerate(row_group):
col_name = table['column_names'][col_idx]
if column_data is not None:
print(f" {col_name}: {len(column_data)} values")
else:
print(f" {col_name}: Failed to decode")
Data Structure
The read_parquet() function returns a dictionary with this structure:
{
'success': bool, # True if reading succeeded
'column_names': ['col1', 'col2'], # List of column names
'row_groups': [ # List of row groups
[col1_data, col2_data], # Row group 0: list of columns
[col1_data, col2_data], # Row group 1: list of columns
# ... more row groups
]
}
Each column's data is a Python list containing the decoded values.
Performance Benefits
Traditional Approach (Multiple File I/O):
# Each operation reads the file separately
metadata = rp.read_metadata("file.parquet") # File I/O #1
col1 = rp.decode_column("file.parquet", "col1") # File I/O #2
col2 = rp.decode_column("file.parquet", "col2") # File I/O #3
Memory-Based Approach (Single File I/O):
# Load once, process multiple times
with open("file.parquet", "rb") as f:
data = f.read() # File I/O #1 (only)
table = rp.read_parquet(data, ["col1", "col2"]) # In-memory processing
Legacy File-Based API
For backward compatibility, file-based functions are still available:
# Check if a file can be decoded
if rp.can_decode("data.parquet"):
# Decode a specific column from first row group only
values = rp.decode_column("data.parquet", "column_name")
print(values) # e.g., [1, 2, 3, 4, 5] or ['a', 'b', 'c']
Use Cases
The memory-based API is optimized for:
- Query engines with metadata-driven pruning
- ETL pipelines processing multiple Parquet files
- Data exploration where you need to examine various columns
- High-performance scenarios minimizing I/O operations
See examples/memory_based_api_example.py and examples/optional_columns_example.py for complete demonstrations.
Note: This decoder is a prototype for educational and testing purposes. For production use with full Parquet support, use PyArrow or FastParquet.
JSON Lines Reading
rugo includes a high-performance JSON Lines reader with schema inference, projection pushdown, and SIMD optimizations. Returns data as high-performance draken vectors for efficient columnar processing.
Features
- ✅ Fast columnar reading with C++17 implementation and SIMD optimizations
- ✅ 19% performance improvement from SIMD optimizations (AVX2/SSE2)
- ✅ Draken vector output - High-performance columnar vectors with zero-copy Arrow interoperability
- ✅ Automatic schema inference from JSON data
- ✅ Projection pushdown (read only needed columns)
- ✅ Support for int64, double, string, and boolean types
- ✅ Native null value handling
- ✅ Memory-based processing (zero-copy parsing)
- ✅ Orso schema conversion
Quick Example
import rugo.jsonl as rj
# Sample JSON Lines data
data = b'''{"id": 1, "name": "Alice", "age": 30, "salary": 50000.0}
{"id": 2, "name": "Bob", "age": 25, "salary": 45000.0}
{"id": 3, "name": "Charlie", "age": 35, "salary": 55000.0}'''
# Get schema
schema = rj.get_jsonl_schema(data)
print(f"Columns: {[col['name'] for col in schema]}")
# Output: Columns: ['id', 'name', 'age', 'salary']
# Read all columns - returns draken vectors
result = rj.read_jsonl(data)
print(f"Read {result['num_rows']} rows with {len(result['columns'])} columns")
print(f"Column types: {[type(col).__name__ for col in result['columns']]}")
# Output: Column types: ['Int64Vector', 'StringVector', 'Int64Vector', 'Float64Vector']
# Read with projection (only specific columns)
result = rj.read_jsonl(data, columns=['name', 'salary'])
# Only reads 'name' and 'salary' - projection pushdown!
# Returns StringVector and Float64Vector
Working with Files
import rugo.jsonl as rj
# Load file into memory
with open("data.jsonl", "rb") as f:
jsonl_data = f.read()
# Extract schema
schema = rj.get_jsonl_schema(jsonl_data, sample_size=1000)
# Read specific columns only - returns draken vectors
result = rj.read_jsonl(jsonl_data, columns=['user_id', 'email', 'score'])
# Access columnar data (vectors support iteration and to_arrow() conversion)
# Convert to Arrow arrays for easy iteration
user_ids = result['columns'][0].to_arrow()
emails = result['columns'][1].to_arrow()
scores = result['columns'][2].to_arrow()
for i in range(result['num_rows']):
user_id = user_ids[i]
email = emails[i]
score = scores[i]
print(f"User {user_id}: {email} - Score: {score}")
### Orso Integration
```python
import rugo.jsonl as rj
from rugo.converters.orso import jsonl_to_orso_schema
# Get JSON Lines schema
jsonl_schema = rj.get_jsonl_schema(data)
# Convert to Orso schema
orso_schema = jsonl_to_orso_schema(jsonl_schema, schema_name="my_table")
print(f"Schema: {orso_schema.name}")
for col in orso_schema.columns:
print(f" {col.name}: {col.type}")
Performance
The JSON Lines reader achieves approximately 109K-201K rows/second on wide tables (50 columns), with higher throughput on narrower tables. With SIMD optimizations (AVX2/SSE2), the reader delivers:
- Full read (50 cols): ~109K rows/second
- Projection (10 cols): ~174-191K rows/second
- Projection (5 cols): ~181-201K rows/second
- Performance improvement: 19% faster with SIMD optimizations
The SIMD implementation uses:
- AVX2: Processes 32 bytes at once for newline detection and text parsing (preferred)
- SSE2: Processes 16 bytes at once (fallback)
- Scalar fallback: Byte-by-byte processing for non-x86 architectures
Draken Vectors Performance Benefits
The JSON Lines reader returns draken vectors instead of Python lists, providing:
- Faster processing: 2-5x faster for type-specific operations compared to Python lists
- Lower memory usage: 20-40% reduction in memory footprint
- Zero-copy Arrow interop: Seamless integration with PyArrow and other Arrow-based tools
- SIMD optimizations: Automatic vectorization on x86_64 and ARM platforms
- Type-specialized operations: Optimized kernels for int64, float64, string, and boolean operations
Comparison with Opteryx
On 50-column datasets, rugo is 2.7-5.6x faster than Opteryx 0.25.1 (release):
- Full read: 2.7-3.1x faster
- Projection (10 cols): 3.8-5.4x faster
- Projection (5 cols): 3.9-5.6x faster
Note: These benchmarks compare against Opteryx 0.25.1 (PyPI release) which uses a Python-based decoder with csimdjson. The main branch (0.26.0+) includes a new Cython-based fast decoder with SIMD optimizations that is expected to be significantly faster.
rugo's advantages:
- ✅ True projection pushdown: Only parse columns you need
- ✅ Memory-based: No file I/O overhead
- ✅ Zero-copy design: Direct memory-to-column conversion
- ✅ Consistent performance: Maintains throughput across dataset sizes
See PERFORMANCE_COMPARISON.md for detailed benchmark results, JSONL_SIMD_OPTIMIZATIONS.md for SIMD optimization details, and OPTERYX_DECODER_ANALYSIS.md for a technical analysis of Opteryx's Cython decoder and potential improvements.
See examples/read_jsonl.py and benchmarks/compare_opteryx_performance.py for complete demonstrations.
Optional Orso conversion
Install the optional extra (pip install rugo[orso]) to enable Orso helpers:
from rugo.converters.orso import extract_schema_only, rugo_to_orso_schema, jsonl_to_orso_schema
# Parquet to Orso
metadata = parquet_meta.read_metadata("example.parquet")
relation = rugo_to_orso_schema(metadata, "example_table")
schema_info = extract_schema_only(metadata)
# JSON Lines to Orso
import rugo.jsonl as rj
jsonl_schema = rj.get_jsonl_schema(data)
relation = jsonl_to_orso_schema(jsonl_schema, "jsonl_table")
See examples/orso_conversion.py and examples/jsonl_orso_conversion.py for complete walkthroughs.
Development
make update # install build and test tooling (uses uv under the hood)
make compile # rebuild the Cython extension with -O3 and C++17 flags
make test # run pytest-based validation (includes PyArrow comparisons)
make lint # run ruff, isort, pycln, cython-lint
make mypy # type checking
make compile clears previous build artefacts before rebuilding the extension in-place.
Project layout
rugo/
├── rugo/__init__.py
├── rugo/parquet/
│ ├── parquet_reader.pyx
│ ├── parquet_reader.pxd
│ ├── parquet_reader.cpp
│ ├── metadata.cpp
│ ├── metadata.hpp
│ ├── bloom_filter.cpp
│ ├── decode.cpp
│ ├── decode.hpp
│ ├── compression.cpp
│ ├── compression.hpp
│ ├── thrift.hpp
│ └── vendor/
├── rugo/jsonl_src/
│ ├── jsonl.pyx
│ ├── jsonl.pxd
│ ├── jsonl_reader.cpp
│ └── jsonl_reader.hpp
├── rugo/converters/orso.py
├── examples/
│ ├── read_parquet_metadata.py
│ ├── read_parquet_data.py
│ ├── read_jsonl.py
│ ├── jsonl_orso_conversion.py
│ ├── create_test_file.py
│ └── orso_conversion.py
├── scripts/
│ ├── generate_test_parquet.py
│ └── vendor_compression_libs.py
├── tests/
│ ├── data/
│ ├── test_all_metadata_fields.py
│ ├── test_bloom_filter.py
│ ├── test_decode.py
│ ├── test_jsonl.py
│ ├── test_jsonl_performance.py
│ ├── test_logical_types.py
│ ├── test_orso_converter.py
│ ├── test_statistics.py
│ └── requirements.txt
├── Makefile
├── pyproject.toml
├── setup.py
└── README.md
Status and limitations
- Active development status (alpha); APIs are evolving and may change between releases.
- Parquet: Metadata APIs are largely stable. The column-reading API is experimental and will change.
- JSON Lines: High-performance reader with SIMD optimizations (19% improvement) and basic type support (int64, double, string, boolean).
- Requires a C++17 compiler when installing from source or editing the Cython bindings.
- SIMD optimizations (AVX2/SSE2) are automatically enabled on x86-64 platforms.
- Bloom filter information is exposed via offsets and lengths; higher-level helpers are planned.
Future Format Support
rugo currently supports Parquet and JSON Lines. We are evaluating additional formats based on optimization opportunities and community demand. See FORMAT_SUPPORT_ANALYSIS.md for a detailed analysis of candidate formats (ORC, Avro, CSV, Arrow IPC) and FORMAT_ROADMAP.md for our planned roadmap. Feedback and feature requests are welcome!
License
Licensed under the Apache License 2.0. See LICENSE for full terms.
Maintainer
Created and maintained by Justin Joyce (@joocer). Contributions are welcome via issues and pull requests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rugo-0.1.20.tar.gz.
File metadata
- Download URL: rugo-0.1.20.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3df78b4078281c8bd36c8ee6eae337ffdf5383f498c805b1b36799f9f2fdf7c
|
|
| MD5 |
905463f29cb1a2344c582c5751e69489
|
|
| BLAKE2b-256 |
773110e40daa3e65fb171f853e882363f180ac845fcda3e786aac3af05a6a8ca
|
Provenance
The following attestation bundles were made for rugo-0.1.20.tar.gz:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20.tar.gz -
Subject digest:
f3df78b4078281c8bd36c8ee6eae337ffdf5383f498c805b1b36799f9f2fdf7c - Sigstore transparency entry: 641845873
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp313-cp313-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: rugo-0.1.20-cp313-cp313-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
869e5e699a55aa9191e209b2e3b4b0f16d864d47bcaa8fc132b70395f1ca6f58
|
|
| MD5 |
9fad8d3b4e82d1f19419db06851b76ed
|
|
| BLAKE2b-256 |
8b2e3b32a292af16c340daa2e5d045acb67212454227d2fca885f712847081f2
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp313-cp313-musllinux_1_2_aarch64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp313-cp313-musllinux_1_2_aarch64.whl -
Subject digest:
869e5e699a55aa9191e209b2e3b4b0f16d864d47bcaa8fc132b70395f1ca6f58 - Sigstore transparency entry: 641845879
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: rugo-0.1.20-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.13, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7756db491b475e83bc537be4be50b0670f2bb2f33216f6a059b96589eccc340b
|
|
| MD5 |
18b505ac54efb709ed109a6ac12d2df2
|
|
| BLAKE2b-256 |
e3928a6692bff42078408c57100f781f6074e5b3ff77f30ba4409a5decfbc39f
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
7756db491b475e83bc537be4be50b0670f2bb2f33216f6a059b96589eccc340b - Sigstore transparency entry: 641845887
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp312-cp312-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: rugo-0.1.20-cp312-cp312-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6001ae3698d232e7816d9fbb8d91b52aa890394ce41ad095f2ec1edb1543794b
|
|
| MD5 |
500d438c6772034a593e564411082c05
|
|
| BLAKE2b-256 |
44e3b19fb53e4ffebe7fdf8b93881733cd64d886eeda540b5e1e4ddfe55ad16f
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp312-cp312-musllinux_1_2_aarch64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp312-cp312-musllinux_1_2_aarch64.whl -
Subject digest:
6001ae3698d232e7816d9fbb8d91b52aa890394ce41ad095f2ec1edb1543794b - Sigstore transparency entry: 641845876
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp312-cp312-musllinux_1_1_x86_64.whl.
File metadata
- Download URL: rugo-0.1.20-cp312-cp312-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.12, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba9dc0e49e0d83f8ef54ef2891f6193e14de001f1c29abeb24027040b35b9026
|
|
| MD5 |
57b0af98185ac21504303ccfb803a511
|
|
| BLAKE2b-256 |
b5541a1020c4025564d17d731c617f169e011d9ca7645cc730db2f5317d2fb74
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp312-cp312-musllinux_1_1_x86_64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp312-cp312-musllinux_1_1_x86_64.whl -
Subject digest:
ba9dc0e49e0d83f8ef54ef2891f6193e14de001f1c29abeb24027040b35b9026 - Sigstore transparency entry: 641845881
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: rugo-0.1.20-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.12, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4aeddee58e46d9649874e9c77f94a857b4009385d8613e7e4801075a0cd382b
|
|
| MD5 |
5a4b8d360440b032fd8fb5dc8f5dc50a
|
|
| BLAKE2b-256 |
95c620e7f5702ad44b8221fc83cd8cb83a2c66379c2815b8424267333fb278f4
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
e4aeddee58e46d9649874e9c77f94a857b4009385d8613e7e4801075a0cd382b - Sigstore transparency entry: 641845884
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rugo-0.1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.1 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4bc6ad151b0006731aab552aa05ebf3d3124b41833d627db9159a9055fd34f3
|
|
| MD5 |
e9b395e7cf018fedbeb7d475fbe8d658
|
|
| BLAKE2b-256 |
ff4b02b309b25b836a664072a2a8b4a5fdbfab0f7f1bfabdf82929863197a4c4
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
c4bc6ad151b0006731aab552aa05ebf3d3124b41833d627db9159a9055fd34f3 - Sigstore transparency entry: 641845874
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: rugo-0.1.20-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 426.3 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cb46e63af8ce4ce9cd17956a84cc122623a96b22a7b50c2e79bcadee764e53a
|
|
| MD5 |
b2f4faa22e26055157a4c27529180a9d
|
|
| BLAKE2b-256 |
84e6bc6e7b655ec20dd2fc6c1a51daedc4dd199ff5d0b64c007e28ed9188100f
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
4cb46e63af8ce4ce9cd17956a84cc122623a96b22a7b50c2e79bcadee764e53a - Sigstore transparency entry: 641845875
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp311-cp311-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: rugo-0.1.20-cp311-cp311-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
058d5e385c3580c82afb0c8f9679a9d67d1d8eaabd2dcde22889f092dc24d233
|
|
| MD5 |
d0e6ea0f384d7453e81adcd8bd6ab385
|
|
| BLAKE2b-256 |
1873fafe3095e8dfff37685d724d6cf9aaee8918fd63d3f22a805f73cd843acd
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp311-cp311-musllinux_1_2_aarch64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp311-cp311-musllinux_1_2_aarch64.whl -
Subject digest:
058d5e385c3580c82afb0c8f9679a9d67d1d8eaabd2dcde22889f092dc24d233 - Sigstore transparency entry: 641845882
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp311-cp311-musllinux_1_1_x86_64.whl.
File metadata
- Download URL: rugo-0.1.20-cp311-cp311-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.11, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07b9b383aa437230ed08bf47a67f510e69aa1fc94c54b2d833ba7927a20de7e0
|
|
| MD5 |
7d0ddcbe6bea8e98273a7368321ec2e8
|
|
| BLAKE2b-256 |
20d295da1724131237d267ed6f7bcb00dda807d599e7df277a34eb94e9135edc
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp311-cp311-musllinux_1_1_x86_64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp311-cp311-musllinux_1_1_x86_64.whl -
Subject digest:
07b9b383aa437230ed08bf47a67f510e69aa1fc94c54b2d833ba7927a20de7e0 - Sigstore transparency entry: 641845883
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: rugo-0.1.20-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c571fd33a34f16fd95771aae77141e7f279c59a452205af2eed48f29e9596201
|
|
| MD5 |
5e8606bc30ce31b7f2327b3857f59b7c
|
|
| BLAKE2b-256 |
c50e5546a3e162ad50b30698934658486455d4ca82bdb5fe159f0ccecb566544
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
c571fd33a34f16fd95771aae77141e7f279c59a452205af2eed48f29e9596201 - Sigstore transparency entry: 641845880
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rugo-0.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.1 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a28a929169c037a1f6c093a84f66ed861fef3d8a4dde19db13d8bc0d39f95cd
|
|
| MD5 |
5d5df5fe9e245758d286da46efd37ac4
|
|
| BLAKE2b-256 |
c14834f50c475c1ea6e2a35f454be64e1a17e9448b968a1274ddcb8a6b5732c6
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
7a28a929169c037a1f6c093a84f66ed861fef3d8a4dde19db13d8bc0d39f95cd - Sigstore transparency entry: 641845890
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: rugo-0.1.20-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 426.1 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
396ccfb363e2495b8767dc20702a6d890362e59b7d7f0f51e790c373765a2a05
|
|
| MD5 |
b0da24bd8ae1c0309fb24a71b61058af
|
|
| BLAKE2b-256 |
fcf60dbbfed573d3ebfc35cf45f190faf1336bc2320dcd7690a6acd4f9335dd1
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
396ccfb363e2495b8767dc20702a6d890362e59b7d7f0f51e790c373765a2a05 - Sigstore transparency entry: 641845895
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp310-cp310-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: rugo-0.1.20-cp310-cp310-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f3f6ac158f2b053dec6307bbe1e084ee41c1b7f8b542941c551f2390f3f77f8
|
|
| MD5 |
fbf9cded284ee9435fbb92278658974a
|
|
| BLAKE2b-256 |
999ab45b1cf7dd3a8dae4df28b29e63d319da60ff9a0765b738068906b8a5200
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp310-cp310-musllinux_1_2_aarch64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp310-cp310-musllinux_1_2_aarch64.whl -
Subject digest:
8f3f6ac158f2b053dec6307bbe1e084ee41c1b7f8b542941c551f2390f3f77f8 - Sigstore transparency entry: 641845886
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp310-cp310-musllinux_1_1_x86_64.whl.
File metadata
- Download URL: rugo-0.1.20-cp310-cp310-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.10, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0841654eae66697314309abeb4b518aa2a99e8b1488721a40bca184675ad679c
|
|
| MD5 |
466ff317815c476aa2cc1937b4859955
|
|
| BLAKE2b-256 |
63ad180b72913a56b32f6ae482a744fd77c1640bf40c5fb897de9c3ea99bbdd1
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp310-cp310-musllinux_1_1_x86_64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp310-cp310-musllinux_1_1_x86_64.whl -
Subject digest:
0841654eae66697314309abeb4b518aa2a99e8b1488721a40bca184675ad679c - Sigstore transparency entry: 641845889
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: rugo-0.1.20-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 3.9 MB
- Tags: CPython 3.10, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85401b30ea6454e95d88e77380da38bef287bb3ee4c8138ea323f827fa479a74
|
|
| MD5 |
543e5dfffded644ddc5f879073c72103
|
|
| BLAKE2b-256 |
0a628917bc70920167364f4e1815b280c796f9077c95cec1bea41046f10b7bb3
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
85401b30ea6454e95d88e77380da38bef287bb3ee4c8138ea323f827fa479a74 - Sigstore transparency entry: 641845891
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rugo-0.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.1 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6f931882e4aeb2069abd92d4b0a2d35ea6671b7cc8d73f474b67ce071925b77
|
|
| MD5 |
006c763b741d9e2bb0fc38be6b4c9830
|
|
| BLAKE2b-256 |
2b168bc45ecfadef17f8ca654887becc4022a1919962cff6483a240ed309c70b
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
f6f931882e4aeb2069abd92d4b0a2d35ea6671b7cc8d73f474b67ce071925b77 - Sigstore transparency entry: 641845888
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rugo-0.1.20-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: rugo-0.1.20-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 422.6 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c93afc6a53ae4c6e9bc90c2d2015cc0a48e9ed5d8949718a99bf2b72eee7e57a
|
|
| MD5 |
799af599d7387091c76fbcb885312438
|
|
| BLAKE2b-256 |
a17319933f86f57fc0355a77f321cca562b0e12882a69a192c2a049158af8429
|
Provenance
The following attestation bundles were made for rugo-0.1.20-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
release.yml on mabel-dev/rugo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rugo-0.1.20-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
c93afc6a53ae4c6e9bc90c2d2015cc0a48e9ed5d8949718a99bf2b72eee7e57a - Sigstore transparency entry: 641845893
- Sigstore integration time:
-
Permalink:
mabel-dev/rugo@a4a3111f519a81f7af96805cac493479b543ad02 -
Branch / Tag:
refs/tags/0.1.20d - Owner: https://github.com/mabel-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a3111f519a81f7af96805cac493479b543ad02 -
Trigger Event:
release
-
Statement type: