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.3.0.tar.gz (239.4 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.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

riichienv-0.3.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

riichienv-0.3.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.5 MB view details)

Uploaded PyPymanylinux: glibc 2.5+ i686

riichienv-0.3.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

riichienv-0.3.0-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

riichienv-0.3.0-cp314-cp314-win32.whl (1.1 MB view details)

Uploaded CPython 3.14Windows x86

riichienv-0.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

riichienv-0.3.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

riichienv-0.3.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl (1.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.5+ i686

riichienv-0.3.0-cp314-cp314-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

riichienv-0.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

riichienv-0.3.0-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

riichienv-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

riichienv-0.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

riichienv-0.3.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (1.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.5+ i686

riichienv-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

riichienv-0.3.0-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

riichienv-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

riichienv-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

riichienv-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.5+ i686

riichienv-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

riichienv-0.3.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

riichienv-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

riichienv-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

riichienv-0.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.5+ i686

riichienv-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

riichienv-0.3.0-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

riichienv-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

riichienv-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

riichienv-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.5+ i686

File details

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

File metadata

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

File hashes

Hashes for riichienv-0.3.0.tar.gz
Algorithm Hash digest
SHA256 89c6c137e2543a9d5dccf486d358c4816f8ed713ef13404dcedb7ba45852bda6
MD5 30a6611b8fff3b51ffc3125d21dafd8c
BLAKE2b-256 ff5f1e0a2da92518ebc2c1c5b2aad67bc7291ecdbeef3b34506369029829b23c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a925671d53ed8723f46e8125e47b74939e8ee14fa44a1531a048383388b0d031
MD5 1423042e002a5483c03bbfb62d1e906f
BLAKE2b-256 fa8ed64750db9cda707b9628518004034e8d1826e2af0eea68773a3ef5d190cc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd9ce90d2f7da355404865e716c91bb4d06df5148e277a17b2fbbd1864da2e4a
MD5 8396ae7ad65ae2e19b84a76fa01f4ad1
BLAKE2b-256 8143d74f0688c77c18af1d9d7507623569f62d5fded5e54b35c7085ff9a058ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 6062005af99a87e86be512edafa8e49ee68937f8ef2287cfca30c15be8a38492
MD5 6d9da839401c8982a5f353399d825a71
BLAKE2b-256 5b194ea5ebde30e0c9c5bfd0baa3ed6474106b2e25d067f11c1cbb6a9f19f2e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 905535d911d5543bf55d7d469ce6e012be31de0d9d74d58c21aa6a43a9de405a
MD5 affab4f62a4a0acc89ebcc1abf122c28
BLAKE2b-256 7be3e76245940a77a4f21c2e77fb3c4d7a9d2cee1f43fbed4bedea2c9abd035d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.2 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.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6349546a132bf9aa9d06cf79118c0571face1db157fc1598bc3b60a60607e628
MD5 eed0657d27ed5fd9d12ed88cabd9c83a
BLAKE2b-256 88c2bd9b9c8a8369f5e6dbd179cdf4610a915e7463534b07d2a406ec782f3920

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.0-cp314-cp314-win32.whl
  • Upload date:
  • Size: 1.1 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.3.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 6e58860d4cda71a67c726f000d5bb838c10b60d9cff8377612e450aec25dc8eb
MD5 d055cd29b50675f0c2ed4e217e92cf3a
BLAKE2b-256 705033baa68e9fe101f0b445d09a212c0d6eb29053303bd5954f2b7d928e3c4b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 faaba0d6c02f31410f0dc198f8f50230e736f1e6b197b2569407c942f2e458d7
MD5 3b275161a7cc1143f906068e5096b700
BLAKE2b-256 99a2a934e427b8a4d7fe786ba3eca50bb4cba870c30177382febebc1a422ea37

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2099f749cbb5215de6e9a2d5821eb7a390102640bc46425da9ffa173646d4173
MD5 79350190e1913d280ab3513f99dea5b3
BLAKE2b-256 56067442a91b2b6f121f6ed62c726f97c641774d6153a0f8d2ffd68289a132d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 bd562e7c311996f8ec88814216d43d372a10b3823490dbf4b993f21e7f8c1082
MD5 9f54f76c676a1cabc11a34de5a7e3e76
BLAKE2b-256 7768e54e1283586c08e4589494874d207151547d8dd48b89050b3e73391c954b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 28ee0f7fea950a8e818f7e2c9a943292d121b2eec5945ce37dd56b7271bcdafb
MD5 5a5d9ed0baffc31501ae2d9ed169a731
BLAKE2b-256 9ee4c500e46a967cbb0cf4fbf21dbbd3bbb304632b277f09ba83dd6bc73e2cb2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ec6756c7dd5c3b752524553b4b0f3a96dce883ddc6d0336a12e9adbc473822e3
MD5 1e52e926e9b33a9b6d140331f4acad25
BLAKE2b-256 2c2c8f13fc4a9c8b477e64d94355034d039b76d7f460d18ab4ac3bdfa9aa8169

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.2 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.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 844c2fbd1bf626a483c2b11af332114c6569351c55579c34f13459c775c4f648
MD5 d8716539682d18f46dc51a7ca5ab3b05
BLAKE2b-256 ae8a1bb3ed2705e2bc72a4bf9850bac6c4978b697bf86a771201c623ae2547ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb51c32580d5938b96ccb1b7123cbc817cdeec69b991a77ab6cec1a16c8dd77b
MD5 85e9e2c455ebe9f1630955164fe53309
BLAKE2b-256 70b341376acebd1260eba8ee550c9c9a3a7f0ff0dfc6c421eadb3b4f48ae3c4e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f31ddd3d5eabb6b93853ebe16db2c06bc9b7f2c48319c9a32287f3517dc63e6c
MD5 40abd8ec93c97893e3f8988c501edf81
BLAKE2b-256 97f30f0fdb8ab339e1800e4663c605ec7afe2ffea9499a0c06a5b75fff99659e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 f26cf30fc16e39ae726998ea2ba07b493c2eb3b2a3d610ea8cc5ef9480cbe520
MD5 c1c37e558490174be5aace3a13ffbab5
BLAKE2b-256 299b935c2b94b8056c8bef6f485f3691c6256f580b2503cf073c98b7e52f9c9b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b7a9e1ac2f6272ec91b181c3ff71a32e8f49d339232a5ca7049823738e2997b
MD5 4a6034c9d9f6ab16a32cda6260e30ed7
BLAKE2b-256 aadc2d594a929141e3e9635cdfd3af93c47ec902404f8a8cb6057922bf6d0b2a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.2 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.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fc9e35cd285d85679c9063fdce001a8dbaf94a9851dd534adda74304bf5b87bf
MD5 98d65593537f9c76ae00b654a26d159d
BLAKE2b-256 31f2ba89d79a4a2a30ff8c8dc1e0ffe8272c9fbed4d2fc24897de2212b3631b3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69a9674e868e322523942e17fcdbdbf55cc3dda961635a3bcc8ba643d1975284
MD5 035625c49e0c82bebaa697177d6216e2
BLAKE2b-256 7a8375ce36e1334abf39f138eb6c8bf9d66815565526a6807e2db1e906d7b25e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3d0e3cc0f7f49d91d57c2e4a44567ca415fe39e465bbdeb3352b1addede4ac0d
MD5 6dad600232266e76b8a70c853b158520
BLAKE2b-256 5678871781661467e205df55f65e3478117f2b72dd9c8bac5d27ef31656b5abf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 ac4722d27ac6c43674e8ceebb4df414f025bcb032d8b91da6975a09e3fd2020e
MD5 cc07371004a704d901d04b20cb05907d
BLAKE2b-256 43ccab7fea954ed7196b95e2d442c1aad408740f8388d635eb603b6ab8d80c4d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2add0099e981a18c70eb5b5c7065168976ff87efa9d0cf61f0b0ad785b42e5a3
MD5 82448be5d9b73bf119868f8263596161
BLAKE2b-256 f51488a2f71b3fc3039d45d17f65123ef0eeabf51961a910ffa69c51d6bc8b63

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.2 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.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6b64e277c04c96cfcccd15feb9bae538cd3b6d41224b8103f7b50704f32892bb
MD5 195dbc05971fdc69c47d27b268beccd7
BLAKE2b-256 1b4611c23fc228d5ef7c117e1c898e1f636bbf2efdb5821082ebe2c0a4e54024

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14ed1cce65e6c11a83d9a03e99c93810057df0824a46020a3635fbc6b63260b2
MD5 dfcd4a186411452b9ea8405be46923be
BLAKE2b-256 108c588b3a4f371f39c001997b0353d56b30414427aa72f75f06a9f87bfb7628

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a8bf0fc69365a5266f5957e5028d38f39839c64e489cbbee1fea45392ba14ae9
MD5 13586b7f8a8784bb12764d298b7df1ec
BLAKE2b-256 bfb78f797ff9510259324f6dbf20071aa735e6132321c80d9f7a8839ee814f04

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 f7b67afae900238009bdd001fe9fee9dc241d4277c6cec0867b38491bf47564b
MD5 000f266766a773f7d10497cf2120c2a4
BLAKE2b-256 8d363cc34e14aca97788aa0b57ddd4ab24e87877f52ef3382a763bae3a4c8034

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bdb620e3bdc05d766cde9e3dc44605d8b8b1d9282e98fc15857b983bd385b3c3
MD5 8f3a10c5566afe7878d2f8276aa0a0ab
BLAKE2b-256 aa740c862d59c6c36b1ef57518b7ed272524aaf22a9d1a430ef36bd7f5aa390e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.2 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.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5004538f5d2b8e42c56bcb85dc37b9efeb89d65941ea82d2145daf6ff85501cb
MD5 3e59b865140f630732863d8782cca7ec
BLAKE2b-256 b70d88ba9c73992432bf1a98ada334ea5c08dfe4d11de78699efef085c485051

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 330f32766b187acef3dc3dc9cdb4eca79dd314aa9ea065a68ccefda1e4ed9cea
MD5 12152a20156b5d743c0e3a8fc2bdc394
BLAKE2b-256 df15742580e31916f5a6ef38fdb145db018e633a075b75a24d9a03899a818de8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b7f135a9583a030cb8197e71fe47596e2e856c1c1a09c309c48bbb2ef7319229
MD5 33e9c02a52e29bfa92e590e36da058ac
BLAKE2b-256 0167666b2fc7e7d696d3fa73fb431ed0c7370d56420c2edabad01530fefe4020

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 a958bf75f18559d833d06fb77507512dabedac0072a53ab956982c5c0b49256f
MD5 0b257d784f2284b487571ba533e614ec
BLAKE2b-256 ea700a6a84d7232a2bf0a112ff7f9f214efd8fdd83c3c9d39604cecc51782c68

See more details on using hashes here.

Provenance

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