Skip to main content

Python bindings for rankops (Rust) — fusion and reranking for hybrid search.

Project description

rankops-python

Python bindings for rankops (Rust) -- fusion and reranking for hybrid search.

Installation

From source

# Using uv (recommended)
cd rankops-python
uv venv
source .venv/bin/activate
uv tool install maturin
maturin develop --uv

# Or using pip
pip install maturin
maturin develop --release

Quick Start

import rankops

# BM25 results (keyword search)
bm25 = [("doc_1", 87.5), ("doc_2", 82.3), ("doc_3", 78.1)]

# Dense embedding results (semantic search)
dense = [("doc_2", 0.92), ("doc_1", 0.88), ("doc_4", 0.85)]

# RRF finds consensus: doc_2 appears high in both lists
fused = rankops.rrf(bm25, dense, k=60)
# [("doc_2", 0.033), ("doc_1", 0.032), ("doc_3", 0.016), ("doc_4", 0.016)]

Why RRF? BM25 scores are 0-100, dense scores are 0-1. RRF ignores scores and uses only rank positions, so no normalization needed.

API Reference

Rank-based Fusion (ignores scores)

These methods work with any score scale because they only use rank positions:

RRF (Reciprocal Rank Fusion)

# Two lists
fused = rankops.rrf(bm25, dense, k=60, top_k=10)

# Multiple lists
fused = rankops.rrf_multi([bm25, dense, sparse], k=60, top_k=10)

When to use: Different score scales (BM25: 0-100, dense: 0-1), zero-configuration needs.

ISR (Inverse Square Rank)

fused = rankops.isr(bm25, dense, k=1, top_k=10)
fused = rankops.isr_multi([bm25, dense], k=1, top_k=10)

When to use: When lower ranks should contribute more relative to top positions.

Borda Count

fused = rankops.borda(bm25, dense, top_k=10)
fused = rankops.borda_multi([bm25, dense], top_k=10)

When to use: Simple voting-based fusion.

Score-based Fusion (uses scores)

These methods require scores on compatible scales:

CombSUM

fused = rankops.combsum(bm25, dense, top_k=10)
fused = rankops.combsum_multi([bm25, dense], top_k=10)

When to use: Scores on the same scale (both 0-1, both cosine similarity).

CombMNZ

fused = rankops.combmnz(bm25, dense, top_k=10)
fused = rankops.combmnz_multi([bm25, dense], top_k=10)

When to use: Same scale as CombSUM, but want to reward documents appearing in multiple lists.

Weighted Fusion

fused = rankops.weighted(
    bm25, dense,
    weight_a=0.7,  # Weight for first list
    weight_b=0.3,  # Weight for second list
    normalize=True,  # Normalize scores to [0,1] before combining
    top_k=10
)

When to use: Trust one retriever more than another.

DBSF (Distribution-Based Score Fusion)

fused = rankops.dbsf(bm25, dense, top_k=10)
fused = rankops.dbsf_multi([bm25, dense], top_k=10)

When to use: Score distributions differ significantly between retrievers.

Standardized Fusion (ERANK-style)

# Two lists with default clipping [-3.0, 3.0]
fused = rankops.standardized(bm25, dense, clip_range=(-3.0, 3.0), top_k=10)

# Multiple lists
fused = rankops.standardized_multi(
    [bm25, dense],
    clip_min=-3.0,
    clip_max=3.0,
    top_k=10
)

When to use: Different score distributions, need configurable outlier handling, have negative scores.

Additive Multi-Task Fusion (ResFlow-style)

# E-commerce example: CTR + CTCVR with 1:20 weight ratio
fused = rankops.additive_multi_task(
    ctr_scores,      # Click-through rate predictions
    ctcvr_scores,    # Click-to-conversion rate predictions
    weight_a=1.0,    # Weight for first task
    weight_b=20.0,   # Weight for second task (20x more important)
    normalization="minmax",  # Normalization method: "zscore", "minmax", "sum", "rank", "none"
    top_k=10
)

When to use: Combining multiple ranking tasks (e.g., CTR + CTCVR in e-commerce), tasks have different scales but you know relative importance.

Explainability

Get detailed provenance information showing which retrievers contributed to each result:

import rankops

bm25 = [("doc_1", 87.5), ("doc_2", 82.3)]
dense = [("doc_2", 0.92), ("doc_3", 0.88)]

