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 crates.io 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.1.tar.gz (241.1 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.1-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.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded PyPymanylinux: glibc 2.5+ i686

riichienv-0.3.1-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.1-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14Windows x86

riichienv-0.3.1-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.1-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.1-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.1-cp314-cp314-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

riichienv-0.3.1-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.1-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

riichienv-0.3.1-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.1-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.1-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.1-cp313-cp313-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

riichienv-0.3.1-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.1-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.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

riichienv-0.3.1-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.1-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.1-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.1-cp311-cp311-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

riichienv-0.3.1-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.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: riichienv-0.3.1.tar.gz
  • Upload date:
  • Size: 241.1 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.1.tar.gz
Algorithm Hash digest
SHA256 9b465d2972b0dcb60b66aec3dda7c6c6bd1facca024f986865089279a575c86e
MD5 e0818fd64b371a54b7946833187073d1
BLAKE2b-256 113bb3ece2f5f9aba3ec645fc187e6ff8909d639d25a398bd4f100309e113a5d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ca3c2e1da57748845b09ecd236d847762bc285aeaff20566e2c53139ef6f6b7
MD5 6985ab0c8b364ad96c826cb7d0254c06
BLAKE2b-256 3b26080b0a471e5d3be2fb50e4de436dca22e6f4622d2967423fcf9a9a211c60

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ad126155d34e50617b0800b37a27862c584ab0c402f19bee816cbaf8442fc98
MD5 6a6e29662700232fa28f965581c87b4b
BLAKE2b-256 b0925c512e07b6220d18a5f417a6820064e6cdb973ae9b1a8d151fa3ed1bd569

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e326c7d9ce5535330c2227b017cc0257ce94fde59562c76dc4760e5e24e0f9fc
MD5 7dfa13c9d4d704f8c4d907cbae3e0134
BLAKE2b-256 986a8a729ef65558718708ef54afbf4f0917c9b9d9f6747aa9736352d78944ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bfebff3bcdba2b99ddee7792c857aedb50e7a0093304cbc424844dfb1a02b4a7
MD5 f3603eecc076ca4425e62e0b5b23f29b
BLAKE2b-256 1367be726ed844cf83cf77c3fcac9ad827de12fba5fc5babfda2850e139b37c5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.1-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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6a50cd1ab29f67b4ad9fb44ffbd1435f93b2dc1b4add1776112143f599373272
MD5 7b881316a88d6f7bf98742426fbbf4bf
BLAKE2b-256 89e2e57aab25f603c5eba8ebe81edc02a1ca8145e27ae089556a98a3d5e8884b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.1-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.1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 02e4f5143b4a1a04942f58343b03aacb43e5abdb2b9acad84d282efe3f3bab7b
MD5 5489adb79b62c2d4540d6a96f2807e1c
BLAKE2b-256 8ea09f1a7c60ba67c7648a3c8ef7f1d457893f2e44b64230191277cfbc2ee073

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6636fe29e0534e5b03c0c5cd9b8d96c9b47e75f2caf8995dd06b1810f462a934
MD5 789e693c3d1d9f20157490eb948bf4a8
BLAKE2b-256 8a83f1e83b1f3e8aefe5e06656c149503866c7bc652577b61481e2f67d43c707

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 deb0cfd1e29a49acd907f087eb7e71a75458c6940e8d798522298c5120e1c3e2
MD5 d052af4a3e56351d8c7a2bd342880d86
BLAKE2b-256 5038a1d4043e6915751e1726ef6a52efa6e6540389d6959b14dadb87abf356d7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 83665e952ca698c7d99941335a685075d2327a538a94ad8804d7e414eea5e8ee
MD5 45696de1529b45fb9ab1202944116bb9
BLAKE2b-256 4d5283203847c8a3c1d3104f158640b8caa2a4d2b0b8376c7c4a124ad762cb1e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 072de376152b18690ccc188a6646e8854af88e78b0888cee07c90da34cbd5af3
MD5 0201cf65ac83f467d8fcf64a0be5a406
BLAKE2b-256 7d295799963d7ac2502bf5fde8720a2b7ca0fe2846aed815be8380271c115843

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 468a1da677559956fcdaba03fb5c447e3ae75657d84f842f9c8d721a161cf760
MD5 b269f6e031ed5fb8b4e912cf04411292
BLAKE2b-256 43241278e0c853c866666e400a42b0efc8aa70a6f03f727bc740876f1a139d73

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.1-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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8527a4f74eb0a62639e7481bf088d3990041a828d0c7b3f484531ddccbb919f1
MD5 b7002b760904c9a855953843653c4cc8
BLAKE2b-256 457f296c28e247e0e0a0261e293a9a0eacfdee02e9baf62da4ddb1b0b1b98386

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 066ad2689f4e56a14726a9cd06c905864af016308007d0381b4482db24fd6561
MD5 4c08961ad9079eae3de54194fed1f2fa
BLAKE2b-256 8b46a25c7509c18c2df99711250ef612096e0b7f64a95f122f011604add32cf5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 08770567ddb3456b4919b39986f313b7d0aa23e0bd1366dcb6a370679d9df62d
MD5 c77bef503cfca0eae4e2c2877261249e
BLAKE2b-256 2ff73a10f43c6eabc8143b917d23e01cc536a53af39f7b4ed76e93a8b92304a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 819876b3c93e3fd09095ab54f69c7c85bc3e91d0135ce0d01eed9d2ce5de7d90
MD5 4d4d9cc0a2b486c892eaae77de298d3e
BLAKE2b-256 37dd047c06375bc2ef360c02f9abe29850009f8c52b12a706d08016c2fd4d6ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b3d2999d9bfc89bb065d28187e4e491411241387203577f5411a276cbb85358
MD5 5480d2a6fd28618efd8dd8c41b85067c
BLAKE2b-256 46949f6c32ceb03696dc4607e7f495a49798b4b931d1e22cd4bcda6b810e6925

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 aa6bc14d0dbff2f5276cc47bff86b5e339930bd465e3078891c43ddf89daa130
MD5 d10c72403c365d7258d6b3cd5efa2090
BLAKE2b-256 28b268e23f0708e7d608f40234fb7b197fee800c98774a32deecd05f20d59de9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ec5bbe792d860af5a8907fed00aea6e39b89a6aab1cb6fd1f909a4850d61da7
MD5 5c68608b534bbf806556b7d05f06a75a
BLAKE2b-256 46018f331b7a75d55d28b33fc43868fa695a82c311bf218ad193f4fe50554d9a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b05883caedc160ca7df6f735f4610f66d93dfcea9ab19fb6787e1f1f20d05293
MD5 46abae12b712fd4d72bc3d443b352f98
BLAKE2b-256 b308e39460ff5398fe4174252a85f701e11bd95f121b7ffcea8c10e786b357bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 8e5f2735a3610ec3e1864da6f072e3dee321f3abc57267050fa7c16bb3024e23
MD5 e399344c8dace0df3712cbcdff7e6782
BLAKE2b-256 31cd5f42bc0f6aab3363641e419c9711847fa14db6c40dc9a6272aaaea22de73

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc35f64c6736c215242755d507c780a9ffadd50330eb7c9fa1ab03884acea11e
MD5 a24d0a354c0f816fd26d0d45210cea28
BLAKE2b-256 03d76e930e3856c0add812fe99c4190fd9aa9bbd4187c3197fe336aba646c273

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ae09137f6612ae3352eb2ef3e20b10f82cdf9fe8eea98d99991a4991f74a61d6
MD5 2dacd0d278ceee8fa26857dffa88320d
BLAKE2b-256 681592bba0ad6c87f3b4dd2fa1ad683587b908d34aeb366f55855015790d5bfa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c82c549a82fa694ea2ee1e508f9512763aa736db660d0b993f192a90aa92982
MD5 323aa1d382082778319e0f170f188b39
BLAKE2b-256 bd6a6f0f319e9479062db216f06ee05a53f9a43113298455777476461734032c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 192624a68dd7c0e09812f1ec57e9a8f5591cc860860d197ca1a747ddc36056d3
MD5 462a94d8d3f500212e5fc8506626a8c8
BLAKE2b-256 02037e042a48c022c349d764a21b23eb7eab5ac362b8cf89099b0728e3ee4ae6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 08344c03ee61aa6960453a6a75f0fe1015f8b7c1819805f730a82f65d73de453
MD5 470e2e02d56a120b8c5448ff5ebdb3f8
BLAKE2b-256 f7544263425c77f02c80325a92d8c455640dcad6c1f1a6b73f944f9c84e68921

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a45ddea31e191299ff8c6b15b5bba1a64658a8d6e51556d02f36e8e85875ca5
MD5 a4a8d7305e60d03fef66f92d3aa7a0bf
BLAKE2b-256 3b98c3c63b4127139c7b956315b7a221cf75daad32ee4a47b6b3e6ae2017d834

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: riichienv-0.3.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0d2090f47e7143c2ebd1d3e4acff4a83cf6f8609bdd934f505a04d91bbfc2c4c
MD5 b765aca1532b76154ad1f6d73a29d88c
BLAKE2b-256 ec521c782c9552ae2827fb7253cd1b2fb763e01d21cdd8f5053e57f939ed6a5d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf3d124811dc7a8c3f6a4da08dcac75cb17afa38856845a46e2f794da2b695fa
MD5 890578ef68e75fb0b757479c443ca75f
BLAKE2b-256 19c6c08f9eefe7ba1c702ffc4f9159ae026f0dbddce150cab3833317102a0325

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 528cf0428ed7bd494f211c97619a8d2730f512d4ee89301523c407367b9157e0
MD5 bfc1f40496e8708c13bb1d5224f85525
BLAKE2b-256 894435aeb6feebf5bda7d1756c932ed7a460917f666cb4bd49f33c3f1d2890c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for riichienv-0.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 607b6ed17bd75f0ed235d9cbe2e100e70dbb5dfe8306e0dfbbc08ad3e1ef0dd8
MD5 3525922accac6298dd09e0a401e7685a
BLAKE2b-256 97695de08bf632ebef3dddbaf802ff39f663daac7ce45c645aa0f365f7c6b98b

See more details on using hashes here.

Provenance

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