Skip to main content

A High-Performance Research Environment for Riichi Mahjong

Project description


Accelerating Reproducible Mahjong Research

CI Open In Colab Kaggle PyPI - Version License


[!NOTE] While RiichiEnv is being built with reinforcement learning applications in mind, it is still very much a work in progress. As indicated in our Milestones, we haven't yet completed the optimization or verification necessary for RL contexts. The API and specifications are subject to change before the stable release.

✨ Features

  • High Performance: Core logic implemented in Rust for lightning-fast state transitions and rollouts.
  • Gym-style API: Intuitive interface designed specifically for reinforcement learning.
  • Mortal Compatibility: Seamlessly interface with the Mortal Bot using the standard MJAI protocol.
  • Rule Flexibility: Support for diverse rule sets, including no-red-dragon variants and three-player mahjong.
  • Game Visualization: Integrated replay viewer for Jupyter Notebooks.

📦 Installation

uv add riichienv
# Or
pip install riichienv

Currently, building from source requires the Rust toolchain.

uv sync --dev
uv run maturin develop --release

🚀 Usage

Gym-style API

from riichienv import RiichiEnv
from riichienv.agents import RandomAgent

agent = RandomAgent()
env = RiichiEnv()
obs_dict = env.reset()
while not env.done():
    actions = {player_id: agent.act(obs)
               for player_id, obs in obs_dict.items()}
    obs_dict = env.step(actions)

scores, points, ranks = env.scores(), env.points(), env.ranks()
print(scores, points, ranks)

env.reset() initializes the game state and returns the initial observations. The returned obs_dict maps each active player ID to their respective Observation object.

>>> from riichienv import RiichiEnv
>>> env = RiichiEnv()
>>> obs_dict = env.reset()
>>> obs_dict
{0: <riichienv._riichienv.Observation object at 0x7fae7e52b6e0>}

Use env.done() to check if the game has concluded.

>>> env.done()
False

By default, the environment runs a single round (kyoku). For game rules supporting sudden death or standard match formats like East-only or Half-round, the environment continues until the game-end conditions are met.

Observation

The Observation object provides all relevant information to a player, including the current game state and available legal actions.

obs.new_events() -> list[str] returns a list of new events since the last step, encoded as JSON strings in the MJAI protocol. The full history of events is accessible via obs.events.

>>> obs = obs_dict[0]
>>> obs.new_events()
['{"id":0,"type":"start_game"}', '{"bakaze":"E","dora_marker":"S", ...}', '{"actor":0,"pai":"6p","type":"tsumo"}']

obs.legal_actions() -> list[Action] provides the list of all valid moves the player can make.

>>> obs.legal_actions()
[Action(action_type=Discard, tile=Some(1), ...), ...]

If your agent communicates via the MJAI protocol, you can easily map an MJAI response to a valid Action object using obs.select_action_from_mjai().

>>> obs.select_action_from_mjai({"type":"dahai","pai":"1m","tsumogiri":False,"actor":0})
Action(action_type=Discard, tile=Some(1), consume_tiles=[])

Compatibility with Mortal

RiichiEnv is fully compatible with the Mortal MJAI bot processing flow. I have confirmed that MortalAgent can execute matches without errors in over 1,000,000+ hanchan games on RiichiEnv.

from riichienv import RiichiEnv, Action
from model import load_model

class MortalAgent:
    def __init__(self, player_id: int):
        self.player_id = player_id
        # Initialize your libriichi.mjai.Bot or equivalent
        self.model = load_model(player_id, "./mortal_v4.pth")

    def act(self, obs) -> Action:
        resp = None
        for event in obs.new_events():
            resp = self.model.react(event)

        action = obs.select_action_from_mjai(resp)
        assert action is not None, "Mortal must return a legal action"
        return action

env = RiichiEnv(game_mode="4p-red-half")
agents = {pid: MortalAgent(pid) for pid in range(4)}
obs_dict = env.reset()
while not env.done():
    actions = {pid: agents[pid].act(obs) for pid, obs in obs_dict.items()}
    obs_dict = env.step(actions)

print(env.scores(), env.points(), env.ranks())

Game Rules and Modes

RiichiEnv separates high-level game flow configuration (Mode) from detailed game mechanics (Rules).

  • Game Mode (game_mode): Configuration for game length (e.g., East-only, Hanchan), player count, and termination conditions (e.g., Tobi/bust, sudden death).
  • Game Rules (rule): Configuration for specific game mechanics (e.g., handling of Chankan (Robbing the Kan) for Kokushi Musou, Kuitan availability, etc.).

1. Game Mode Presets (game_mode)

You can select a standard game mode using the game_mode argument in the constructor. This configures the basic flow of the game.

