libs.commands.report.matrix
libs/commands/report/matrix.py
1""" 2libs/commands/report/matrix.py 3""" 4 5import os 6 7import libs.global_value as g 8from cls.types import GameInfoDict 9from libs.data import aggregate 10from libs.functions import message 11from libs.utils import formatter 12 13 14def plot() -> tuple[str, dict]: 15 """対局対戦マトリックスの表示 16 17 Returns: 18 tuple[str,dict]: 19 - str: ヘッダ情報 20 - dict: 生成ファイル情報 21 """ 22 23 # データ集計 24 game_info: GameInfoDict = aggregate.game_info() 25 df = aggregate.matrix_table() 26 if g.params.get("anonymous"): 27 mapping_dict = formatter.anonymous_mapping(df.index.tolist()) 28 df = df.rename(columns=mapping_dict, index=mapping_dict) 29 30 # 表示 31 msg = "*【対局対戦マトリックス】*\n" 32 msg += message.header(game_info, "", 1) 33 34 if df.empty: 35 return (msg, {}) 36 37 # 保存 38 file_name = os.path.join( 39 g.cfg.setting.work_dir, 40 f"{g.params["filename"]}" if g.params.get("filename") else "matrix", 41 ) 42 43 if str(g.params.get("format", "default")).lower() == "csv": 44 file_path = file_name + ".csv" 45 df.to_csv(file_path) 46 else: 47 file_path = file_name + ".txt" 48 df.to_markdown(file_path, tablefmt="outline") 49 50 return (msg, {"対局対戦マトリックス表": file_path})
def
plot() -> tuple[str, dict]:
15def plot() -> tuple[str, dict]: 16 """対局対戦マトリックスの表示 17 18 Returns: 19 tuple[str,dict]: 20 - str: ヘッダ情報 21 - dict: 生成ファイル情報 22 """ 23 24 # データ集計 25 game_info: GameInfoDict = aggregate.game_info() 26 df = aggregate.matrix_table() 27 if g.params.get("anonymous"): 28 mapping_dict = formatter.anonymous_mapping(df.index.tolist()) 29 df = df.rename(columns=mapping_dict, index=mapping_dict) 30 31 # 表示 32 msg = "*【対局対戦マトリックス】*\n" 33 msg += message.header(game_info, "", 1) 34 35 if df.empty: 36 return (msg, {}) 37 38 # 保存 39 file_name = os.path.join( 40 g.cfg.setting.work_dir, 41 f"{g.params["filename"]}" if g.params.get("filename") else "matrix", 42 ) 43 44 if str(g.params.get("format", "default")).lower() == "csv": 45 file_path = file_name + ".csv" 46 df.to_csv(file_path) 47 else: 48 file_path = file_name + ".txt" 49 df.to_markdown(file_path, tablefmt="outline") 50 51 return (msg, {"対局対戦マトリックス表": file_path})
対局対戦マトリックスの表示
Returns:
tuple[str,dict]:
- str: ヘッダ情報
- dict: 生成ファイル情報