PK!1autochess/__init__.py__version__ = '0.1.0' PK!autochess/bench.pyPK!autochess/board.pyPK! GGautochess/piece.pyfrom dataclasses import dataclass from typing import FrozenSet @dataclass class Piece: """ piece is a drawable, no level, no position""" name: str species: FrozenSet[str] class_: str cost: int @property def piece_type(self): return frozenset([s for s in self.species] + [self.class_]) PK!autochess/player.pyimport pandas as pd from autochess.pool import Pool class Player: level = 1 health = 100 def calculate_reroll_chance(self, piece_type, pool: Pool) -> float: from autochess.refernece import reroll_chance reroll_chance.iloc[self.level -1].to_list()PK! ONautochess/pool.pyimport pandas as pd from autochess.piece import Piece class Pool: def __init__(self): from autochess.refernece import piece_list, pool_size self.pool = [] for idx, (name, species, class_, cost) in piece_list.iterrows(): species = frozenset(species.split('/')) piece = Piece(name, species, class_, cost) self.pool.extend([piece] * pool_size['Chess Pool Size'].iloc[cost - 1]) def __iter__(self): for piece in self.pool: yield piece def to_dataframe(self): from dataclasses import asdict return pd.DataFrame([asdict(p) for p in self.pool]) PK!"autochess/refernece.pydata = "https://dotaautochess.gamepedia.com/Chess_pieces" import pandas as pd from requests_html import HTMLSession, Element session = HTMLSession() r = session.get(data) tables = r.html.find('table') def convert2html(element: Element) -> pd.DataFrame: dfs = pd.read_html(element.html) return dfs[0] pool_size, reroll_chance, piece_list = map(convert2html,tables) pool_size = pool_size.sort_values('Chess Cost') reroll_chance = reroll_chance.sort_values('Rank') classes = frozenset(piece_list.Class.to_list()) species = frozenset([sp for maybe2species in set(piece_list.Species.to_list()) for sp in maybe2species.split('/')]) types = frozenset(classes.union(species))PK!?$$autochess/unit.py class unit: """stacked piece"""PK!HڽTUautochess-0.1.0.dist-info/WHEEL A н#Z;/"d&F[xzw@Zpy3Fv]\fi4WZ^EgM_-]#0(q7PK!H)"autochess-0.1.0.dist-info/METADATAIO0>X٪JV[(C2M,y ^{lJ^8x{Os:p=\+FJZ$ Hd&˜4O^J0#ɵid[TܻAFVj7DPtzզOs6L VˊER\ 8ѽ)TC$[t~ŭcE΋cMNV:f/:8)f?G(\,]G .^:2F$eMt1Є'Zg<چZDPK!HRF# autochess-0.1.0.dist-info/RECORDҹP἟lقX."l$U+(o 4_A;VNTK?!Nk5mF{*F%&C)\91e/vb$(A f7#5lYɷ b:8nMV'^43T0Sďv.ąSTa:"3!QE̿{]bj__^)MqlpyԸo?l_Fq8 PK!1autochess/__init__.pyPK!Jautochess/bench.pyPK!zautochess/board.pyPK! GGautochess/piece.pyPK!!autochess/player.pyPK! ONhautochess/pool.pyPK!"#autochess/refernece.pyPK!?$$autochess/unit.pyPK!HڽTUR autochess-0.1.0.dist-info/WHEELPK!H)" autochess-0.1.0.dist-info/METADATAPK!HRF# 1 autochess-0.1.0.dist-info/RECORDPK G