# Get results with full provenance
explained = rankops.rrf_explain(
    [bm25, dense],
    [rankops.RetrieverIdPy("bm25"), rankops.RetrieverIdPy("dense")],
    k=60
)

# Inspect first result
result = explained[0]
print(f"Document: {result.id}")
print(f"Score: {result.score}")
print(f"Rank: {result.rank}")
print(f"Consensus: {result.explanation.consensus_score}")

# See which retrievers contributed
for source in result.explanation.sources:
    print(f"  {source.retriever_id.id}: rank={source.original_rank}, contribution={source.contribution}")

Available explainability functions:

  • rrf_explain() - RRF with explainability
  • combsum_explain() - CombSUM with explainability
  • combmnz_explain() - CombMNZ with explainability
  • dbsf_explain() - DBSF with explainability

Result Validation

Validate fusion results to ensure they meet expected properties:

import rankops

fused = rankops.rrf(bm25, dense, k=60)

# Comprehensive validation
result = rankops.validate(fused, check_non_negative=False, max_results=10)
if not result.is_valid:
    print(f"Validation errors: {result.errors}")
if result.warnings:
    print(f"Warnings: {result.warnings}")

# Individual checks
sorted_check = rankops.validate_sorted(fused)
dup_check = rankops.validate_no_duplicates(fused)
finite_check = rankops.validate_finite_scores(fused)
non_neg_check = rankops.validate_non_negative_scores(fused)
bounds_check = rankops.validate_bounds(fused, max_results=10)

Validation checks:

  • Sorted: Results are sorted by score (descending)
  • No duplicates: Each document ID appears only once
  • Finite scores: No NaN or Infinity values
  • Non-negative (optional): Warns on negative scores when check_non_negative=True
  • Max results (optional): Warns if result count exceeds max_results

Configuration Objects

For advanced usage, you can use configuration objects:

config = rankops.RrfConfigPy(k=100)

# Other config types available:
# - FusionConfigPy (for CombSUM/CombMNZ/Borda/DBSF)
# - WeightedConfigPy (for weighted fusion)
# - StandardizedConfigPy (for standardized fusion)
# - AdditiveMultiTaskConfigPy (for additive multi-task fusion)

Complete Example: RAG Pipeline

import rankops

def rag_pipeline(query: str):
    # Step 1: Retrieve from multiple sources
    bm25_results = [
        ("doc_123", 87.5),
        ("doc_456", 82.3),
        ("doc_789", 78.1),
    ]

    dense_results = [
        ("doc_456", 0.92),
        ("doc_123", 0.88),
        ("doc_999", 0.85),
    ]

    # Step 2: Fuse results (RRF finds consensus)
    fused = rankops.rrf_multi(
        [bm25_results, dense_results],
        k=60,
        top_k=100  # Top 100 for reranking
    )

    # Step 3: Rerank with cross-encoder (expensive, so only top 100)
    # reranked = cross_encoder_rerank([id for id, _ in fused], query)

    # Step 4: Return top 10 for LLM context
    return [id for id, _ in fused[:10]]

Type Hints and IDE Support

The package includes type stubs (.pyi files) for full type checking support with:

  • mypy: mypy your_code.py
  • pyright: Built into VS Code and other editors
  • PyCharm: Automatic type checking

All functions are fully typed:

from typing import List, Tuple

RankedList = List[Tuple[str, float]]
fused: RankedList = rankops.rrf(bm25, dense, k=60)

Error Handling

# Most functions don't error - they return empty list for edge cases
fused = rankops.rrf([], [])  # Returns []

# Validation functions return ValidationResult with errors/warnings
result = rankops.validate(fused, check_non_negative=False, max_results=10)
if not result.is_valid:
    for error in result.errors:
        print(f"Error: {error}")

Performance

Python bindings add minimal overhead over native Rust:

  • RRF (100 items): ~15us (vs 13us in Rust)
  • RRF (1000 items): ~180us (vs 159us in Rust)

Overhead comes from Python object conversion and result serialization (~1-2us per call).

See Also

License

MIT OR Apache-2.0

Project details


Download files

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

Source Distribution

rankops-0.1.20.tar.gz (164.1 kB view details)

Uploaded Source

Built Distributions

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

