libs.types
cls/types.py
1""" 2cls/types.py 3""" 4 5from dataclasses import dataclass 6from typing import TYPE_CHECKING, TypeAlias, TypedDict, Union 7 8if TYPE_CHECKING: 9 from pathlib import Path 10 11 import pandas as pd 12 13 14class TeamDataDict(TypedDict): 15 """チーム情報格納辞書""" 16 17 id: int 18 team: str 19 member: list[str] 20 21 22MessageType: TypeAlias = Union[None, str, "Path", "pd.DataFrame"] 23"""メッセージ型 24- *None*: 空データ(なにもしない) 25- *str*: 文字列型データ(そのまま表示) 26- *Path*: ファイルパス(アップロード処理) 27- *DataFrame*: 表データ 28""" 29 30 31@dataclass 32class StyleOptions: 33 """表示オプション""" 34 35 codeblock: bool = False 36 """MessageTypeがstr型ならcodeblock化 37 - *True*: codeblock化 38 - *False*: 何もしない 39 """ 40 show_index: bool = False 41 """MessageTypeがDataFrame型なら表にIndexに含める 42 - *True*: Indexを含める 43 - *False*: Indexを含めない 44 """ 45 use_comment: bool = False 46 """ファイルアップロード時のinitial_commentを有効にする 47 - *True*: initial_commentを使う 48 - *False*: initial_commentを使わない 49 """ 50 header_hidden: bool = False 51 """ヘッダ文を非表示にする 52 - *True*: 非表示 53 - *False*: 表示 54 """ 55 key_title: bool = True 56 """小見出しに辞書のキーを使う 57 - *True*: 表示 58 - *False*: 非表示 59 """ 60 summarize: bool = True 61 """MessageTypeがstr型のとき後続の要素を集約する 62 - *True*: 可能な限り複数の要素をひとつにまとめる 63 - *False*: 要素単位でデータを処理する 64 """ 65 66 67class MessageTypeDict(TypedDict): 68 """メッセージ格納辞書""" 69 70 data: MessageType 71 """内容""" 72 options: StyleOptions 73 """表示オプション""" 74 75 76class RemarkDict(TypedDict, total=False): 77 """メモ格納用辞書""" 78 79 thread_ts: str 80 """ゲーム終了時間""" 81 event_ts: str 82 """メモ記録時間""" 83 name: str 84 matter: str 85 source: str 86 87 88class RankTableDict(TypedDict): 89 """昇段ポイント計算テーブル用辞書""" 90 91 grade: str 92 """段位名称""" 93 point: list 94 """初期ポイントと昇段に必要なポイント""" 95 acquisition: list 96 """獲得ポイント(順位)""" 97 demote: bool 98 """降格フラグ 99 - *True*: 降格する(省略時デフォルト) 100 - *False*: 降格しない 101 """ 102 103 104class GradeTableDict(TypedDict, total=False): 105 """段位テーブル用辞書""" 106 107 name: str 108 """識別名""" 109 addition_expression: str 110 """素点評価式(昇段ポイントに加算)""" 111 table: list[RankTableDict] 112 """昇段ポイント計算テーブル"""
class
TeamDataDict(typing.TypedDict):
チーム情報格納辞書
MessageType: TypeAlias =
Union[NoneType, str, ForwardRef('Path'), ForwardRef('pd.DataFrame')]
メッセージ型
- None: 空データ(なにもしない)
- str: 文字列型データ(そのまま表示)
- Path: ファイルパス(アップロード処理)
- DataFrame: 表データ
@dataclass
class
StyleOptions:
32@dataclass 33class StyleOptions: 34 """表示オプション""" 35 36 codeblock: bool = False 37 """MessageTypeがstr型ならcodeblock化 38 - *True*: codeblock化 39 - *False*: 何もしない 40 """ 41 show_index: bool = False 42 """MessageTypeがDataFrame型なら表にIndexに含める 43 - *True*: Indexを含める 44 - *False*: Indexを含めない 45 """ 46 use_comment: bool = False 47 """ファイルアップロード時のinitial_commentを有効にする 48 - *True*: initial_commentを使う 49 - *False*: initial_commentを使わない 50 """ 51 header_hidden: bool = False 52 """ヘッダ文を非表示にする 53 - *True*: 非表示 54 - *False*: 表示 55 """ 56 key_title: bool = True 57 """小見出しに辞書のキーを使う 58 - *True*: 表示 59 - *False*: 非表示 60 """ 61 summarize: bool = True 62 """MessageTypeがstr型のとき後続の要素を集約する 63 - *True*: 可能な限り複数の要素をひとつにまとめる 64 - *False*: 要素単位でデータを処理する 65 """
表示オプション
StyleOptions( codeblock: bool = False, show_index: bool = False, use_comment: bool = False, header_hidden: bool = False, key_title: bool = True, summarize: bool = True)
class
MessageTypeDict(typing.TypedDict):
68class MessageTypeDict(TypedDict): 69 """メッセージ格納辞書""" 70 71 data: MessageType 72 """内容""" 73 options: StyleOptions 74 """表示オプション"""
メッセージ格納辞書
class
RemarkDict(typing.TypedDict):
77class RemarkDict(TypedDict, total=False): 78 """メモ格納用辞書""" 79 80 thread_ts: str 81 """ゲーム終了時間""" 82 event_ts: str 83 """メモ記録時間""" 84 name: str 85 matter: str 86 source: str
メモ格納用辞書
class
RankTableDict(typing.TypedDict):
89class RankTableDict(TypedDict): 90 """昇段ポイント計算テーブル用辞書""" 91 92 grade: str 93 """段位名称""" 94 point: list 95 """初期ポイントと昇段に必要なポイント""" 96 acquisition: list 97 """獲得ポイント(順位)""" 98 demote: bool 99 """降格フラグ 100 - *True*: 降格する(省略時デフォルト) 101 - *False*: 降格しない 102 """
昇段ポイント計算テーブル用辞書
class
GradeTableDict(typing.TypedDict):
105class GradeTableDict(TypedDict, total=False): 106 """段位テーブル用辞書""" 107 108 name: str 109 """識別名""" 110 addition_expression: str 111 """素点評価式(昇段ポイントに加算)""" 112 table: list[RankTableDict] 113 """昇段ポイント計算テーブル"""
段位テーブル用辞書