Skip to main content

archive_r Python Bindings

⚠️ Development Status: This library is currently under development. The API may change without notice.

Overview

Python bindings for archive_r, a libarchive-based library for processing many archive formats. It streams entry data directly from the source to recursively read nested archives without extracting to temporary files or loading large in-memory buffers. The bindings expose a Pythonic iterator API with context manager support.


Installation

From PyPI

pip install archive_r_python

From Source

cd archive_r/bindings/python
pip install .

Development Installation (Editable Mode)

cd archive_r/bindings/python
pip install -e .

Building with Parent Build Script

cd archive_r
./build.sh --with-python

This builds the core library and Python bindings, placing artifacts in build/bindings/python/.


Basic Usage

Simple Traversal

import archive_r

# Context manager ensures proper resource cleanup
with archive_r.Traverser("test.zip") as traverser:
    for entry in traverser:
        print(f"Path: {entry.path} (depth={entry.depth})")
        if entry.is_file:
            print(f"  Size: {entry.size} bytes")

Reading Entry Content

import archive_r

with archive_r.Traverser("archive.tar.gz") as traverser:
    for entry in traverser:
        if entry.is_file and entry.path.endswith('.txt'):
            # Read full content
            content = entry.read()
            print(f"Content of {entry.path}:")
            print(content.decode('utf-8', errors='replace'))

Chunked Reading (Large Files)

import archive_r

with archive_r.Traverser("large_archive.zip") as traverser:
    for entry in traverser:
        if entry.is_file:
            # Read in 8KB chunks
            chunk_size = 8192
            total_bytes = 0
            while True:
                chunk = entry.read(chunk_size)
                if not chunk:
                    break
                total_bytes += len(chunk)
                # Process chunk...
            
            print(f"{entry.path}: {total_bytes} bytes read")

Searching in Entry Content

import archive_r

def search_in_entry(entry, keyword):
    """Stream search within entry content (buffer boundary aware)"""
    overlap = b''
    buffer_size = 8192
    keyword_bytes = keyword.encode('utf-8')
    
    while True:
        chunk = entry.read(buffer_size)
        if not chunk:
            break
        
        search_text = overlap + chunk
        if keyword_bytes in search_text:
            return True
        
        # Preserve tail for next iteration
        if len(chunk) >= len(keyword_bytes) - 1:
            overlap = chunk[-(len(keyword_bytes) - 1):]
        else:
            overlap = chunk
    
    return False

with archive_r.Traverser("documents.zip") as traverser:
    for entry in traverser:
        if entry.is_file and entry.path.endswith('.txt'):
            if search_in_entry(entry, "important"):
                print(f"Found keyword in: {entry.path}")

Controlling Archive Descent

import archive_r

with archive_r.Traverser("test.zip") as traverser:
    for entry in traverser:
        # Don't expand Office files (they are ZIP internally)
        if entry.path.endswith(('.docx', '.xlsx', '.pptx')):
            entry.set_descent(False)
        
        print(f"Path: {entry.path}, Will descend: {entry.descent_enabled}")

You can also disable automatic descent globally:

# Disable automatic descent for all entries
with archive_r.Traverser("test.zip", descend_archives=False) as traverser:
    for entry in traverser:
        # Manually enable descent for specific entries
        if entry.path.endswith('.tar.gz'):
            entry.set_descent(True)

⚠️ Note: Reading entry content automatically disables descent. Call entry.set_descent(True) if you need to descend after reading.


Path Representation

The Python bindings provide three ways to access entry paths:

with archive_r.Traverser("outer.zip") as traverser:
    for entry in traverser:
        # Full path including top-level archive
        # Example: "outer.zip/inner.tar/file.txt"
        print(f"path: {entry.path}")
        
        # Last element of path_hierarchy
        # Example: "inner.tar/file.txt"
        print(f"name: {entry.name}")
        
        # Path hierarchy as list
        # Example: ["outer.zip", "inner.tar/file.txt"]
        print(f"path_hierarchy: {entry.path_hierarchy}")