rankops-0.1.20-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (396.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rankops-0.1.20-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (384.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (379.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp314-cp314-win_amd64.whl (244.0 kB view details)

Uploaded CPython 3.14Windows x86-64

rankops-0.1.20-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (391.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rankops-0.1.20-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (381.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp314-cp314-macosx_11_0_arm64.whl (346.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rankops-0.1.20-cp314-cp314-macosx_10_12_x86_64.whl (361.0 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rankops-0.1.20-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (379.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp313-cp313-win_amd64.whl (243.5 kB view details)

Uploaded CPython 3.13Windows x86-64

rankops-0.1.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (391.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rankops-0.1.20-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (380.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp313-cp313-macosx_11_0_arm64.whl (346.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rankops-0.1.20-cp313-cp313-macosx_10_12_x86_64.whl (360.7 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rankops-0.1.20-cp312-cp312-win_amd64.whl (243.7 kB view details)

Uploaded CPython 3.12Windows x86-64

rankops-0.1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (391.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rankops-0.1.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (380.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp312-cp312-macosx_11_0_arm64.whl (347.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rankops-0.1.20-cp312-cp312-macosx_10_12_x86_64.whl (361.1 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rankops-0.1.20-cp311-cp311-win_amd64.whl (245.3 kB view details)

Uploaded CPython 3.11Windows x86-64

rankops-0.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (394.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rankops-0.1.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (382.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp311-cp311-macosx_11_0_arm64.whl (349.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rankops-0.1.20-cp311-cp311-macosx_10_12_x86_64.whl (364.3 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rankops-0.1.20-cp310-cp310-win_amd64.whl (245.1 kB view details)

Uploaded CPython 3.10Windows x86-64

rankops-0.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (394.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rankops-0.1.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (382.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (397.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

rankops-0.1.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (385.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (397.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

rankops-0.1.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (385.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

rankops-0.1.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (386.4 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

File details

Details for the file rankops-0.1.20.tar.gz.

File metadata

  • Download URL: rankops-0.1.20.tar.gz
  • Upload date:
  • Size: 164.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rankops-0.1.20.tar.gz
Algorithm Hash digest
SHA256 511dafa25b5cf7f9f7c69b7b05ab63f350cda9ed56854d4b8db7bf837f7a1219
MD5 6ee0e92d0ca47d66f8bf0401789c4231
BLAKE2b-256 21ff41277d73874a68e6f11640432019cb79d19e70190a85c7461a9df0963a50

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20.tar.gz:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3615151899cab2fc58a5ae3d957753a7ccf0069b2817c251b9e216eeb2f93281
MD5 309b0a64958920e3d46ac19325e263f7
BLAKE2b-256 6305fe675b6f8d385d1c2cacd9f01e969f00c8300db41a5eb98a33715eba77b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f4fe40d67fa0be3bfff9c44ae81145bf5e72145c915f82d39b9c7e480ddcf5b3
MD5 0153210d20a87adceef0307229a5339d
BLAKE2b-256 fb50089d8ef1768ab5ad302216ec4912b9f3f54c83851528bb76da879ec67c41

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0f66d7229dc7eaeedfc06def79da9d206102bf696dd1fde6c3cc38b115bdb9e1
MD5 a0c5ed8a918837c3ca7c43e8c29c36fe
BLAKE2b-256 3ac8c88a111077fb84a7c5e1a27d8f46a733963c859b5fd5ea354dc47ac7e45c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: rankops-0.1.20-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 244.0 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rankops-0.1.20-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 29340958ad7b410bf81fe954b49f855801823fff32488fd9a7ecc95d33ddca2f
MD5 09926aa918ef58444f3abf5192540f82
BLAKE2b-256 e6ed00d0d5b4aecbc2f355412c43c83eddc2394fc8c6af1696f17f9be7c3c384

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp314-cp314-win_amd64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 195472946071785896d8afccd39408a7c1229e44f4e970aaa531075169ffd755
MD5 b18dd440d3142ec670ec25963132ac0f
BLAKE2b-256 cbd70e23f7f66724f4b98db5b951939e6b64666b273f2080e06c36bc1ba7d81d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 36d44421e0ef06e2c7d160a0e5c7a9004afae9b5276ff0ab2f22ac2ff14a1852
MD5 3314e38275c8f270a854c5f0a7d6f992
BLAKE2b-256 704585ffa6870f300d61aa8fdd40f73b718362aa6b52e6ada3b9cc15194544aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 338e154d1dc0653b7c341d1938646f35111780815dcfa6b5a37d8a207573ce0d
MD5 74e1ef78f4beeca036f7000863e90a71
BLAKE2b-256 7e8cb15b92b915078282bef3832456c05dc09b07df3ca78d661ea772360ed0b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 24478eeeff1493febd2f7e61ada254cdd89f77e018448f8e025383a9c52f63a0
MD5 29e606f463ea510ded98718236f1f8a6
BLAKE2b-256 d0a4f48474786201e10ecfa9ab9ba3b8d2d0172d7889c33032b26229788b5dfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 23a826348bb8be759e82474276a7042cb3dfd82dcb20adc10fde4e16d78d358d
MD5 0d82d7412ac061eaac611a07780ea04a
BLAKE2b-256 6f14d2b0cc653f864407c724817733970a487d15c86f3e70b4ce30d4aedee834

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rankops-0.1.20-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 243.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rankops-0.1.20-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 52fc2607572b69179dcc5509c17decc8d36288a2e33938dfcc9f54df7a98e9d0
MD5 2b053a85555bb1ed07ca7a072d59e5e9
BLAKE2b-256 f63b8576bc4cb31730ce4a3a16692cf18e9f3266f972c77da4d88f8b0a9e262e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp313-cp313-win_amd64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 820e0d40ada3e3e643dbd6cf490acc988f405a39531ea5516f3cca6010953376
MD5 2dd93628b2c00a46aef6fc80e1122323
BLAKE2b-256 791199264949f0c3e6f66ec5ab94069efcd3e2452f3197dac0a7117c3c6d995a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a33c0427726b8689b5bb18edb69a38c316a34239325959bf935f6208278f8326
MD5 1b1eac25e6a4e06fd38239809516e0bf
BLAKE2b-256 9777558fafb0da7792d4c668add271e02d086ffa8d2636720beb55e5ab635da6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3bfe1f9f0b21556896b4c369fea151268f39fe76e38bddbed2ae2496feaa577e
MD5 931c20a3ee06bc04e7d01c23b4359d07
BLAKE2b-256 5698b6f21d471ccfdf770d903e9757042439bc2d8535af995e506b5d1901b4b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 036915656e6d96e4926b32aa7782c7d516e6cfde472c6ab65fc600ae3d3c1f56
MD5 b44a76fcde72307a55b282e70b985df0
BLAKE2b-256 7fe729e5faebbe4fd422c6626398cdc8a3ec2127dce7a61d9d2bc5cec9897e1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rankops-0.1.20-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 243.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rankops-0.1.20-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6dff7c4686f895068f487e66c3ae5e7a66508414ab445f76db2bf690b6501205
MD5 593ed9eb1f02c67fe45f95caf092868a
BLAKE2b-256 a5db4232bfd9a698d92e65d298da07d676cd188eb87fbce81969eb5addf33e13

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp312-cp312-win_amd64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28ffa618a69b566f3a0a2eafd82b7dcb46d3b4fe8eb9c662ab8c884b56fb1af7
MD5 81d9192600c18ca4b198b281c8ad029d
BLAKE2b-256 1c9e9637b0b903bfe7a0cdc25dabf104f51f8558714c79dde74120d720c7753f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 730c7a8d45cbe761910abc561bcbe170f7534adf2348ee0e5429bf2fbc60a40a
MD5 4f45860ecfc49f82f086b9ba6c34e701
BLAKE2b-256 82dcbaedd051b87319d0b43cd9d995b03f536178e1525475673ecdef13368618

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d739a629eaa46850e28e6cd0fc8bfc666bbfe89a74c3902ccc764fcd91a8946
MD5 0ab7ad064d42f56052700b0083a5c389
BLAKE2b-256 b68237643ddb82370761bd63fdc27ba3d28843d05e6c634b80154a7b75d8f129

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3ef5182e20b0d53c8c89bbe34e5ea3e67054d1f6fc033513b9f19017888a4f85
MD5 46327de3e44396265e975ca900636d7d
BLAKE2b-256 cde031c0bf790fd6e9f243dac50a24515ad985b8c017433f283460e8c2244b60

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rankops-0.1.20-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 245.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rankops-0.1.20-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ad6ca892bfd28ca361853a92673d3881f49f637c7e3679ea00af42a3acfc994c
MD5 c96e7b2d7b8864c6b8367820bda101c3
BLAKE2b-256 219487d67b74f46da444fc960a46320e23dc421f3dfa405e821105777e2974ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp311-cp311-win_amd64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b202ff28a2e5171edd1f5030b9ae2267364a47b9d022a59b0736c5080604fdca
MD5 8f6cbe5456710eed6d8af043e21a80f9
BLAKE2b-256 2519c56482d6dbaa080a9e254765a10a5c2191d544c227e9182224d04bbb5ecd

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 68eda5b9df434547e4f6aca300a30449870a6ae017c04e136111d356e636aaaf
MD5 d70420fe60c836c98e511f133b649cc9
BLAKE2b-256 15cebbdd75820647122500d3bd0da64dac03030a25cfc6fbdeed8bdaf3e64ea7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df8b8fb9c51503ed8cc157c3dbe5605049e951e17059a42c2421ab3c73f382c8
MD5 a44a6cedb9007f7865966fc84dbbc8d1
BLAKE2b-256 273451bd8fa25a1ba45c6d1569c031d7143d8da16c4b71240751e3e56bed7dfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 89ebc9d026ac55f34eba30e66c20d838bb504a5fc44b845f65ed055a029c1514
MD5 dc249de4065954a0fe7ee0301320ab38
BLAKE2b-256 b4fed7ef5d8306c418598cb171d61e0a187cd2095f652e243f419b49afe2782a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rankops-0.1.20-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 245.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rankops-0.1.20-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bdbe583fedb871028a5ab9d79887bc92519fb56a53906820534649213c33e42c
MD5 07f115fc1f2fbf2d4e68ab677adf8f7a
BLAKE2b-256 b19399a433461054bdfdd3cc8adc5fc7105b90e49905ca96912add09d71cf639

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp310-cp310-win_amd64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 183b788440a74f3f5825312791627a4344dfe85a8d0f4913166d02b8c80839f9
MD5 b822ea26f881d6de8da444a7b67d4cc1
BLAKE2b-256 22504c39ab8fa2dd9dc05f75322c8d5293ad3d083a4fdb6fba3db15c80437a0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e81808d8df0ace381c1572354e4a0c76306b8c4dcbc3a91f4cf21bc37f6bf453
MD5 49c8de676229151f91448aa60855cbce
BLAKE2b-256 42ebd54f20ab89a922fb78669c40cbf9a73f3ef8d4dd23b297014c618a324845

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a853d0b27d96c4909e833981a4f16cfd0555259eb58397f278bed1d5db204135
MD5 44743d9f19ea2fd87eb598933f203237
BLAKE2b-256 cb96c63cf4ad64bff4c5343c93c0e9fbb1e95958043c17e1a1921ea199b3fd44

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d78eb88ce25bc9a4ed9b92055fffad74ab3fbccf6394409bda8b65b1e089a393
MD5 7f160f4341e560a452e85ed34ce1f355
BLAKE2b-256 fc73e0c9e652a2f4740ddad9f8b0ce942597af1b95beba3c7b64b8d8035a95e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97fbe8d449b84ccc8f2b3a4d75d76cb9d35fb020cc22febae4c621af3161b452
MD5 70f672265706508b5d0dedeb6c538fb3
BLAKE2b-256 38bcc6e13a3c96d86c61868a29b23b69ad39757c41168be4dc7dce590b9999fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fce311a90c6cf6ee4df45d8ff37304506cf1906d1d7fc57f9ee3fc032d5020d4
MD5 8c411fae9a3b84f66d4efab5690244d9
BLAKE2b-256 87a88987c77c53e18b0372df786d097e7c88af05c780f4ebbd2b92229c2a73b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

File details

Details for the file rankops-0.1.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rankops-0.1.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 390d9a7c10d9724b9825e9526d97b0bc37ef9d6e56fa2bf1034edb6897aa845b
MD5 032a4364a7a77ff78f4b6070be5996d7
BLAKE2b-256 8dcb505dd0bf638307c25c9e8ffdd808756dba74a8ad741e7530295202b85a7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rankops-0.1.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on arclabs561/rankops

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page