Skip to main content

Whole History Rating (WHR)

Conda Actions Status Pip Actions Status Wheels Actions Status

A Python interface incorporating a highly optimized C++ implementation of the Whole History Rating (WHR) algorithm proposed by Rémi Coulom. WHR computes time-varying Elo ratings for players of games (e.g., Chess, Go) by optimizing the log-likelihood of all game results across history simultaneously.

This C++ implementation is based on the Ruby implementation by GoShrine.


Features

  • Blazing Fast: The core algorithm is implemented in C++ (via pybind11), allowing it to scale to tens of thousands of games.
  • Tolerant CSV Loading: Built-in support to ingest games from CSV files with smart header alias matching, winner normalization, and graceful handling of missing or malformed fields.
  • Robust Evaluation: Standardized validation metrics including average log-likelihood computation.
  • Highly Configurable: Custom rating volatility parameter ($w^2$) and virtual game regularization.

Installation

From PyPI

pip install whr

From Source

git clone https://github.com/wind23/whole_history_rating.git
cd whole_history_rating
pip install .

Note: Building from source requires a C++ compiler supporting C++11 (GCC, Clang, MSVC) and the pybind11 package.


Usage

1. Basic API Usage

import whr
import math

# Initialize the rating database with volatility parameter w^2 = 30
base = whr.Base(config={"w2": 30})

# Create game records manually:
# create_game(black_player, white_player, winner, time_step, handicap=0.0)
# Winner options: "B" (black wins), "W" (white wins), "D" (draw)
base.create_game("Alice", "Carol", "D", 0)   # Day 0: Draw
base.create_game("Bob", "Dave", "B", 10)     # Day 10: Bob won
base.create_game("Dave", "Alice", "W", 30)   # Day 30: Alice won (Dave lost)
base.create_game("Bob", "Carol", "W", 60)    # Day 60: Carol won (Bob lost)

# Run 50 Newton-Raphson iterations to solve for player ratings
base.iterate(50)

# Retrieve rating history for individual players: returns list of [day, elo, uncertainty]
print("Alice ratings:", base.ratings_for_player("Alice"))
# Output: [[0, 78.51, 185.55], [30, 79.47, 187.12]]

# Get all player ratings sorted by final strength
print("Ordered ratings:", base.get_ordered_ratings())

2. Loading Games from CSV

The load_csv() method enables importing games from a CSV file or file-like buffer. It is designed to be highly tolerant of formatting errors:

import whr
import io

base = whr.Base()

csv_content = """
black_player, white_player, winner, time_step, handicap
Alice, Bob, B, 1, 0.0
Bob, Carol, W, 2, 0.0
Carol, Alice, D, 3, 5.0
"""

# Load from a file path or a StringIO buffer
base.load_csv(io.StringIO(csv_content))
base.iterate(50)

CSV Format & Column Aliases

WHR searches the header row case-insensitively for matches using the following aliases:

Logical Column Accepted Header Aliases Default Fallback / Behavior
Black Player black, black_player, player_black, p1, player1, black player Row is skipped if missing/empty.
White Player white, white_player, player_white, p2, player2, white player Row is skipped if missing/empty.
Winner winner, result, outcome, win, winner_player, victor Defaults to a Draw (D) with a warning.
Time Step time_step, time, step, day, date, round Defaults to 0 with a warning.
Handicap handicap, advantage, komi Defaults to 0.0 (no warning if absent, warning if invalid).

Winner Normalization Rules

WHR normalizes various winner representations to simplify integration:

  • Black Win: B, black, b, 1-0, 1, black win
  • White Win: W, white, w, 0-1, 0, white win
  • Draw: D, draw, d, 1/2-1/2, 0.5
  • Any unrecognized string defaults to a Draw (D) with a warning.

Tolerance & Warning Behavior

