模擬試験実施時メモ2 » 履歴 » バージョン 1
Tatsuya ISHIGAKI, 2025/08/29 11:30
| 1 | 1 | Tatsuya ISHIGAKI | - datetime |
|---|---|---|---|
| 2 | - `date` year, month, day |
||
| 3 | - `time` hour, minute, second, microsecond, tzinfo |
||
| 4 | - `datetime` year, month, day, hour, minute, second, microsecond, tzinfo |
||
| 5 | - `timedelta` days, seconds, microseconds |
||
| 6 | - コンストラクタ引数には weeks, milliseconds 等も指定可能 |
||
| 7 | - `date` `datetime` インスタンスの差を表す |
||
| 8 | - 注意メソッド |
||
| 9 | - `date.weekday()` 曜日を int 取得 (月0,...,日6) |
||
| 10 | - `date.isoweekday()` 曜日を int 取得 (月1,...,日7) |
||
| 11 | - `isocalendar()` nemed tuple (year, week, weekday) を取得 (**ISO 歴** の年、週番号、曜日) |
||
| 12 | - ISO歴 |
||
| 13 | - 最初の木曜日を含む週が、その年の第1週である (その年の第1週は、1月4日を含む週である) |
||
| 14 | - ※ 1/1 - 1/3 は、前年の最終週に含まれることがある |
||
| 15 | - ※ 12/29 - 12/31 は、次年の第1週に含まれることがある |
||
| 16 | - 週は1から始まり、52 または 53 までとなる |
||
| 17 | - 曜日は 月1,...,日7 |
||
| 18 | - 例 : 2025年1月1日は水曜日なので (year=2025, week=1, weekday=3) |
||
| 19 | - 2025年の第1週は(2024年)12/30(月)から開始している |
||
| 20 | - 例 : 2027年1月1日は金曜日なので (year=2026, week=53, weekday=5) |
||
| 21 | - 2027年の第1週は1/4(月)から開始している |
||
| 22 | ```python |
||
| 23 | >>> from datetime import date |
||
| 24 | >>> date20270101 = date(2027, 1, 1) |
||
| 25 | >>> date20270101 |
||
| 26 | datetime.date(2027, 1, 1) |
||
| 27 | >>> date20270101.isoformat() |
||
| 28 | '2027-01-01' |
||
| 29 | >>> date20270101.isocalendar() |
||
| 30 | datetime.IsoCalendarDate(year=2026, week=53, weekday=5) # 2027-01-01 は 2026年の第53週 |
||
| 31 | ``` |
||
| 32 | - `strftime(format)` 書式指定通りに文字列出力 |
||
| 33 | - `date` `time` `datetime` のインスタンスメソッド |
||
| 34 | - date では時刻部分は 0 とみなす |
||
| 35 | - time では日付部分は 1900-01-01 とみなされた (実験結果) |
||
| 36 | - `strptime(str, format)` 書式文字列から指定文字列をパースして `datetime` オブジェクトを作成する |
||
| 37 | - `datetime` のクラスメソッド (※ `date` `time` には同名メソッドは無い) |
||
| 38 | - 書式コード (注意が必要なもの) |
||
| 39 | - `%y` 西暦下2桁、`%Y` 西暦4桁 |
||
| 40 | - `%a` 曜日名短縮形 (Sun, Mon, ...) `%A` 曜日名 |
||
| 41 | - `%w` 曜日十進表記 (**日,月,...,土 → 0,1,...,6**) |
||
| 42 | - **※weekday(), isoweekday() どちらとも異なる** |
||
| 43 | - `%U` 年の最初の**日曜から土曜**を 01 とした週番号 (新年の初日曜より前の日は 00 に属する) |
||
| 44 | - `%W` 年の最初の**月曜から日曜**を 01 とした週番号 (新年の初月曜より前の日は 00 に属する) |
||
| 45 | - `%H` 時 (00-23)、`%I` 時 (01-12) |
||
| 46 | - `%f` マイクロ秒 (6桁ゼロ埋め) |
||
| 47 | - `%p` AM, PM |
||
| 48 | - `%z` タイムゾーン名 () |
||
| 49 | - `%%` 文字 `%` |
||
| 50 | - ISO (ISO-8601) 互換用の書式 |
||
| 51 | - `%V` ISO歴の週番号 |
||
| 52 | - `%u` ISO歴の曜日十進表記 (月,火,...,日 → 1,2,...,7) |
||
| 53 | - ロケールに合わせた一括コード |
||
| 54 | - `%c` 日時 (年月日時分秒曜日) |
||
| 55 | - `%x` 日付 (年月日) |
||
| 56 | - `%X` 時刻 (時分秒) |
||
| 57 | - 組み込み関数 sorted, reversed |
||
| 58 | - `sorted(iterable, key=None, reverse=False)` iterable の要素を並べ替えた新たな**リスト**を返す |
||
| 59 | - `reversed(object)` object 要素を逆順とした**イテレータ**を返す |
||
| 60 | - list.sort(), list.reverse() |
||
| 61 | - list のインスタンスメソッドで、list インスタンスを変更する破壊的操作となる |
||
| 62 | - `sort(key=None, reverse=False)` key, reverse に従い並べ替える |
||
| 63 | - `reverse()` 要素の並びを逆転させる (ミュータブルシーケンス一般に実装(されるべき)操作) |
||
| 64 | - 戻り値は None |
||
| 65 | - operator.itemgetter(), operator.attrgetter() |
||
| 66 | - `sort()` `sorted()` 等の引数 key への活用に便利な関数 |
||
| 67 | - `itemgetter(item)` `itemgetter(*items)` `[]`で取得できる値の取得 |
||
| 68 | - 複数指定して key に使えば、要素(イテレータ等)内の任意要素でソート順を指定できる |
||
| 69 | - `attrgetter(attr)` `attrgetter(*attrs)` `.`(ドット)で取得できる値の取得 |
||
| 70 | - 複数指定して key に使えば、要素(属性持ちオブジェクト)内の任意属性でソート順を指定できる |
||
| 71 | - collections.Counter |
||
| 72 | - `Counter([iterable-or-mapping])` |
||
| 73 | - 辞書を拡張したクラス |
||
| 74 | - カウント済み要素をキー、その出現数を値 (整数) として保持 |
||
| 75 | - カウント済みの要素を `[]` で指定して数を取得できる |
||
| 76 | - カウント対象に存在しない要素を `[]` 指定してもエラーにならず 0 を返す |
||
| 77 | - 後からカウントを増減もできるし、新たな要素に対していきなり数を割り当てても OK |
||
| 78 | - `elements()` 「キーを値分繰り返す」を全要素に対して繰り返すイテレーターを返す (値が0以下のキーは除かれる) |
||
| 79 | - `most_common([n])` 値が大きな要素順にタプル `(キー, 値)` を並べたリストを返す (n 指定なら最大 n 個のタプルを含む) |
||
| 80 | - `subtract(iterable-or-mapping)` |
||
| 81 | - `update(iterable-or-mapping)` |
||
| 82 | - collections.defaultdict |
||
| 83 | - 辞書の拡張で、保持していないキーへのアクセス時に返す内容を予め決められる (辞書では無条件にエラー) |
||
| 84 | - `defaultdict(default_factory=None, /[, ...])` |
||
| 85 | - default_factory には呼び出し可能オブジェクトを設定 |
||
| 86 | - collections.namedtuple |
||
| 87 | - `namedtuple(typename, field_names)` typename というクラスが返される (tuple のサブクラス) |
||
| 88 | ```python |
||
| 89 | >>> from collections import namedtuple |
||
| 90 | >>> Pet = namedtuple('Pet', 'animal, name, age') # Pet型を作成 |
||
| 91 | >>> seven = Pet('ferret', 'せぶん', 3) # Pet型のインスタンスを作成 |
||
| 92 | >>> seven # 「名前=値」の形式で確認できる |
||
| 93 | Pet(animal='ferret', name='せぶん', age=3) |
||
| 94 | >>> michiko = Pet('cat', 'ミチコ', 1) # 別のインスタンスを作成 |
||
| 95 | >>> michiko |
||
| 96 | Pet(animal='cat', name='ミチコ', age=1) |
||
| 97 | >>> seven.age # 属性名で値を取得 |
||
| 98 | 3 |
||
| 99 | >>> seven[1] # インデックスでもアクセスできる |
||
| 100 | 'せぶん' |
||
| 101 | >>> animal, name, age = michiko # アンパック代入も可能 |
||
| 102 | >>> animal |
||
| 103 | 'cat' |
||
| 104 | ``` |
||
| 105 | - enum |
||
| 106 | - `enum.Enum` を継承したクラスのデータ属性として定数定義 |
||
| 107 | - 値に `enum.auto()` を指定すると、1 から順に整数を割り当てる |
||
| 108 | - `enum.unique` enum.Enum 継承クラスへのクラスデコレーターとして使用し、複数定数への同一値の割り当てを禁止する (ValueError送出) |
||
| 109 | - itertoos |
||
| 110 | - `zip_longest(*iterables, fillvalue=None)` |
||
| 111 | - 組み込み関数 `zip()` と同様に、指定イテラブルの同一インデックスを並べた **タプル** を取得するイテレーターを返す |
||
| 112 | - `zip()` と共に、辞書が指定された場合はキーが取得対象となる |
||
| 113 | - `zip()` との違いは、イテレーター出力数が引数内の最長イテラブルに合わせた要素数であること (zip() は最短イテラブル要素数) |
||
| 114 | - fillvalue の値で、足りない要素が埋められる |
||
| 115 | - `chain(*iterables)` 要素を接続したイテレーターを返す |
||
| 116 | - `groupby(iterable, key=None)` |
||
| 117 | - イテラブル要素を key で取得した値ごとに等価な内容にグループ化する (ただし、連続する要素のみをグループ化) |
||
| 118 | - 全体としては **2要素タプルのイテレーター** |
||
| 119 | - 各要素 (2要素タプル) は **(グループキー, グループ内要素を返すイテレーター)** の形 |
||
| 120 | - `islice(iterable, stop)` `islice(iterable, start, stop[, step])` |
||
| 121 | - スライスと同様の指定範囲を返すイテレーターを返す |
||
| 122 | - `product()` `permutations()` `combinations()` `combinations_with_replacement()` |
||
| 123 | - copy |
||
| 124 | - `copy()` `deepcopy()` |
||
| 125 | - os |
||
| 126 | - 環境変数関連 |
||
| 127 | - `os.environ` マップ型オブジェクト |
||
| 128 | - python プロセス起動時に環境変数を読み込み、値が設定される |
||
| 129 | - 辞書インタフェースでキーに環境変数名を指定して取得、設定可能 (プロセス内でのみ有効な変更) |
||
| 130 | - `os.putenv()` で環境変数への設定が可能だが、`os.environ` へ反映されない (os.environ を変更した場合には `putenv()` が呼ばれる) |
||
| 131 | - `os.unsetenv()` での環境変数の削除も `putenv()` と同様に `os.environ` の要素削除を行わない (os.environ の要素削除時 (del) には `unsetenv()` が呼ばれる) |
||
| 132 | - プロセス関連 (環境変数以外) |
||
| 133 | - `getuid()` `geteuid()` `getgid()` `getegid()` `getpid()` `getpgid()` `getppid()` `getgroups()` |
||
| 134 | - get に対応する関数 `set*()` |
||
| 135 | - ファイル関連 |
||
| 136 | - 関数 |
||
| 137 | - `chdir()` `chmod()` `chown()` |
||
| 138 | - `getcwd()` `listdir()` |
||
| 139 | - `mkdir()` `makedirs()` |
||
| 140 | - `remove()` `rmdir()` `removedirs()` |
||
| 141 | - `rename()` `renames()` |
||
| 142 | - `symlink()` |
||
| 143 | - 定数 |
||
| 144 | - `curdir` `pardir` |
||
| 145 | - `sep` `extsep` `linesep` |
||
| 146 | - システム情報 |
||
| 147 | - `confstr_names` `confstr(name)` |
||
| 148 | - `sysconf_names` `sysconf(name)` |
||
| 149 | - `cpu_counts()` CPU 数 |
||
| 150 | - `getloadavg()` 過去1, 5, 15 分間のロードアベレージ (float 3 要素のタプル) |
||
| 151 | - `urandom(n)` n バイトのランダム bytes を生成 |
||
| 152 | - io |
||
| 153 | - インメモリテキストストリーム `StringIO` |
||
| 154 | - `read()` `write()` `seek()` `tell()` `getvalue()` `close()` |
||
| 155 | - インメモリバイナリストリーム `BytesIO` |
||
| 156 | - StringIO メソッドに加え、`getbuffer()` 書き換え可能 |
||
| 157 | - seek() の第2引数に指定する値 |
||
| 158 | - `io.SEEK_SET` ストリーム先頭 |
||
| 159 | - `io.SEEK_CUR` 現在位置 |
||
| 160 | - `io.SEEK_END` ストリーム末尾 |
||
| 161 | - sys |
||
| 162 | - `sys.argv` コマンドライン引数のリスト (list[str]) |
||
| 163 | - `sys.path` import での検索パスのリスト (list[str]) 以下で初期化される |
||
| 164 | - 実行スクリプトのあるパス |
||
| 165 | - 環境変数 **PYTHONPATH** のパス |
||
| 166 | - Python インストール先 |
||
| 167 | - 関数 `exit([obj])` Python を終了する |
||
| 168 | - 引数無し : 終了ステータス 0 で終了 |
||
| 169 | - 引数が数値 : 指定値を終了ステータスとして終了 |
||
| 170 | - 引数が数値以外 : 引数を文字列化して stderr へ出力し、終了ステータス 1 で終了 |
||
| 171 | - **SystemExit 例外を送出するので、捕捉可能** (終了の中断等も可能) |
||
| 172 | - `sys.strout` `sys.stderr` `sys.stdin` はファイルオブジェクトであり、`read()` `write()` が使用可能 (ただし以下の通り片方のみ使用できる) |
||
| 173 | - `stdout` `stderr` は出力専用 |
||
| 174 | - `stdin` は入力専用 |
||
| 175 | - `sys.breakpointhook()` |
||
| 176 | - 組み込み関数 `breakpoint()` が呼び出す呼び出し可能オブジェクトを指定 (デフォルトは `pdb.set_trace()`) |
||
| 177 | - 環境変数 **PYTHONBREAKPOINT** への設定でも等価 |
||
| 178 | - `sys.version_info` Python のバージョン情報 |
||
| 179 | - major, minor, micro, releaselevel, serial の 5要素タプル |
||
| 180 | - 各名前の属性アクセスも可能 |
||
| 181 | - argparse |
||
| 182 | - `ArgumentParser` 引数設定すると、コマンドヘルプの生成、実引数のパースとプログラム中での引数利用が可能となる |
||
| 183 | - `add_argument()` 引数設定を加える |
||
| 184 | - `parse_args()` 実引数をパースして argparse.Namespace オブジェクトの属性へ引数を割り当て、そのオブジェクトを返す |
||
| 185 | - 返されたオブジェクトは、引数名の属性の値が対応する引数の値となっている |
||
| 186 | - pathlib |
||
| 187 | - クラス継承 |
||
| 188 | ```mermaid |
||
| 189 | classDiagram |
||
| 190 | |||
| 191 | PurePath <|-- PurePosixPath |
||
| 192 | PurePath <|-- PureWindowsPath |
||
| 193 | PurePath <|-- Path |
||
| 194 | PurePosixPath <|-- PosixPath |
||
| 195 | Path <|-- PosixPath |
||
| 196 | Path <|-- WindowsPath |
||
| 197 | PureWindowsPath <|-- WindowsPath |
||
| 198 | ``` |
||
| 199 | - `PurePath` 純粋パス |
||
| 200 | - インスタンス変数 |
||
| 201 | - `parts` パスの各要素の **タプル** |
||
| 202 | - `drive` `root` `anchor` |
||
| 203 | - `parents` Path インスタンスのシーケンス |
||
| 204 | - `parent` Path インスタンス |
||
| 205 | - `name` `suffix` `suffixes` `stem` |
||
| 206 | - インスタンスメソッド |
||
| 207 | - `is_absolute()` |
||
| 208 | - `is_relative_to(*other)` |
||
| 209 | - `match(pattern)` glob 形式 pattern に自身がマッチするか |
||
| 210 | - `with_name(name)` `with_stem(stem)` `with_suffix(suffix)` name, stem, suffix 部を置換した Path を返す |
||
| 211 | - `Path` 具象パス |
||
| 212 | - クラスメソッド |
||
| 213 | - `cwd()` `home()` |
||
| 214 | - インスタンスメソッド |
||
| 215 | - `stat()` |
||
| 216 | - `glob(pattern)` 自ディレクトリ内の pattern (glob) にマッチするファイル・ディレクトリをパスオブジェクトとして返す**ジェネレーター**を返す |
||
| 217 | - `iterdir()` 自ディレクトリ内の全ファイル・ディレクトリをパスオブジェクトとして返す**ジェネレーター**を返す |
||
| 218 | - `exists()` `is_dir()` `is_file()` チェック |
||
| 219 | - `chmod()` `rename()` ファイル変更操作 |
||
| 220 | - `touch()` `mkdir()` |
||
| 221 | - `unlink()`(ファイル削除) `rmdir()`(空ディレクトリ削除) |
||
| 222 | - `open()` |
||
| 223 | - `read_text()` `write_text()` 開いて、読み/書き、閉じる |
||
| 224 | - 基本的に Path での複数情報取得はジェネレーターみたい |
||
| 225 | - tempfile |
||
| 226 | - 一時ファイル/ディレクトリ作成 |
||
| 227 | - コンテキストマネージャーとして使用可能 |
||
| 228 | - as での取得は一時ファイルは **ファイルオブジェクト** 、一時ディレクトリは **ディレクトリパス文字列** |
||
| 229 | - with を抜ける際にファイル/ディレクトリ削除も行われる |
||
| 230 | - NamedTemporaryFile は delete=False で残すことも可能 |
||
| 231 | - ディレクトリはその下のファイルも全部削除 |
||
| 232 | - `TemporaryFile` ファイル名無しファイルをディスク上に作成 |
||
| 233 | - `NamedTemporaryFile` ファイル名ありファイルをディスク上に作成 |
||
| 234 | - ファイルシステムが認識できるのでプロセス外から参照可能 |
||
| 235 | - `SpooledTemporaryFile` ファイル名無しファイルを一定容量までメモリ上に作成し、容量を超えるとディスクへ書き出す |
||
| 236 | - `TemporaryDirectory` 一時ディレクトリを名前ありで作成 |
||
| 237 | - shutil |
||
| 238 | - `copyfile(src, dst)` dst はファイルパス (ディレクトリパスは不可) |
||
| 239 | - `copy(src, dst)` `copy2(src, dst)` dst はファイルパスまたはディレクトリパス |
||
| 240 | - dst がディレクトリパスなら、その下に src のベースファイル名でコピーされる |
||
| 241 | - copy はパーミッションをコピーする |
||
| 242 | - copy2 はメタデータもコピーする |
||
| 243 | - `copymode(src, dst)` `copystat(src, dst)` |
||
| 244 | - csv |
||
| 245 | - `reader(file)` csv の各行を1リストとして扱う reader オブジェクトを取得 |
||
| 246 | - reader オブジェクトは for 文で読み込むことで、ループ1回につきファイル内の1行分を1リストとして取得できる |
||
| 247 | - `writer(file)` csv としてデータを書き込むことができる writer オブジェクトを取得 |
||
| 248 | - writer オブジェクトは `writerow(row)` で 1 行を書き込み、 `writerows(rows)` で複数行の書き込みを csv ファイルへ行う |
||
| 249 | - `row` イテラブル |
||
| 250 | - `rows` イテラブルのイテラブル (イテラブルでも動作するかも? (1行だけ書き込みたいとか)) |
||
| 251 | - `DictReader(file, fieldnames, ..)` を使用すると、読み込んだ csv データを辞書インターフェースで参照できる |
||
| 252 | - `DictWriter(file, fieldnames, ..)` を使用すると、辞書データを任意の順序 (fieldnames で指定) でファイルへ書き出せる |
||
| 253 | - json |
||
| 254 | - JSON 文字列 |
||
| 255 | - `dumps(obj)` obj を json 文字列として返す |
||
| 256 | - `loads(s)` 文字列 s を Python オブジェクトとして返す |
||
| 257 | - JSON ファイル |
||
| 258 | - `dump(obj, file)` obj を json 文字列にして file へ書き出す |
||
| 259 | - `load(file)` file に記載の json 文字列を Python オブジェクトとして返す |
||
| 260 | - urllib.parse |
||
| 261 | - `urlparse(s)` 文字列 s を URL としてパースした結果を返す (ParseResult) |
||
| 262 | - `ParseResult` |
||
| 263 | - パース結果は属性名またはインデックスで参照 |
||
| 264 | - 辞書キーを属性名で指定も OK |
||
| 265 | - `scheme` `0` |
||
| 266 | - `netloc` `1` |
||
| 267 | - `path` `2` |
||
| 268 | - `params` `3` |
||
| 269 | - `query` `4` |
||
| 270 | - `flagment` `5` |
||
| 271 | - `username` |
||
| 272 | - `password` |
||
| 273 | - `port` |
||
| 274 | - `hostname` |
||
| 275 | - クエリのパース |
||
| 276 | - クエリが `key1=aaa` `key2=bbb` `key3=ccc` の場合 |
||
| 277 | - `parse_qs()` は辞書を返し、同一キーは値リストにまとめる |
||
| 278 | - `{'key1': ['aaa'], 'key2': ['bbb', 'ccc']}` |
||
| 279 | - `parse_qsl()` はタプルのリストを返し、同一キーも分ける |
||
| 280 | - `[('key1', 'aaa'), ('key2', 'bbb'), ('key3', 'ccc')]` |
||
| 281 | - クエリの組み立て |
||
| 282 | - `urlencode(query)` マッピングか2要素タプルのリストを受け取り、組み立ててエンコードしたクエリ文字列を返す |
||
| 283 | - `quote()` `quote_plus()` URL として使用できる文字列へエンコード |
||
| 284 | - 特殊文字や複数バイト文字に対してパーセントエンコードを行う |
||
| 285 | - スペースの変換 : quote() は `%20` へ、quote_plus() は `+` へ |
||
| 286 | - `urljoin(base, url)` base 部分へ url 部分を結合する |
||
| 287 | - 共通部分を表す base に対して url で分岐させる |
||
| 288 | - url は相対パスでもよいので `..` で base の一部も上書きできる |
||
| 289 | - urllib.request |
||
| 290 | - `urlopen(url, data)` url へアクセスしてレスポンスオブジェクトを返す |
||
| 291 | - HTTP, HTTPS ならレスポンスは `http.client.HTTPResponse` |
||
| 292 | - その他なら `urllib.respnse.addinforul` |
||
| 293 | - 属性 `url` `headers` `status` |
||
| 294 | - HTTP の場合、 url に文字列を指定してのリクエストは以下に限定 |
||
| 295 | - data 指定なしの GET |
||
| 296 | - data を指定しての POST |
||
| 297 | - その他の HTTP メソッドは、`Request` オブジェクトを url に指定する |
||
| 298 | - `Request(url, data, method)` |
||
| 299 | - doctest |
||
| 300 | - コード内での実行は `testmod()` `testfile()` |
||
| 301 | - testfile では引数に外部のテキストファイルを指定可能 |
||
| 302 | - unittest でのテストに組み込む |
||
| 303 | - `load_tests()` は unittest が探して呼び出す仕組み |
||
| 304 | - `DocTestSuite()` は doctest の内容を unittest 向けに変換 |
||
| 305 | - `addTests()` で unittest のテストとして追加 |
||
| 306 | ```python |
||
| 307 | import unittest |
||
| 308 | import doctest |
||
| 309 | import my_module_with_doctests # 自分で書いたモジュール |
||
| 310 | |||
| 311 | |||
| 312 | def load_tests(loader, tests, ignore): |
||
| 313 | tests.addTests(doctest.DocTestSuite(my_module_with_doctests)) |
||
| 314 | return tests |
||
| 315 | ``` |
||
| 316 | - unittest |
||
| 317 | - コード内での実行は `main()` |
||
| 318 | - コマンドライン実行では、対象のオブジェクトパスを指定 |
||
| 319 | - `python -m unittest module1.testcase1.testmethod1` |
||
| 320 | - 対象はモジュールでもクラスでもメソッドでも、複数でも OK |
||
| 321 | - logging |
||
| 322 | - 汎用的な使用法としてはロガーを `getLogger()` で取得してから、メソッド `error()` `info()` 等でログ出力する |
||
| 323 | - モジュールの関数を使用することで、ルートロガーでログ出力できる |
||
| 324 | - `critical()` `error()` `warning()` `info()` `debug()` |
||
| 325 | - 引数はメッセージ文字列で、`%s` 等を含めた場合は後続の引数の値を展開できる |
||
| 326 | - `basicConfig()` ロギングの設定変更で、以下の引数あり |
||
| 327 | - `filename` `filemode` |
||
| 328 | - `format` ログフォーマット |
||
| 329 | - `datefmt` 日時フォーマット |
||
| 330 | - `style` format で使用するスタイル `%`(デフォルト) `{` `$` |
||
| 331 | - `level` ログレベル閾値 |
||
| 332 | - `stream` |
||
| 333 | - `handlers` |
||
| 334 | - `force` |
||
| 335 | - `encoding` |
||
| 336 | - `errors` |
||
| 337 | - 出力先設定は同時に指定不可 (filename, stream, handlers) |
||
| 338 | - secrets |
||
| 339 | - `choise(seq)` seq からランダムに選択して返す |
||
| 340 | - トークン |
||
| 341 | - `token_bytes([nbytes=None])` バイト列生成 |
||
| 342 | - `token_hex([nbytes=None])` 16進数文字列生成 (1byte = 16進数2文字) |
||
| 343 | - `token_urlsafe([nbytes=None])` URL向け(Base64エンコード)文字列生成 (1byte = 平均1.3文字) |
||
| 344 | - `compare_digest(a, b)` タイミング攻撃耐性のある比較 |