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: 生成ファイル情報