If the CSV structure contains minor anomalies, the parser emits a UserWarning instead of failing:

  • Missing Headers: If headers cannot be detected at all, WHR falls back to treating columns positionally as [black, white, winner, time_step, handicap].
  • Invalid Numbers: If time_step or handicap is non-numeric, it is defaulted to 0 or 0.0 respectively, and a warning is logged.
  • Float Time Steps: If the time_step contains decimals, it is safely rounded to the nearest integer.
  • Empty & Comment Lines: Empty lines and clean space rows are skipped silently.

Handicap & First-Move Advantage (Go vs. Chess)

WHR was originally designed for Go (围棋), where Black plays first and any handicap/komi is applied to Black's rating. Therefore, the library API is designed with [black, white, ...] parameter order.

If you are using this library for games where White plays first (e.g., Chess), you can handle the first-move advantage easily:

  • Approach A (Recommended - Negative Handicap): Keep passing the White player as the white argument, the Black player as the black argument, and pass a negative handicap value to represent White's first-move advantage. E.g., handicap = -35.0 (which mathematically increases White's win probability by adding 35.0 Elo to White).
  • Approach B (Logical Mapping): Map the first-move player (White) to the black parameter, and the second-move player (Black) to the white parameter. If White wins, set the winner to "B".

API Reference

whr.Base

Main interface for calculating ratings.

  • __init__(config=None, w2=300.0, virtual_games=2)
    • config: Optional dict containing w2 and virtual_games.
    • w2: Rating variance parameter controlling how fast rating changes over time (default: 300.0).
    • virtual_games: Number of virtual draw games assigned to players on their first day for rating regularization.
  • create_game(black, white, winner, time_step, handicap=0.0): Create and register a single game.
  • create_games(games): Ingest a list of games in the format [black, white, winner, time_step, handicap].
  • load_csv(filepath_or_buffer): Load games from a CSV file path or file-like buffer.
  • iterate(count): Perform a fixed number of Newton-Raphson optimization steps.
  • iterate_until_converge(verbose=True): Iterate until convergence. Returns the total number of iterations.
  • ratings_for_player(name): Get the rating timeline of a player as [[day, rating, uncertainty], ...].
  • get_ordered_ratings(): Get sorted ratings for all active players.
  • log_likelihood(): Returns the overall log-likelihood score of the current model.

whr.Evaluate

Evaluates rating predictability on external test datasets.

  • __init__(base): Initialize with a trained whr.Base rating database.
  • get_rating(name, time_step, ignore_null_players=True): Get the rating of a player on a specific day.
  • evaluate_ave_log_likelihood_games(games, ignore_null_players=True): Compute average log-likelihood across a list of test games.

Running Tests

Test files are modularized and cover base functionality, evaluation metrics, and CSV parsing:

python -m pytest tests/

To run with verbose output:

python -m pytest tests/ -v

References

Rémi Coulom. Whole-history rating: A Bayesian rating system for players of time-varying strength. In International Conference on Computers and Games. 2008.

Metadata