game_mode Players Mode Mechanics
4p-red-single 4 Single Round No sudden death
4p-red-east 4 East-only (東風; Tonpuu) Standard (Tenhou rule)
4p-red-half 4 Hanchan (半荘) Standard (Tenhou rule)
3p-red-east 3 East-only (Tonpuu) 🚧 In progress
# Initialize a standard 4-player Hanchan game
env = RiichiEnv(game_mode="4p-red-half")

[!NOTE] We are also planning to implement "No-Red" rules (game modes without red 5 tiles), which are often adopted in professional leagues (e.g., M-League's team definitions or other competitive settings).

2. Customizing Game Rules (GameRule)

For detailed rule customization, you can pass a GameRule object to the RiichiEnv constructor. RiichiEnv provides presets for popular platforms (Tenhou, MJSoul) and allows granular configuration.

from riichienv import RiichiEnv, GameRule

# Example 1: Use MJSoul rules (allows Ron on Ankan for Kokushi Musou)
rule_mjsoul = GameRule.default_mjsoul()
env = RiichiEnv(game_mode="4p-red-half", rule=rule_mjsoul)

# Example 2: Fully custom rules based on Tenhou preset
rule_custom = GameRule.default_tenhou()
rule_custom.allows_ron_on_ankan_for_kokushi_musou = True  # Enable Kokushi Chankan
rule_custom.length_of_game_in_rounds = 8  # Force 8 rounds? (Note: Length is mainly controlled by game_mode logic usually)

env = RiichiEnv(game_mode="4p-red-half", rule=rule_custom)

Detailed mechanic flags (like allows_ron_on_ankan_for_kokushi_musou) are defined in the GameRule struct. See RULES.md for a full list of configurable options.

Tile Conversion & Hand Parsing

Standardize between various tile formats (136-tile, MPSZ, MJAI) and easily parse hand strings.

>>> import riichienv.convert as cvt
>>> cvt.mpsz_to_tid("1z")
108

>>> from riichienv import parse_hand
>>> parse_hand("123m406m789m777z")
([0, 4, 8, 12, 16, 20, 24, 28, 32, 132, 133, 134], [])

See DATA_REPRESENTATION.md for more details.

Agari Calculation

>>> from riichienv import AgariCalculator
>>> import riichienv.convert as cvt

>>> ac = AgariCalculator.hand_from_text("111m33p12s111666z")
>>> ac.is_tenpai()
True
>>> ac.calc(cvt.mpsz_to_tid("3s"))
Agari(agari=True, yakuman=False, ron_agari=12000, tsumo_agari_oya=0, tsumo_agari_ko=0, yaku=[8, 11, 10, 22], han=5, fu=60)

🛠 Development

For more architectural details and contribution guidelines, see CONTRIBUTING.md and DEVELOPMENT_GUIDE.md.

Check our Milestones for the future roadmap and development plans.

📄 License

Apache License 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

riichienv-0.2.1.tar.gz (236.3 kB view details)

Uploaded Source

Built Distributions

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

riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.5+ i686

riichienv-0.2.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

riichienv-0.2.1-cp314-cp314-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.14Windows x86-64

riichienv-0.2.1-cp314-cp314-win32.whl (1.0 MB view details)

Uploaded CPython 3.14Windows x86

riichienv-0.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

riichienv-0.2.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

riichienv-0.2.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.5+ i686

riichienv-0.2.1-cp314-cp314-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

riichienv-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

riichienv-0.2.1-cp313-cp313-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86-64

riichienv-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

riichienv-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

riichienv-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.5+ i686

riichienv-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

riichienv-0.2.1-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

riichienv-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

riichienv-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

riichienv-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.5+ i686

riichienv-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

riichienv-0.2.1-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

riichienv-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

riichienv-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

riichienv-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.5+ i686

riichienv-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

riichienv-0.2.1-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

riichienv-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

riichienv-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

riichienv-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.5+ i686

File details

Details for the file riichienv-0.2.1.tar.gz.

File metadata

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

File hashes

Hashes for riichienv-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6666c370135c6f63954fbe5e0e8c8b9e477ef29cba40f7320bfc12a3490f23e5
MD5 072ae391c579c4317c6b8e5d4bfe47c4
BLAKE2b-256 fd9f2511e44cdeccb7b5dc4f3ce7d3d17059e703ecc2ec18959d0daeb4e06393

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1.tar.gz:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81c206b3e84bd0255a207861d16c0d2828c578a9961aaa245fb712399b04f8c0
MD5 051c465d0b9e5989b95828693290f73a
BLAKE2b-256 4b98304c3008eb381b01d5ffbe3b0ab0c43c4030ed9d65744646f1a35a3cbf99

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 61f0b6e6a77924f1275921d7f168bba018f02885cce75a4c6410de5100f782cf
MD5 cb1dbf0327333ca2d39ca0ab49342f72
BLAKE2b-256 623656051c095f69c2c711c3d1b209b3dd365027f9b4e454290c03206ac702ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 22059d86871abc16dc4c0311d95f9d76cbe0c2367453b4b5f67819161fe637d9
MD5 f3d5cdec85cabe608e16880498c69046
BLAKE2b-256 da9073d53ebfd080834b6ebe6775bbc2687f0e5f243f7637360921545c1b68f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 585da7037ae7def6d96fb0e2b32db48aee8dc6dd7767068147fd5cf7a83f5f6e
MD5 eb8f41a0e40bdeafe9d4ce7b9c7c8314
BLAKE2b-256 416bebcba620aee91f27e87a0a217f7375e66cd6d148f30401b446afd5af3106

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 riichienv-0.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 85b220db227b666bce4539cc7e1c3a569397156a71bfa13eb1cd5441cf15b9d4
MD5 e152896c403367f2253e53a530970cf4
BLAKE2b-256 d0ae45eb262ca3114ce7afca85e53bab13db6e61bea72db7b0de0b6825b84725

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp314-cp314-win_amd64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp314-cp314-win32.whl.

File metadata

  • Download URL: riichienv-0.2.1-cp314-cp314-win32.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for riichienv-0.2.1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 c7fc0af039e35f418d569be44ac3e3191426e72917cf037863a07b8ac79c9e7e
MD5 75051508bf50b0e0a4b28246227608d4
BLAKE2b-256 a623563dc69d0a0086b41d4d5e0f600f6981e1494e2bbf2baf840610b691d751

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp314-cp314-win32.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d0c103c68ff58dfa70117f907c2149564088c289f2e973804861e40d984acaf4
MD5 9505d647725dc5dfb340b49f518351ab
BLAKE2b-256 e864a127460d43106d9e4f50c5ec4f96eaae3516b8e56a87263591b0d24397ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 59942932e8372387f166b5207637c9a860023db0f87d885b73c36e961866679d
MD5 3e35398b1211324179093bb88937b1b0
BLAKE2b-256 f54dd432f380a723d34edfb79571888714011b462ec068db4307ba422fbbe591

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 1cc561e4911b994ab932dfaf45430b4cf4c97ed4715e920b343dd2c3179dc506
MD5 eb7bae05b061b39b405253795bed7ec9
BLAKE2b-256 5065657e3cf663eb2a757bb043695a523bdfd2ef303f215eb7a310ae21ee27ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed5786d5b5490bf01e2b6204116ef411f2bc42aecc01bab410b081ca1f31d64c
MD5 5d6df1e04acbc4275c07feaa942ef8d7
BLAKE2b-256 2541ba26bdd9c70c11e233a186d75edacb35d3c183f46893ac0806842a111202

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 83fe06498bfaf6c8ecf24d88fd65ed5a806f9764a9e0756a18144a00e2095b5d
MD5 f49ba6e67d7e3785c1b6ff8f88e5a615
BLAKE2b-256 5377e9d131f9e5f78ea37f0c2b0a00939c5d4c45541cde6af3543d21b835110d

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 riichienv-0.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7df80eb632ff439da11dbe9501b69d6c3f3124e230ec599a6e5636aa1298b349
MD5 f2002f124f113fe6946c74b2604b4557
BLAKE2b-256 bb9a4ae79a9591858aac0751326629e15cdef466065c3115ebac893d0350ebd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp313-cp313-win_amd64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3fb801e97fd141a51ca81b58878a1b9ed1b2da8b32eb47331a05b5bf273d0def
MD5 567f25bce73f021497bbf2eeb00484aa
BLAKE2b-256 80d5e3405dae1fefd771d93c5594d191b710ba2b30466308ca2305d4235d99ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2166e710b1e6b4bf5c4f9bcd992fc01de6de4e76f330f9aa4d3eb11e0ac9c186
MD5 6cbdabf774bf7fca2c2e9e6f9dadf4ff
BLAKE2b-256 d3ea05a0ad5d14a6384db01037cd01afd6a7f4f9cecb5b580b2386e904edc741

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 4eb499ba78b319cb0a9222faf64d07c1ea4d2ec8c1a28527c03634b46a4e0b60
MD5 83310253484698d58227c74d696628d4
BLAKE2b-256 a72f34acba9615343e17ab8d7894562f6a8c98427e33a8bd8d7a7f0d21832c08

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86892feb730479c8408507eab5990f003dee6a38e07a5b48afb7c1c7876f25c7
MD5 a1bace27e354303c81289b6f70952fb4
BLAKE2b-256 4e5d1bb6546e43077aa19cc236bba265e6862091333a0a13c21fad084df2fe1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 riichienv-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2c68c273369088e7182493909746fc5ee15ee5e10614f528df389ba3dbc9573c
MD5 548b8193338cf9f3702f40c2fde7fdc7
BLAKE2b-256 6e9b288adfc2b1b88d84056dfdcd9c96a2d91667d3a4a92b7ba635b07025f6fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp312-cp312-win_amd64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7900c6d1c26a419d9412932183629afb5d7c32c00d6e6f8b3a8134e223d49e47
MD5 c628c9f7ecec0159236004c1c6b2778f
BLAKE2b-256 1ec1d693563426b24c48ce3651c3619f21d604b369dedca0e8898c2e9891a690

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8fd7b2881306ff8a79241557310004de64265c312fa1c7d1fae23b9c7a735129
MD5 3da6fc234c9384854f10d655c629b5f1
BLAKE2b-256 6fe4993be1ef3b205bbc1a38d89c42b6296f70e22e31aa1329ea720eb361fc5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 108a4366ca9a32b2c2002a40e86737178fa2840b59bfc6e9ad8bd3cb577bb4b5
MD5 54e08b1e84964bb574af8449fa40fd0b
BLAKE2b-256 b6ec03b03b0b526cec5c767e8b7ded3bc9ca2a2c10607ada1e6cba436f541868

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79c0bf10423a34775a1c8bb4987e550531662a4d8b628dee8a4686c2cdf367ac
MD5 4575a1debba0d7cc8fb0fdd0afe9aa7e
BLAKE2b-256 5702e66ba10fcf85f96e31016f91d58e86f3e184cdc75ac9a619f14f568b633e

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 riichienv-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bdddfcaedd7ef571a45486e34788073783ffc3a070de7aad475c7038be6c92b8
MD5 6489206b02a06df9a91078f971aa5d32
BLAKE2b-256 62c4a61b147e1f08ef692e7eb8ab0c9d450f3fe0f337dda7553409c47cdfb437

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp311-cp311-win_amd64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e80d18e41175db71f95ff05f0102670cfd89c9d1a4b72d80d141ab966a8c49c9
MD5 fb98fa05e349ffac1b681affacab0a48
BLAKE2b-256 1a62a439926d3e58c2341a725770eeafe5dd3a0c0aa86407e6754e1450115001

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b66ea8114c729406d7ad0362a8710d69a85a0e62a12a7ccd8a8b3fb7ba1beef
MD5 6f8681fcd17e0b6e1bfed078e0a4aff0
BLAKE2b-256 86749b87b883a34a7763a2f23be450a0005f9b10dafa2be75e4f728e94c192af

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 70ea9f5da02d54d95109eb4279ceab58f7072c4f891486bac474c301070c711c
MD5 5fbc245dd3c6e944abeaf18eecc5c046
BLAKE2b-256 3dc1e0f0737ea00039232637ae4d22c9a5da81a4d2ae2456bf9b626d5b674f41

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 822abf860e8b4b22ab3915506c803053013b72d7e1ddf182142138ce4b2f8ec3
MD5 37299ef88d25b3eebf7a53d5cd5fabaf
BLAKE2b-256 319c37d9322d476c7b5284145ba34e6f92629c92441677ee5d401dcb7d4065d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • 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 riichienv-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a19682d742e92a0f5d62f53ead75bd44e8549455809b59dea354039dd788836f
MD5 14f45c126da43c90effb72fc090df362
BLAKE2b-256 4867b9612dbe25f5fc1667632d82a3b3f705823ad7e05686c25d2994885f27a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp310-cp310-win_amd64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e89da4f58e598daa18c3df3b4d66e4f3018211b870feb49f623f2e08c4372c9
MD5 8099026478ba9685691061f1fae443e8
BLAKE2b-256 f5ce2ee664711cf101af60c6b89efc5f6a131eb27b792337ed7b0e155886bce6

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ba4c4794150b19038799e0c80db38b56437f7adf7917d50a10a143ee68469d27
MD5 f84497c83224098e441f1e3e7650e512
BLAKE2b-256 ca8580a0076266d13d1b57489ed1311e2de40dcb2d993e298ddc15658a52259d

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on smly/RiichiEnv

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

File details

Details for the file riichienv-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 96e0d2ade4bdc04ae8689810548c4c823f7c149a044f0778bbd50b4423b52fdb
MD5 43b22b55b0a99e8d77a528686b5fb1a4
BLAKE2b-256 ad58f815e26d337ea55eb70992614033e74978844af51d0788ffb15441ada6b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: release.yml on smly/RiichiEnv

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