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):
15class TeamDataDict(TypedDict):
16    """チーム情報格納辞書"""
17
18    id: int
19    team: str
20    member: list[str]

チーム情報格納辞書

id: int
team: str
member: list[str]
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)
codeblock: bool = False

MessageTypeがstr型ならcodeblock化

  • True: codeblock化
  • False: 何もしない
show_index: bool = False

MessageTypeがDataFrame型なら表にIndexに含める

  • True: Indexを含める
  • False: Indexを含めない
use_comment: bool = False

ファイルアップロード時のinitial_commentを有効にする

  • True: initial_commentを使う
  • False: initial_commentを使わない
header_hidden: bool = False

ヘッダ文を非表示にする

  • True: 非表示
  • False: 表示
key_title: bool = True

小見出しに辞書のキーを使う

  • True: 表示
  • False: 非表示
summarize: bool = True

MessageTypeがstr型のとき後続の要素を集約する

  • True: 可能な限り複数の要素をひとつにまとめる
  • False: 要素単位でデータを処理する
class MessageTypeDict(typing.TypedDict):
68class MessageTypeDict(TypedDict):
69    """メッセージ格納辞書"""
70
71    data: MessageType
72    """内容"""
73    options: StyleOptions
74    """表示オプション"""

メッセージ格納辞書

data: Union[NoneType, str, pathlib.Path, pandas.core.frame.DataFrame]

内容

options: StyleOptions

表示オプション

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

メモ格納用辞書

thread_ts: str

ゲーム終了時間

event_ts: str

メモ記録時間

name: str
matter: str
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    """

昇段ポイント計算テーブル用辞書

grade: str

段位名称

point: list

初期ポイントと昇段に必要なポイント

acquisition: list

獲得ポイント(順位)

demote: bool

降格フラグ

  • True: 降格する(省略時デフォルト)
  • False: 降格しない
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    """昇段ポイント計算テーブル"""

段位テーブル用辞書

name: str

識別名

addition_expression: str

素点評価式(昇段ポイントに加算)

table: list[RankTableDict]

昇段ポイント計算テーブル