Release files for whr 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for whr 2.2.0
File Size Uploaded Provenance Actions
whr-2.2.0.tar.gz 21.1 kB Without provenance Details for whr-2.2.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for whr 2.2.0
File Actions
whr-2.2.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for whr-2.2.0-cp314-cp314t-win_amd64.whl
whr-2.2.0-cp314-cp314t-win32.whl CPython 3.14 CPython 3.14 free-threading Windows x86-32 Details for whr-2.2.0-cp314-cp314t-win32.whl
whr-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details for whr-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
whr-2.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for whr-2.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
whr-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for whr-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl
whr-2.2.0-cp314-cp314t-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 Details for whr-2.2.0-cp314-cp314t-macosx_10_15_x86_64.whl
whr-2.2.0-cp314-cp314t-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ universal2 (ARM64, x86-64) Details for whr-2.2.0-cp314-cp314t-macosx_10_15_universal2.whl
whr-2.2.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for whr-2.2.0-cp314-cp314-win_amd64.whl
whr-2.2.0-cp314-cp314-win32.whl CPython 3.14 CPython 3.14 Windows x86-32 Details for whr-2.2.0-cp314-cp314-win32.whl
whr-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for whr-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
whr-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for whr-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
whr-2.2.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for whr-2.2.0-cp314-cp314-macosx_11_0_arm64.whl
whr-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details for whr-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl
whr-2.2.0-cp314-cp314-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) Details for whr-2.2.0-cp314-cp314-macosx_10_15_universal2.whl
whr-2.2.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for whr-2.2.0-cp313-cp313-win_amd64.whl
whr-2.2.0-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details for whr-2.2.0-cp313-cp313-win32.whl
whr-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for whr-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
whr-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for whr-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
whr-2.2.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for whr-2.2.0-cp313-cp313-macosx_11_0_arm64.whl
whr-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details for whr-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl
whr-2.2.0-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details for whr-2.2.0-cp313-cp313-macosx_10_13_universal2.whl
whr-2.2.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for whr-2.2.0-cp312-cp312-win_amd64.whl
whr-2.2.0-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details for whr-2.2.0-cp312-cp312-win32.whl
whr-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for whr-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
whr-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for whr-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
whr-2.2.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for whr-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
whr-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details for whr-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl
whr-2.2.0-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details for whr-2.2.0-cp312-cp312-macosx_10_13_universal2.whl
whr-2.2.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for whr-2.2.0-cp311-cp311-win_amd64.whl
whr-2.2.0-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details for whr-2.2.0-cp311-cp311-win32.whl
whr-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for whr-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
whr-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for whr-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
whr-2.2.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for whr-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
whr-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details for whr-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl
whr-2.2.0-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details for whr-2.2.0-cp311-cp311-macosx_10_9_universal2.whl
whr-2.2.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for whr-2.2.0-cp310-cp310-win_amd64.whl
whr-2.2.0-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details for whr-2.2.0-cp310-cp310-win32.whl
whr-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for whr-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
whr-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for whr-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
whr-2.2.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for whr-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
whr-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details for whr-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl
whr-2.2.0-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details for whr-2.2.0-cp310-cp310-macosx_10_9_universal2.whl
whr-2.2.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for whr-2.2.0-cp39-cp39-win_amd64.whl
whr-2.2.0-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details for whr-2.2.0-cp39-cp39-win32.whl
whr-2.2.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details for whr-2.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
whr-2.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for whr-2.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
whr-2.2.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for whr-2.2.0-cp39-cp39-macosx_11_0_arm64.whl
whr-2.2.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details for whr-2.2.0-cp39-cp39-macosx_10_9_x86_64.whl
whr-2.2.0-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details for whr-2.2.0-cp39-cp39-macosx_10_9_universal2.whl

Total release size: 19.0 MB

Release files / whr-2.2.0.tar.gz

Download URL whr-2.2.0.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
78d18ceb0444a360ea122555bd1cf62184a12235082d690143f462a0bee8b5d8
BLAKE2b-256 checksum
How to use checksums
c82bd86f81b1e9c2e363d2f52692bf10d10d06eaf685b70b0d65403f0e03f9fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314t-win_amd64.whl

Download URL whr-2.2.0-cp314-cp314t-win_amd64.whl
Size 352.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
dc80efa02c445bfe54313825b502e1232512a9ff9bd8910d150c273e57bcf576
BLAKE2b-256 checksum
How to use checksums
76818275c47576dbeaef9465d34cc97b55610da948ec9ec1279273302ee1f5c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314t-win32.whl

