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.0.tar.gz (153.0 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.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (878.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

riichienv-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (873.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

riichienv-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (935.2 kB view details)

Uploaded PyPymanylinux: glibc 2.5+ i686

riichienv-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (862.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

riichienv-0.2.0-cp314-cp314-win_amd64.whl (693.0 kB view details)

Uploaded CPython 3.14Windows x86-64

riichienv-0.2.0-cp314-cp314-win32.whl (652.1 kB view details)

Uploaded CPython 3.14Windows x86

riichienv-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (872.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

riichienv-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (864.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

riichienv-0.2.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl (927.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.5+ i686

riichienv-0.2.0-cp314-cp314-macosx_11_0_arm64.whl (806.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

riichienv-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (862.8 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

riichienv-0.2.0-cp313-cp313-win_amd64.whl (707.6 kB view details)

Uploaded CPython 3.13Windows x86-64

riichienv-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (887.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

riichienv-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (875.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

riichienv-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (937.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.5+ i686

riichienv-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (820.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

riichienv-0.2.0-cp312-cp312-win_amd64.whl (707.8 kB view details)

Uploaded CPython 3.12Windows x86-64

riichienv-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (887.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

riichienv-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (875.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

riichienv-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (937.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.5+ i686

riichienv-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (820.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

riichienv-0.2.0-cp311-cp311-win_amd64.whl (697.2 kB view details)

Uploaded CPython 3.11Windows x86-64

riichienv-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (877.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

riichienv-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (871.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

riichienv-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (932.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.5+ i686

riichienv-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (811.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

riichienv-0.2.0-cp310-cp310-win_amd64.whl (696.2 kB view details)

Uploaded CPython 3.10Windows x86-64

riichienv-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (878.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

riichienv-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (870.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

riichienv-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (932.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.5+ i686

File details

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

File metadata

  • Download URL: riichienv-0.2.0.tar.gz
  • Upload date:
  • Size: 153.0 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.0.tar.gz
Algorithm Hash digest
SHA256 ecbc7d53958f4ba7ec60ae48af6af7f3cb9b17126a9d617629a0eb36d450b4f7
MD5 d8f399524aa43c0359a635d240dfa2e7
BLAKE2b-256 f1787fa14a0eef170883b89fc98a23daa74fc1665680ef09bbca43d45cb0d0a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0.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.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9fbce74fe3f5f957910877bf919c6564fb353e227bb15f9673573067e720187a
MD5 342f2e656690173d0d811dbee77a4a60
BLAKE2b-256 de55e74b49329a44e006bb55d455355ccc0fec248b1b0107df50524e0cba8159

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e6204b6bc869aa84ca511eb2d03fe2d92e2675b67ea8f5eb44bdb9c2d5f9c4de
MD5 39e5083df07fcb5e1e945c23b251f5a3
BLAKE2b-256 09e6fbcfc43db9b75a25ca9cd3dd4b2913f94aea8d1765770260c15dd0e25515

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 92a2dd322c8fcce6c68d76f91629967e7ac869b666e15b943b78cf501c6501ac
MD5 32dbe3e72f729b914ac3bbf37ea825ad
BLAKE2b-256 20521a921c66c48921e964d996e3168ef3e533897dd1d8bfc2e07cda767b85ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2cd3b61852888c63fb82dc2b43a9cea4a243b84f1a174f1bd78760d428057d8e
MD5 87acfa4e4ed6777470e3ff637e3d7ba8
BLAKE2b-256 0e338bccd353ad5834855377d8d3e5467d690696ab74ff2d52c85037be0293ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 693.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 riichienv-0.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 646b0d12ff2c4145da9f4387e1b98658d86793ac1bab9dbfe1444215aca01798
MD5 106ea7f83aea10b84a61956975dcfc9e
BLAKE2b-256 e8836b1a83a779064314dc3acf32f93f9cab90cd5925df0aa0fbd05774d40570

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp314-cp314-win32.whl.

File metadata

  • Download URL: riichienv-0.2.0-cp314-cp314-win32.whl
  • Upload date:
  • Size: 652.1 kB
  • 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.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 105815ce96a1e095ceb8b546ba7287c84b1f484831de0b871bae2cae19eea3fd
MD5 863351511354ea6e7714967075f62a74
BLAKE2b-256 382075c72844c9cd73faf66d75f6de05b4c2a8de6763316c3db091a9a69dc2d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7d2f3682b6935e6af4a62cf96bf4aab7d4195cd3af2bccea38f3064edcb3dd7
MD5 d31912970cf8931a29110418eb6c0304
BLAKE2b-256 970d9427fb656621d2aad2a55f9ac7c9270d6cf8a7ee33f46285524c2f6bdb98

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 18a8b2a7df974a10e7bfc45130ebe0b6e62e858c2b7e635a0bdf59e7be95d277
MD5 83ef841658ad7780e18b461c7c630627
BLAKE2b-256 0bc2ff5d0718d945134b7fae5eb9b4d06cb03a8c7cff0e7cd669f1c42ba24923

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 5d768d49c2b30d138d85ec6e2063ddfa3f3d8302a9555a844824844814418c76
MD5 b226d03b85c037bb09174f69b17ead32
BLAKE2b-256 287cd9dbdc98a3fdeedcf9e6c23a14336a9022c709906d1664be7c2e6ef189be

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23621567b2c873bd48eb8ffb5eb325f31d5c926f9b7e8033b40a9721b7f83fcf
MD5 ca76d19a12ef099a97b0b62723f76dcc
BLAKE2b-256 7868ce4705e14d45aa2026815984f900f29db57da8e4f9efe40680be192a53bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d3d8a3534e21320007b8fbed964c1d053555e056c48cd5dfec8cb8afb5f809c5
MD5 fb064ea54fc94fd626fc79c2af758660
BLAKE2b-256 0036df99a79a9920fe4b8367ef506bf10155f1a961ec7d1592d7944ac0d0b760

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 707.6 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 riichienv-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 83a9ff8a5895a4889a68c88fd3be484bc16e990f72543ccc27238e531a0c623c
MD5 37caf334fb5d6ac04bdc4e0109d3e060
BLAKE2b-256 444d29d4d4660e90a6bb534af7493f55a1d5b5a9a1ccd802e4818474bc5b6abd

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e64af27e9d14a0773ea2dd619527f6bad3d4f3e6a79fd03429986761e9e8975
MD5 4e5c81f065dc9495209f2141acd9bdc7
BLAKE2b-256 3446623c57b4989ee0392ea855706b1dd29a9fd3d26b89811b34398da3b6d88b

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a6a91ef7476b25d1ff4a3f16623f4c612c29a805e0e3b4a99a42954e895f2ed6
MD5 1d976863a3be28989c5ad26373e7bf37
BLAKE2b-256 f87a1ae3776057cfe55f9e3ffe503b3298d2b5717a94207bee9afaaeb5410e58

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c3ad74a103dacd6fff8c1da225469f355ba2b8c352662feae8253ed4d7c41804
MD5 f17824552f47bc55c2f757d0d00fc3b5
BLAKE2b-256 ac42b63b5e361a1cc4ad4fdaec751e6bc8739b46102d5999b54dffb95dc62afe

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71273c333eebe6cf1981d354c8ed087c8ff09ef250f72a0dc329020c03dcc838
MD5 d917da079601b8b9c17b34d1b2c9b783
BLAKE2b-256 75d3f134c0dde6eeb087c6d9fdbf66d5e39e5297a4b7fe875980efdb99216435

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 707.8 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 riichienv-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9067411ee1195213941e0e0a43ed6eabc8d0e5d6f621e458b28d0f0809377fd7
MD5 05069eae228b0a335ed6c5c9d86af5b8
BLAKE2b-256 df4c621eebb42e558c0e39609112248f0dc7f6e97b3c351b217674c812c27d00

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f548d38628bc3fc6a6bdf5e4f6e137f0e6e0952904c3ba1cc04a635d6c924733
MD5 de3a04a7b5361f90e47bc733d56701ee
BLAKE2b-256 442cdb1d37800a5cffb3694e87d9984e15630e45a90cc0839e4effa479ab659e

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e305ad23ba50fc1bb260d39441994eef812b323c2ef2ad9fcdd561ce536c8586
MD5 8eb7517cda7878a4f65b36b7564868e3
BLAKE2b-256 9ddbbc5a9c537d4643b9042cbda23e2125b78e402e9ec87b0de32c23ed344922

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 613f72e99044c9dfcd792a07fb4c1cb1981532ce2c5a665acd39c28dda8862ec
MD5 320aebe203f433e64902dde7bb66a144
BLAKE2b-256 91b4d3e6904f26aa6db292e686de42d344140b3496c5c7fda44c73813392d6aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2dbaf7e2225103c5ea4185ea0b3969387e5db433d1064b27c990026743b4dfd3
MD5 7f402a65120f842a3877e31453290354
BLAKE2b-256 1a93ed7a3489c7c3d8aa0affaf5decf87f0287988114f7800d16ff853c6109a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 697.2 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 riichienv-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 84e5877126269170f85c5a877d8f5a4a9022f36a0d32f95d87096ea0b85b2e97
MD5 ac3c133727a9e70e2b87100b591fdc8e
BLAKE2b-256 aa5d3922b754c33859733cb58a186db3cf77a77b764a4075fbc2b7403bc31eb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67381d75861ddd27769a17d6f65960ddf254de2c8475f4fff5bbc7d96945cdb9
MD5 ec0ac894f2816c477cbb8b7a877350b2
BLAKE2b-256 28dbbb59fb1eee30430b965827ccbfba66ca17a19fdefd7bfe0fb1bbea6de66f

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81f9a921129cc77849a40ce517118cb4b06ce8d0b3bdc6813073946383431ee4
MD5 e951e078f3449c3578b480ed636a919b
BLAKE2b-256 5cd4a674232286b44464949a4be5312cc18d1acc6e64443a3702f14ee4c03b7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 22c0365515745bdaee03dae1f66e7c36b1a3ff3961e99264dd85849898329d95
MD5 9e3614b6536e9cfcf0eec3566873beeb
BLAKE2b-256 517640a7e3361a574803430f7ad60cb845e80dbd9d0d0b564516db66f5ebbe9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0acc3b627591474b66a27df55bcf22a909f747fde4ad3319d03a2c37c58190ef
MD5 3658c6d2f3278d01102ab5cf6d274875
BLAKE2b-256 58177ee23c8bb86b50a36fbc27f1c7990b24049a2f25a18193bc396473846e1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: riichienv-0.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 696.2 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 riichienv-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 286ef9a2936c4f803c83e63eff03140f6eb048a3853f9f05e39ce06fbcfd68b5
MD5 459eed3aedd6340644bbd7b360a6f931
BLAKE2b-256 30b3d8814926850983bda21ce01024a9844c4a680dbc2ae433a7a7326d037aad

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 481f20f7c3ef40864fa7b5ba4e254b33536961c112a635efa6464ce644482285
MD5 4afac6087b8a74199fbee63bff30a993
BLAKE2b-256 ebe72804d5ef56820acac582841e43272509d3712e0eb7fa17f67d87d039823b

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 72576d9c10059772cf4b8385fc06693372661b7baa84dff42d9ee414c5d5cd12
MD5 fed743e72ce9a6cc20f704af37261484
BLAKE2b-256 c7498567424dc2276fac2115dd0715b8ea4889f44c484f7c7aba6d686235bc36

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for riichienv-0.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 77cc52e961b9315ee14c4d3969abb128843fe87f39d99571d51f344268e49ad0
MD5 f0eba698bd247b7efe1c76550d26dbc8
BLAKE2b-256 b0125e42fc86b9e3b6463188c05007a13c6da4ff00f3d97bb0726997c665d16d

See more details on using hashes here.

Provenance

The following attestation bundles were made for riichienv-0.2.0-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