path_hierarchy is particularly useful when you need custom path separators or want to represent the nesting structure explicitly.


Metadata Access

Basic Metadata

Entry objects provide common metadata through properties:

with archive_r.Traverser("archive.tar") as traverser:
    for entry in traverser:
        print(f"Path: {entry.path}")
        print(f"  Type: {'file' if entry.is_file else 'directory'}")
        print(f"  Size: {entry.size} bytes")
        print(f"  Depth: {entry.depth}")

Extended Metadata

For additional metadata (permissions, ownership, timestamps), specify metadata_keys:

with archive_r.Traverser("archive.tar", metadata_keys=["uid", "gid", "mtime", "mode"]) as traverser:
    for entry in traverser:
        # Retrieve all specified metadata as dictionary
        metadata = entry.metadata()
        print(f"{entry.path}:")
        print(f"  UID: {metadata.get('uid')}")
        print(f"  GID: {metadata.get('gid')}")
        print(f"  Mode: {oct(metadata.get('mode', 0))}")
        
        # Or retrieve specific metadata
        mtime = entry.find_metadata("mtime")
        if mtime is not None:
            print(f"  Modified: {mtime}")

Available metadata keys depend on the archive format. Common keys include:

  • uid, gid: User/group ID
  • mtime, atime, ctime: Timestamps (Unix time)
  • mode: File permissions
  • uname, gname: User/group names
  • hardlink, symlink: Link targets

Processing Split Archives

For split archive files (e.g., .zip.001, .zip.002), use set_multi_volume_group():

import archive_r

with archive_r.Traverser("container.tar") as traverser:
    for entry in traverser:
        # Detect split archive parts
        if '.part' in entry.path:
            # Extract base name (e.g., "archive.zip.part001" → "archive.zip")
            pos = entry.path.rfind('.part')
            base_name = entry.path[:pos]
            entry.set_multi_volume_group(base_name)
        
        # After parent traversal, grouped parts are merged and expanded

Format Specification

By default, all formats supported by libarchive are enabled. To restrict to specific formats:

# Enable only ZIP and TAR
with archive_r.Traverser("test.zip", formats=["zip", "tar"]) as traverser:
    for entry in traverser:
        print(entry.path)

Common format names: "7zip", "ar", "cab", "cpio", "iso9660", "lha", "rar", "tar", "warc", "xar", "zip"

💡 Tip: Exclude pseudo-formats like "mtree" and "raw" if you encounter false positives on non-archive files.


Custom Stream Factories

You can provide custom stream objects (file-like objects with read() method) to override the default file opening behavior:

import archive_r
import io

# Register a custom stream factory
def custom_stream_factory(path):
    """Return a file-like object for the given path"""
    if path == "special_file.bin":
        # Return custom data source
        return io.BytesIO(b"custom content")
    # Return None to use default file opening
    return None

archive_r.register_stream_factory(custom_stream_factory)

with archive_r.Traverser("test.zip") as traverser:
    for entry in traverser:
        # When traverser needs to open "special_file.bin",
        # your factory will provide the BytesIO stream
        pass

Stream objects must provide:

  • read(size): Read up to size bytes
  • Optional: seek(offset, whence), tell() for seekable streams
  • Optional: rewind() (defaults to seek(0, 0) if not provided)

Error Handling

Fault Callbacks

Data errors (corrupted archives, I/O failures) are reported via callbacks without stopping traversal:

import archive_r

def fault_handler(fault_info):
    """Called when data errors occur during traversal"""
    print(f"Warning at {fault_info['hierarchy']}: {fault_info['message']}")
    if fault_info.get('errno'):
        print(f"  Error code: {fault_info['errno']}")

archive_r.on_fault(fault_handler)

with archive_r.Traverser("potentially_corrupted.zip") as traverser:
    for entry in traverser:
        # Valid entries are processed normally
        # Corrupted entries trigger fault_handler
        print(entry.path)