Download URL whr-2.2.0-cp314-cp314t-win32.whl
Size 321.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-32
SHA-256 checksum
How to use checksums
653724b1cd0b3ddc56592e0a8db67f5ad63619874723152dbca4b720ee9acb9a
BLAKE2b-256 checksum
How to use checksums
9566d9cf0c1acac752611fe3e9ec17e67ed8fe00098d113bdd40096f61a59290
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL whr-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6ea5f81cafc329230c312cb92a5457ae456509a68da2e7b3b1cc2c6d31c45907
BLAKE2b-256 checksum
How to use checksums
621adc2667153e221ca5157e4274f2c3f290792196f87d97c93815163ff02d57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL whr-2.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 186.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9831e3a874abb9b3109940c6e80ebc5aa0b6459dc1cece24b2e0f04a28891b6a
BLAKE2b-256 checksum
How to use checksums
0f47e5c1d6d898283baa2a7d32bff5a23a8113aa24642a5a618e4b585557a16e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL whr-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 170.3 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fd5c31ce03fd6acec0fab19935638792cfe7dbed4f7a844e08c699ef409f5b4e
BLAKE2b-256 checksum
How to use checksums
fb5d0dd47441fc1e225033c6f7a3d856eacf8cf0b3ab733937b138bd82df370d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL whr-2.2.0-cp314-cp314t-macosx_10_15_x86_64.whl
Size 179.9 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
f74aff4b39df8248d426856d900aedfb4e295464ecbab4ee1f94908389351afd
BLAKE2b-256 checksum
How to use checksums
388b84ad0e7e949061f8ab9d13d74a44c16e2216fa009fdc105477b076d949d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314t-macosx_10_15_universal2.whl

Download URL whr-2.2.0-cp314-cp314t-macosx_10_15_universal2.whl
Size 339.7 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
2fc22924132c9bd80ff6b87343eaa0b1b1e071f27d4a5273df203662d8eca40c
BLAKE2b-256 checksum
How to use checksums
1826a04b836f3be385fbc86c384255c3a0338a5aeb9fea58044ad53b5dc3cddd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314-win_amd64.whl

Download URL whr-2.2.0-cp314-cp314-win_amd64.whl
Size 347.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
5e87c4d0326d1d60031d13fd7f6f9a128b1397bf6eea2a8e4eef1c6c719a585b
BLAKE2b-256 checksum
How to use checksums
4145cb344471359f58d58fbe395f53a25fdd90f2604ff1fc28a3c110b566768d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314-win32.whl

Download URL whr-2.2.0-cp314-cp314-win32.whl
Size 316.2 kB
Tags CPython 3.14 Windows x86-32
SHA-256 checksum
How to use checksums
ebc805da8d07ec0ec48625888cad8aea266b0b6d2b315864c6460f9054375cbf
BLAKE2b-256 checksum
How to use checksums
3def2b53d6725506b126d93a8d8e2d88b7560652a543cf4272d2f9443a5d4a5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL whr-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
8af2b0efe472cb58a4f7b3d593db560a19b03f20a7e1dde565461cb88a087af3
BLAKE2b-256 checksum
How to use checksums
de5545cffc172f3d939647a6ea2d9456453aff6cfffa41552cab066323fda40d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL whr-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 190.9 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2357f0fabc8e95347390e49a40d8ab7c14ff62fbe27c3443752ad30554dde06d
BLAKE2b-256 checksum
How to use checksums
d9c664175e1372d9e48e9e5769f16fdbde14c17af2277244a95d5996c5c6f08b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL whr-2.2.0-cp314-cp314-macosx_11_0_arm64.whl
Size 159.7 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b40208022a7be042bb7d6e222839fb80caf34153d72892d0396ba6e4db2fb707
BLAKE2b-256 checksum
How to use checksums
092a427a883eb15be9e4d044ec3265481c622b42d22a2d30359807d111de0439
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl

Download URL whr-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl
Size 171.1 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
3964f18461710c8ac0a66646e8452514792d6f19b07cb1c1327d62fb9e9b1258
BLAKE2b-256 checksum
How to use checksums
22056d73ef57d147c5a8eefada3223205a13f065ffaaac4b0320c6fa4eefc5cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp314-cp314-macosx_10_15_universal2.whl

Download URL whr-2.2.0-cp314-cp314-macosx_10_15_universal2.whl
Size 320.2 kB
Tags CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
fce684394f0c1493a06f33e5a151241aa0a4995fb8ffdeaf84e375f712014675
BLAKE2b-256 checksum
How to use checksums
adf4dde7b74ca99ad7e2fdfbcc9a8fc0452b763f59e8f6ed25c515c54e82c08e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp313-cp313-win_amd64.whl

