No project description provided
Project description
pyhandel
Python wrapper for building bots for the Kuh-Handel online bot coding challenge. Wraps the core Rust implementation via PyO3.
Installation
pip install pyhandel
Type stubs for better IDE support:
pip install pyhandel pyhandel-stubs
Usage
Implement the PlayerActions class and connect to the game server via Client:
import asyncio
from pyhandel.client import Client
from pyhandel.messages.actions import (
AuctionDecision, Bidding, InitialTrade, NoAction,
PlayerTurnDecision, SendMoney, TradeOpponentDecision,
)
from pyhandel.messages.game_updates import AuctionRound, GameUpdate, TradeOffer
from pyhandel.player.player_actions import PlayerActions
class Bot(PlayerActions):
def setup(self):
pass # initialize your bot here
def _draw_or_trade(self) -> PlayerTurnDecision:
raise NotImplementedError
def _trade(self) -> InitialTrade:
raise NotImplementedError
def _provide_bidding(self, state: AuctionRound) -> Bidding:
raise NotImplementedError
def _buy_or_sell(self, state: AuctionRound) -> AuctionDecision:
raise NotImplementedError
def _send_money_to_player(self, player: str, amount: int) -> SendMoney:
raise NotImplementedError
def _respond_to_trade(self, offer: TradeOffer) -> TradeOpponentDecision:
raise NotImplementedError
def _receive_game_update(self, update: GameUpdate) -> NoAction:
raise NotImplementedError
async def run(client, num_rounds):
for _ in range(num_rounds):
await client.play_one_round("pvp_games")
if __name__ == "__main__":
bot = Bot()
bot.setup()
client = Client("your_bot_name", "your_token", bot, "s://ufuk-guenes.com", True)
asyncio.run(run(client, 1))
Documentation
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyhandel-0.2.5.tar.gz
(42.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyhandel-0.2.5.tar.gz.
File metadata
- Download URL: pyhandel-0.2.5.tar.gz
- Upload date:
- Size: 42.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a3d0c041e94fbde5e66304476eab2f57511c10b855a2388bde13e192e364016
|
|
| MD5 |
ba2faceba3a085249b313563f7391d01
|
|
| BLAKE2b-256 |
6d2907e62c83504c3992127365624fd7eb6975384380603599275b3834c1c266
|
File details
Details for the file pyhandel-0.2.5-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: pyhandel-0.2.5-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aba1f0725a2aa8e77fd4e515f6aedbd64f9fea9269cc015dfc1327f66a2ccef1
|
|
| MD5 |
1c9be3db72a95853f2efc67b011cdb1c
|
|
| BLAKE2b-256 |
6f0c4b0ae920b130be2f9605457e6251a6c93ef7c068ff5c47c8818d0f7c8c2b
|