Read Errors

Errors during read() raise exceptions:

try:
    with archive_r.Traverser("test.zip") as traverser:
        for entry in traverser:
            if entry.is_file:
                content = entry.read()
except RuntimeError as e:
    print(f"Read error: {e}")

Thread Safety

The Python bindings follow the same thread safety constraints as the C++ core:

  • Thread-safe: Each thread can create and use its own Traverser instance independently
  • Not thread-safe: A single Traverser or Entry instance must not be shared across threads

Example

import threading
import archive_r

# ✓ SAFE: Each thread has its own Traverser
def worker():
    with archive_r.Traverser("archive.tar.gz") as traverser:
        for entry in traverser:
            # Process entry...
            pass

t1 = threading.Thread(target=worker)
t2 = threading.Thread(target=worker)
t1.start()
t2.start()
t1.join()
t2.join()

# ✗ UNSAFE: Sharing a single Traverser instance across threads
shared_traverser = archive_r.Traverser("archive.tar.gz")
def unsafe_worker():
    for entry in shared_traverser:  # Race condition!
        pass

# Don't do this!
# t1 = threading.Thread(target=unsafe_worker)
# t2 = threading.Thread(target=unsafe_worker)

Additionally:

  • Global registration functions (register_stream_factory, on_fault) should be called during single-threaded initialization
  • Entry objects should not be shared between threads (they are tied to the Traverser's internal state)

Advanced Examples

Full Example: Recursive Archive Analyzer

import archive_r
import sys
from collections import defaultdict

def analyze_archive(archive_path):
    """Analyze archive contents and print statistics"""
    stats = defaultdict(int)
    file_types = defaultdict(int)
    
    with archive_r.Traverser(archive_path, metadata_keys=["mtime"]) as traverser:
        for entry in traverser:
            stats['total_entries'] += 1
            
            if entry.is_file:
                stats['files'] += 1
                stats['total_size'] += entry.size
                
                # Count by extension
                if '.' in entry.name:
                    ext = entry.name.rsplit('.', 1)[1]
                    file_types[ext] += 1
                
                # Find largest file
                if entry.size > stats.get('max_file_size', 0):
                    stats['max_file_size'] = entry.size
                    stats['max_file_path'] = entry.path
            else:
                stats['directories'] += 1
            
            # Track maximum depth
            if entry.depth > stats.get('max_depth', 0):
                stats['max_depth'] = entry.depth
    
    # Print results
    print(f"\nArchive Analysis: {archive_path}")
    print(f"  Total entries: {stats['total_entries']}")
    print(f"  Files: {stats['files']}")
    print(f"  Directories: {stats['directories']}")
    print(f"  Total size: {stats['total_size']:,} bytes")
    print(f"  Maximum depth: {stats['max_depth']}")
    
    if 'max_file_path' in stats:
        print(f"  Largest file: {stats['max_file_path']} ({stats['max_file_size']:,} bytes)")
    
    if file_types:
        print("\n  File types:")
        for ext, count in sorted(file_types.items(), key=lambda x: x[1], reverse=True)[:10]:
            print(f"    .{ext}: {count}")

if __name__ == '__main__':
    if len(sys.argv) < 2:
        print("Usage: python analyze.py <archive_path>")
        sys.exit(1)
    
    analyze_archive(sys.argv[1])

Testing

Run the Python binding tests:

cd archive_r/bindings/python
python -m unittest discover test

Or use the project-wide test runner:

cd archive_r
./bindings/python/run_binding_tests.sh

API Reference

Module: archive_r

Class: Traverser

Constructor:

Traverser(
    roots,                           # str or list of str/list (path hierarchy)
    formats=None,                    # list of format names (default: all)
    descend_archives=True,           # automatically expand archives
    metadata_keys=None,              # list of metadata keys to capture
    passphrases=None                 # list of passphrases for encrypted archives
)

Methods:

  • __iter__(): Returns self (iterator protocol)
  • __next__(): Returns next Entry or raises StopIteration
  • __enter__(): Context manager entry (returns self)
  • __exit__(exc_type, exc_val, exc_tb): Context manager exit

Class: Entry

Properties:

  • path: Full path string (read-only)
  • name: Last element of path hierarchy (read-only)
  • path_hierarchy: List representation of path (read-only)
  • depth: Nesting depth (read-only)
  • is_file: True if entry is a file (read-only)
  • size: File size in bytes, 0 for directories (read-only)
  • descent_enabled: Whether this entry will be expanded as an archive (read-only)

Methods:

  • read(size=None): Read entry content (bytes). If size is omitted, reads all remaining data
  • set_descent(enabled): Enable/disable archive expansion for this entry
  • set_multi_volume_group(group_name): Register this entry as part of a split archive group
  • metadata(): Return dictionary of all captured metadata
  • find_metadata(key): Return value for specific metadata key, or None if not found

Function: register_stream_factory

archive_r.register_stream_factory(factory_func)

Register a callback to provide custom stream objects for file access.

Parameters:

  • factory_func: Callable that takes a file path (str) and returns a file-like object or None

Stream object requirements:

  • Must provide read(size) method
  • Optional: seek(offset, whence), tell(), rewind()

Function: on_fault

archive_r.on_fault(callback)

Register a callback to receive fault notifications during traversal.

Parameters:

  • callback: Callable that takes a dict with keys:
    • hierarchy: List of path components where fault occurred
    • message: Human-readable error description
    • errno: Optional error number from system calls

Packaging

Building Wheels

cd archive_r
./build.sh --package-python

This creates wheel (.whl) and source distribution (.tar.gz) in build/bindings/python/dist/.

Manual Packaging

cd bindings/python
python setup.py sdist bdist_wheel

Requirements

  • Python 3.8 or later
  • libarchive 3.x (runtime dependency)
  • setuptools, wheel (build dependencies)
  • pybind11 >= 2.6.0 (build dependency, automatically vendored during packaging)

License

The Python bindings are distributed under the MIT License, consistent with the archive_r core library.

Third-Party Licenses

  • pybind11: BSD-style License (used for C++/Python interfacing)
  • libarchive: New BSD License (runtime dependency)

See Also


Download files

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

Source Distribution

archive_r_python-0.1.35.tar.gz (92.6 kB view details)

Uploaded Source

Built Distributions

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

archive_r_python-0.1.35-cp314-cp314-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.14Windows x86-64

archive_r_python-0.1.35-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

archive_r_python-0.1.35-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

archive_r_python-0.1.35-cp314-cp314-macosx_15_0_x86_64.whl (979.2 kB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

archive_r_python-0.1.35-cp314-cp314-macosx_15_0_arm64.whl (931.5 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

archive_r_python-0.1.35-cp314-cp314-macosx_11_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

archive_r_python-0.1.35-cp314-cp314-macosx_11_0_universal2.whl (6.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ universal2 (ARM64, x86-64)

archive_r_python-0.1.35-cp313-cp313-win_amd64.whl (6.7 MB view details)

Uploaded CPython 3.13Windows x86-64

archive_r_python-0.1.35-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

archive_r_python-0.1.35-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

archive_r_python-0.1.35-cp313-cp313-macosx_11_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

archive_r_python-0.1.35-cp313-cp313-macosx_11_0_universal2.whl (6.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ universal2 (ARM64, x86-64)

archive_r_python-0.1.35-cp312-cp312-win_amd64.whl (6.7 MB view details)

Uploaded CPython 3.12Windows x86-64

archive_r_python-0.1.35-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

archive_r_python-0.1.35-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

archive_r_python-0.1.35-cp312-cp312-macosx_11_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

archive_r_python-0.1.35-cp312-cp312-macosx_11_0_universal2.whl (6.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ universal2 (ARM64, x86-64)

archive_r_python-0.1.35-cp311-cp311-win_amd64.whl (6.7 MB view details)

Uploaded CPython 3.11Windows x86-64

archive_r_python-0.1.35-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

archive_r_python-0.1.35-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

archive_r_python-0.1.35-cp311-cp311-macosx_11_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

archive_r_python-0.1.35-cp311-cp311-macosx_11_0_universal2.whl (6.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ universal2 (ARM64, x86-64)

archive_r_python-0.1.35-cp310-cp310-win_amd64.whl (4.7 MB view details)

Uploaded CPython 3.10Windows x86-64

archive_r_python-0.1.35-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

archive_r_python-0.1.35-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

archive_r_python-0.1.35-cp310-cp310-macosx_11_0_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

archive_r_python-0.1.35-cp310-cp310-macosx_11_0_universal2.whl (6.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ universal2 (ARM64, x86-64)

File details

Details for the file archive_r_python-0.1.35.tar.gz.

File metadata

  • Download URL: archive_r_python-0.1.35.tar.gz
  • Upload date:
  • Size: 92.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for archive_r_python-0.1.35.tar.gz
Algorithm Hash digest
SHA256 ad995ab47a2d77cece56e33e369936481ab3e19f5c4577f75035353d3a5cc35b
MD5 3052aa0f0d1ba79c75031cda3c7dc17d
BLAKE2b-256 1c3f389d616846f85d64cac82eea6663ef9b70834ecd641842e99635bf6a8c4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35.tar.gz:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f03a8c4d374ca8e6fb69d6a03b4c216719b71c9c5826f65056ef2e3840289540
MD5 8d575259711222f0d6db767f32ed2fe5
BLAKE2b-256 c995793ad610322984edb26eb98469dca4f46ece7e1a7d979663e5c257b217e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp314-cp314-win_amd64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2719cc49b78d32ff582572fdc3f935968d060111288fa9e3e1a32d0328ce0407
MD5 5f2f39dd7909ee6cbb2fbd7feb30e3a7
BLAKE2b-256 786d9a3e77f020ae305d11105d240bd8c5b93a8c9faf24fa03378b0de34b4eee

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 116b948508f5fc2260156ff7ea965611208170d324c8cbf3093a1c11e9562520
MD5 c1c8ee377e76936f02ce989dcd4c2344
BLAKE2b-256 dd0d2440fcfed32660ce8e85af0e34b8578165bb2b01ac5a0aa6025d0c3a527b

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 2ab745cc1cd863ca66d3b39bef6b2f2caa07601106790155d5d3b331fa7f2459
MD5 f3f02c1128082d08c4e275dbf4245895
BLAKE2b-256 df69dfe499c35478c3807aa160c9ed505e75d20f5dafb63359b3265c1a7a8c92

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp314-cp314-macosx_15_0_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 32ecd97b1220d2513700f2843d6180277effd6639e67bb12940e3bb512a36caa
MD5 6ca804690854f9b84fb79dceb77f15f2
BLAKE2b-256 3b9e8a3f45ba618ff38c8f3bc7a377302c5b909daf5debc1778dd6089919883f

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp314-cp314-macosx_15_0_arm64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 18aa1d6beb17d307c416ee5b9ce0a8178ccd3c2a9ad9217added6b37363fcd3b
MD5 7e2f473297a99a7ce8ca796e24df54b6
BLAKE2b-256 0c6fb18cf06a62f612fb8b37c5a8451961dafc2ba70c1325c9e3e2a07d2ae799

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp314-cp314-macosx_11_0_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp314-cp314-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp314-cp314-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 a3819407101784117c58fcd5a24544ba4065f6baa1a157ae55fe462771af3a90
MD5 1632327fb16814c894b74f370253401f
BLAKE2b-256 53f464f45122a9a8de6d4daa1f8bb0008cc4e37e502dbc10cea6a88f072024a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp314-cp314-macosx_11_0_universal2.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 18c7ba7c06e4ccada9133c428b98c54c077532dc39e8cc304b37ce14238189ab
MD5 d710b0bbb85a96c8ae2b57f2e5318437
BLAKE2b-256 4d763e67cf5671716d2190640150068b676bfeb3c9d3432834e56ae7021fd1f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp313-cp313-win_amd64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 af461709f8e40c06c737cd71579d3ffff16f2a647e87cb6839285ac54984bbc3
MD5 3f416adbeca855eec1873b526a451e06
BLAKE2b-256 be2a788f1e1aff6260c705279735b59e367cde4b10a63722ba161cdff6fff9a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cf2d2fa0e31f04c30bbd5a9b33413f75c2898eca54bfbdbde7aea5b5d5a97663
MD5 897296e6d17fd8967d7c5aa89d771013
BLAKE2b-256 25203aad64f85ae683a9c5e85b416a6bf4d6d812ac8aa84e2391a77ba885f7ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 7aafcd02518136ced3ff5d44d6c7c39d5fa0242ff491f791e6d252fb63ba09ad
MD5 541630402c43d805b6b06413a2d3aa4d
BLAKE2b-256 eaa461bbd0a21a7e372ae988dd3c385f338c0faf1fe868bd50659ba43a8b9bad

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp313-cp313-macosx_11_0_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp313-cp313-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp313-cp313-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 faed8338406fe15dc990ce064e9df1a730c898f6c1ddc81de5234a5d5e416de4
MD5 83b6d5649469ac410ae07a304f1b730a
BLAKE2b-256 8aff7e36fb4ac0656ae621f90ddf69d7a5100e45a406f984973f538dacb090e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp313-cp313-macosx_11_0_universal2.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 92cb43602a1d689ba6c77f07162eac58a1435af97e50af0cdc60840682ab569d
MD5 9eae1d3a62092c7c0eef219b80a0667a
BLAKE2b-256 77684fec25c377e2051adb248378cab326b2941451a1f9beb03f7715c941bd65

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp312-cp312-win_amd64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9f4d71824b2dca2fc70fce025bbed1a6048231aa4681d37c018aed1d1c3dc44
MD5 0246d49976afcfee3b322762fb8164fd
BLAKE2b-256 820e30b58ad1a17775d30eb9a88bab7b318d22077e32815b7b63356d372c9c28

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2b87665c50ad373ea6da1231455e1932601175bf476bc0f167cf822ebfebe6a6
MD5 e5462d9c91a16e41453c66a083f0b985
BLAKE2b-256 4035a63a8c4c6bf02ab60dd7a135e9c05f8e75cf602c8a7fd7b63658941ffd26

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a83ce5b3216320f70d4d4b1316c873db36c04f28335512a1989d8627989a59b2
MD5 981b1d6626322ee629e398fc72b830ac
BLAKE2b-256 4aa1e6af81ddfc7ed97710c8dce57d245537a63822196898e20b1ea9079299a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp312-cp312-macosx_11_0_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp312-cp312-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp312-cp312-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 2248933175eab7306e6ef8700ec1c2c9a4145215db0574fabc2433e4c8dd69d0
MD5 a005319ee46b617961c68b60eec574fd
BLAKE2b-256 f99d5c31c11a8c886f3e7a20cbb0f381cf60789029e086046d27218f7ba5a601

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp312-cp312-macosx_11_0_universal2.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8ead615675f0a5cb6764fed01b8648997b5da217aa3692464492d54ed512305b
MD5 f5096fcb62a625cf2e4ad9b042b42e9e
BLAKE2b-256 4c169887fe8655a81a98113650ef9696edd65f4a921fa8f583345381c118c7b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp311-cp311-win_amd64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 683272865097cd0789aa088f5d97bb4de7506921d918f3bfdf7cc58b71c517b3
MD5 9e76c480d51c0c37d29b63ce358bd832
BLAKE2b-256 ca153313c2e6511677aed32e9a243225a9b525be6a3de09a3fb9fe6a9bef6ef7

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d3bb735b98ee883d4b1480b5fc81f9dfef44a5c41c6f93b64ef46ccd6c32c5c8
MD5 2cb97c951738e3245e180d22110eac18
BLAKE2b-256 7c1f0a04e1b25b39b1660f3fdc85280c007407ab31f99f5b85f54722c21d8f33

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 cc8fc715a7113e88a18166d57797c5a1b9273c28b00568a7b4e4427646d6c1bd
MD5 4ebe1e1dc44cdf461679fed373ac5bdb
BLAKE2b-256 0081ab800b65b20ad9c31372f5c09e8a0b5bdd3834a254a7aa5f649e592e4494

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp311-cp311-macosx_11_0_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp311-cp311-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp311-cp311-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 c4173a55486a350d0e58087232883ada01ec49135eebb78692d3b696132bb5ad
MD5 b91d2ffbf7e7c738ea80dfd9cf41ef41
BLAKE2b-256 30f8ca56619234c0458e21467d9835bc217a540da512804440b896542f75afcc

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp311-cp311-macosx_11_0_universal2.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 af1568cb6d0b3d2e344bab6bcf90ae1bf4b009cb85c67cf375b584e22a5fbc2e
MD5 cda14f6564ba00df4723cd85447d7308
BLAKE2b-256 519bc35641651b4dfcd145090c8bc86ad7f435190a59369addb80f23e9306365

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp310-cp310-win_amd64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fb482ff0eaf5ae394e2a7f0438c5305b11d4bedadba0acf6ea96f7cb7c30681b
MD5 6983235fcfbbef94d384be51998ba8f3
BLAKE2b-256 0f10af7f285b8ee51ce5eeec72cbfb5529ee2553667aa1adcf7dfa8a39ffe132

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fa2d2d439609a52b1996420b6abcff2930b78b586a1ba714a577f3342f03951c
MD5 47203c599d2e678a5bde97ffb884ab4b
BLAKE2b-256 e20ae009b510fc83b4543841b6b812b26eabb55f74c2c8f90ca096ac6b3dc018

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 8050376449635a8c77d16b9071057ba3ec495fd5952b19071e59559c566c128e
MD5 9da4c6feb4cde86ea110ad953691a5b0
BLAKE2b-256 10ef2ee405981dadf765daf88d2cdffe0fcb60a31afe23dba251015538d1d0fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp310-cp310-macosx_11_0_x86_64.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_r_python-0.1.35-cp310-cp310-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for archive_r_python-0.1.35-cp310-cp310-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 8f1ceed22e558f935273efe3b2b7240605f26f29129a9e1cc3033fbf347e3977
MD5 9bad95b46d1e3abea810b6b2e9963764
BLAKE2b-256 391429fafe45faf57cd248576d9ae405afa0586e2b19c9932ab9d017f103041c

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_r_python-0.1.35-cp310-cp310-macosx_11_0_universal2.whl:

Publisher: release.yml on Raizo-TCS/archive_r

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.35 This release

28 files

0.1.34

28 files

0.1.33

28 files

0.1.32

28 files

0.1.31

28 files

0.1.30

28 files

0.1.29

28 files

0.1.28

28 files

0.1.27

28 files

0.1.26

28 files

0.1.25

28 files

0.1.24

28 files

0.1.23

28 files

0.1.22

28 files

0.1.21

28 files

0.1.20

28 files

0.1.19

28 files

0.1.18

28 files

0.1.17

28 files

0.1.16

28 files

0.1.15

28 files

0.1.14

28 files

0.1.13

28 files

0.1.12

28 files

0.1.11

28 files

0.1.10

28 files

0.1.9

28 files

0.1.8

28 files

0.1.7

28 files

0.1.6

28 files

0.1.5

25 files

0.1.3

12 files

0.1.2

5 files

0.1.1

5 files

0.1.0

5 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