Download URL whr-2.2.0-cp313-cp313-win_amd64.whl
Size 336.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
999f8c70f140e6379f61cefaa278065ccd3fe4bffcc7f20d63a4b41e4ae5d090
BLAKE2b-256 checksum
How to use checksums
647828def457af58095f2ad383466c963d40f1ac0082c0db7c41ce90beb2d0f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp313-cp313-win32.whl

Download URL whr-2.2.0-cp313-cp313-win32.whl
Size 308.3 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
1db71b09303b5744eb24fa20a20898ac21337cc1904ba2d1dc687d11ad3dcca0
BLAKE2b-256 checksum
How to use checksums
15e0b615aee7b545875a5b15f55fcc2abde3f3b586a6abc882e34ebf075d1b68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL whr-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
52c7497459809c8e07f14e5d997251819e031e6c0b840c008b5188dfb15dd31b
BLAKE2b-256 checksum
How to use checksums
1010a80ca13badbed763201fc806b3db1b995207de0b9ddb0a7a2d823309e231
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL whr-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 190.8 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c860d71f8acd958a0f045be7bac0812481bbf408e4bcecc8af22dfa4851d16d4
BLAKE2b-256 checksum
How to use checksums
ab9278b438a231126f2a348c0aa0543f4a200683cb11e2e6614bd71c9e63370b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL whr-2.2.0-cp313-cp313-macosx_11_0_arm64.whl
Size 159.5 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0188e4506d557dfd23e0acea5930d19f6105344c9ad20d46d77eb47a31877081
BLAKE2b-256 checksum
How to use checksums
50ad6cb0f60c0d95e18652f84b89e22b6a4fdb4ef64cee510ec0bb1ec585208d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL whr-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 171.0 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
eeeae825093c4f1e3d24070b51017420c860491cf798862bab135e60a9d5d727
BLAKE2b-256 checksum
How to use checksums
01309845dee86c3fe9e52bfbc7ac13a5b9586c91a001db27df2baa7e8ce2bcc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp313-cp313-macosx_10_13_universal2.whl

Download URL whr-2.2.0-cp313-cp313-macosx_10_13_universal2.whl
Size 319.9 kB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
6829bbf411ec072255234afb029ad73ff3ce369cf954cc9a538ab8f249454ab6
BLAKE2b-256 checksum
How to use checksums
10fb919d7e680a6a59b999441e0fd265c7b64befb73e7d17a4c6176851aac4b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp312-cp312-win_amd64.whl

Download URL whr-2.2.0-cp312-cp312-win_amd64.whl
Size 336.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f448e05dfdbcef4c23e54ccad5b76cf46fe3a475fe02c6265e57269cb5e89b12
BLAKE2b-256 checksum
How to use checksums
9f84589b96284c38e2359c4fc55047f6f7bd044c6571862ccb187d59c36be516
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp312-cp312-win32.whl

Download URL whr-2.2.0-cp312-cp312-win32.whl
Size 308.4 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
08eff30dc91a47fca7e10d0cf8ff263fec16d7505dd10f5b4afa7da1c00df53d
BLAKE2b-256 checksum
How to use checksums
136560f1bc7a01cf8a413c7130ce6de6e8f08a39bb22da3f84c0c155c727863d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL whr-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
661093f00fb1b4ae76cd07893e28ca2e6ca4e68f7590e24192e1da3e6137f5f8
BLAKE2b-256 checksum
How to use checksums
2f286ba201dc79a9f100ce3cfd56ad18145f6ff2a2e9db41407e4c95d42e17a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL whr-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 190.8 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4feb1994ce2073f3b06600753c25de891f157d37d921a24bf4b1941da981726f
BLAKE2b-256 checksum
How to use checksums
b624f7af47044c803dcb765e0b20b9a75cbc03602103787e0df24a96846c7228
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL whr-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
Size 159.4 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fe37006da8d35fdbc9346dc304f49d90372e42404d6eb5b72fa81982d5a1e898
BLAKE2b-256 checksum
How to use checksums
6a7cafaa3b87028f50fcefbf6ad8b147841032a5da8204a51888ec15672433b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL whr-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 171.0 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
d1d2649399992334e2cd87d7e33c05f9a2b3788237003152f3264df2d258baee
BLAKE2b-256 checksum
How to use checksums
fdd918a017fa1a4cc01028613e8653a4f177add761be8a4a31ee27a666c6386e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp312-cp312-macosx_10_13_universal2.whl

Download URL whr-2.2.0-cp312-cp312-macosx_10_13_universal2.whl
Size 319.7 kB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
59076c7f137f0df4e676366e1c781c660201cab2ae4f7c02a291582aa791f47f
BLAKE2b-256 checksum
How to use checksums
b90482bd6879c1b8feb8ad3531346cd48fbfe8ab38c7bbf3d51ecb07300c4dff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp311-cp311-win_amd64.whl

Download URL whr-2.2.0-cp311-cp311-win_amd64.whl
Size 335.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
9e2f1a7bf82309e202fc3541ab7bfa00e6d85c3cd47bd46f5cea3cca2467dc2d
BLAKE2b-256 checksum
How to use checksums
76ecf594ac65aa28db7445eb080f18e93f6a9585cb8379aece3a683e0162b29a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp311-cp311-win32.whl

Download URL whr-2.2.0-cp311-cp311-win32.whl
Size 308.0 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
5bfab7b073bc3833f200c6b6f4638afb041a0cc540189f8ac51d46899b2ff8b3
BLAKE2b-256 checksum
How to use checksums
3f7e5916855589f3f2cc2169192c2d57f709afbeafaed510509b1bbee72b0b02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL whr-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
43da9a38674bed396f15eb710a213129d4b18e5367781c2d18eb9afa362fcd3f
BLAKE2b-256 checksum
How to use checksums
3bc07aec862e4d58d11e03322e95b3f4e3b71bdc0a58d9490f89a33a910d9d43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL whr-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 189.9 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c10b9703bd79906ef313f60e58fd6e12d451df9af62f0e8caa88945dd692a7b0
BLAKE2b-256 checksum
How to use checksums
ecc53360771ec2456227fcd38e9234cf94619918a0a9bcb8290108c32b66e1d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL whr-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Size 158.5 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3dbb770caba8f280c4e85a191d06f5983c3af8d0c7fe9ce79e4169300e130be1
BLAKE2b-256 checksum
How to use checksums
b33a24f93e20d7dbd4ebbb3fa7bef4b9f7f3d91607df389e6eeb94b927ca2816
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL whr-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 169.4 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
5c8cd6996a03e8c6fa7ce3d17bd8541aecaab8f535e9f11be80216d5ad0dccb9
BLAKE2b-256 checksum
How to use checksums
f86bda2d9043ae0ad52e477b0bdb7f7eca461401cc8a1af62d87d9864c54834a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp311-cp311-macosx_10_9_universal2.whl

Download URL whr-2.2.0-cp311-cp311-macosx_10_9_universal2.whl
Size 317.1 kB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
01fff58891e6168421dcd95e84d8641205a246ec0b91682806a31c20c14cba36
BLAKE2b-256 checksum
How to use checksums
7626cb1cc4466afecc4f290e229153e691c5ba2de63f3538c51583755ed14907
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp310-cp310-win_amd64.whl

Download URL whr-2.2.0-cp310-cp310-win_amd64.whl
Size 334.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
74d8095457cdb7dfd5c8f307a722f4bba32942f3c9abb522fdc0121b49f2899d
BLAKE2b-256 checksum
How to use checksums
5b59b4c605454e01151644d08a2a406098f1f2ac4f8e1be0dd9c2e7e0a60a77d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp310-cp310-win32.whl

Download URL whr-2.2.0-cp310-cp310-win32.whl
Size 307.1 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
fd5cfd901d2452b0722b1de0a5643d2c1642e54e91afd68665bb69b1cfbdd612
BLAKE2b-256 checksum
How to use checksums
36213e91e996e23d2a90dd3a5065fb0a74270cd0a2dc6b9776cbd2454c177b48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL whr-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
12a53f111638ae18e3cd9d0c93e3d830e5213d2f81e2ad434f7e4326345f25e3
BLAKE2b-256 checksum
How to use checksums
788940d678a8d928a972efb0d30d68071d012c2e90df8053731af597b9f87e7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL whr-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 187.3 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bbcaa80207e8cf366af663818ecd2596ce276229b79b711f3eea5f87abc9ffb8
BLAKE2b-256 checksum
How to use checksums
00028d9ccca5e002290b710c92a3e2f489c7ebe9b8782c1c4479c0d186372e97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL whr-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
Size 157.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9f5bb7c2398ef631df30ea0ae72aca29cd5300728bcd552194b20d5a0b1ab7db
BLAKE2b-256 checksum
How to use checksums
0784c13de18f0cf101adcf6906ff5ef8b4101ed6dc78cbedae860fb843e63799
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL whr-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 168.1 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
3a936c13296cf9f0871fddcba5f961e2f3253c8039d0a772661b159d6f9c406e
BLAKE2b-256 checksum
How to use checksums
ed203069ea8a482b1264313e09e41518c34ea8c9d1a924ea5f5022fca2fe92e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp310-cp310-macosx_10_9_universal2.whl

Download URL whr-2.2.0-cp310-cp310-macosx_10_9_universal2.whl
Size 315.0 kB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
dd1a9e1eff915f9a350bb77e2dcc658a2d4fea7a7a42f44c35224dddff5ff9a9
BLAKE2b-256 checksum
How to use checksums
92346a4252ca9796b1cf7ed9d6825f626bef55639dee471747062bb9093cdd46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp39-cp39-win_amd64.whl

Download URL whr-2.2.0-cp39-cp39-win_amd64.whl
Size 334.9 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
c3cd3abcb45da5d9ffa137382c3746de97ea2eb91d50f0d2a04459c4a336fce2
BLAKE2b-256 checksum
How to use checksums
1b703d30d3ebdfd6d69c2cdbc705ea2195960fbfd81912257392a6ec78e8773c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp39-cp39-win32.whl

Download URL whr-2.2.0-cp39-cp39-win32.whl
Size 307.7 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
d057ee9130f38945c8a24675b4ddfcd7634b5a48e6d7942910a02f677a77f1c3
BLAKE2b-256 checksum
How to use checksums
8ca540ae13a9ba999ce468c7ed444dfced488906473d0e2e214c875a7cb64fb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL whr-2.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7fe85fa07aa7d24d8ea481fa14518656073acbdf1bee3f413059351c825cb69b
BLAKE2b-256 checksum
How to use checksums
5e315fa20a882ffad563f3ef0852186bf532dfade604f3f1f666b673156b10b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL whr-2.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 186.4 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8cdb039dcc9fce20776e33e597caf8f2d6ef3853728a7cc739525239f09c3cba
BLAKE2b-256 checksum
How to use checksums
6f5fff2190c3e7f282570442e1b5c06d69f7003710db65f28ab90885b4a4096b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL whr-2.2.0-cp39-cp39-macosx_11_0_arm64.whl
Size 157.5 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9868a37381262adfb24418ab9297ac294840db2d3fde0a5a8d4f59e958b81d8b
BLAKE2b-256 checksum
How to use checksums
6796405aaf43f3bbd07c20e10ea635a058a37c0404563b031835b151fe20ed27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL whr-2.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 168.2 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
1c8d63ef91a8c44707dd113e308880186f04fc4a154da7c413865639ac7c45f7
BLAKE2b-256 checksum
How to use checksums
4693d60083d3318dfcd830ad0d899507f47176391e6ad5fb7b20ec7098b310ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / whr-2.2.0-cp39-cp39-macosx_10_9_universal2.whl

Download URL whr-2.2.0-cp39-cp39-macosx_10_9_universal2.whl
Size 315.2 kB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
6b83a9ce82e4f25390e3177e1c1d64fde95e4d4e8fc85b68567726547d596511
BLAKE2b-256 checksum
How to use checksums
2d4bfa74fb098be12a06b6cab64e6dc1eae3c86c905de2d4d438c7621c7fa512
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Security for whr 2.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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