Python コード(src/**)・マイグレーション(src/tiasdata/catalog/migrations/**)・データセットの定義(datasets/**)を編集するときは本ルールに従うこと.
pyproject.toml の [tool.ruff] に集約するpyproject.toml の [tool.ruff.lint] で select = ["E", "F", "W", "I", "B", "UP", "N"] を選択する.行長は 100 文字とする.実行コマンドは ENV_04 開発コマンドを参照する.
| ルール | 内容 |
|---|---|
| E・W (pycodestyle) | PEP 8 形式 |
| F (pyflakes) | 未使用変数・未定義シンボル等 |
| I (isort) | import 文の並び順 |
| B (flake8-bugbear) | バグになりやすいパターン |
| UP (pyupgrade) | Python 3.12 の書き方への置き換え |
| N (pep8-naming) | 命名 |
本プロジェクトの最重要規則.PLAN_01 要件定義書の制約と SPEC_03「出力の規則」に対応する.
config.py が読む)から受け取る.テスト用の既定値もコードに置かないsource_name)は既定では出さないidentity.sqlite)を開くのは取り込みの処理だけにする.他のモジュールから対応表を参照しない(例外: tiasdata backup が複製と点検のために開く.中身は表示しない)print ではなく logging を使う.ただし CLI の結果表示(件数の表等)は標準出力に書いてよいcatalog/ の中にだけ書く.他のモジュールは catalog/ の関数を呼ぶ?・:name)で渡す.f-string・%・+ で SQL に値を埋め込まないPRAGMA foreign_keys = ON を有効にするwith conn:).途中で失敗したら何も残さないdataset_versions・dataset_members・dataset_member_annotations)と所見(annotations)を UPDATE・DELETE しない.所見の訂正は新しい行の追加と superseded_by の設定だけで行う2026-10-02T09:00:00Z)で保存するsrc/tiasdata/catalog/migrations/<系列>/NNNN_<内容>.sql(系列は catalog・identity.4 桁の連番)を追加して行う.ファイルの中に BEGIN・COMMIT・PRAGMA user_version を書かない(適用側が囲む).適用済みのマイグレーションファイルは編集しないkinds)の追加もマイグレーションで行い,同時に src/tiasdata/kinds/ に値の型を追加するtiasdata から使う側に見えるもの): 引数と戻り値に型ヒント必須tiasdata の公開 API(load・open_bundle・Bundle 等)と manifest.csv の列は使う側が依存する.名前・意味を変える・消す場合は,PR に使う側への影響を書き,SPEC_03 を更新するArgs: / Returns: / Raises:).日本語可Raises: に書くdef load(name: str, version: int) -> Bundle:
"""データセットの版を指定してバンドルを開く.
Args:
name: データセット名(例: `tongue_color`).
version: 版(1 以上).
Returns:
開いたバンドル.
Raises:
ValueError: バンドルが見つからない,または manifest の SHA-256 が一致しない.
"""
| 対象 | スタイル | 例 |
|---|---|---|
| モジュール・パッケージ | snake_case | bundle.py・tiasdata |
| 関数・変数 | snake_case | freeze_version・manifest_sha256 |
| クラス | PascalCase | Bundle・CatalogConfig |
| 定数 | UPPER_SNAKE_CASE | SCHEMA_VERSION |
| プライベート | 接頭辞 _ | _copy_to_store |
種類名(kinds.kind)・データセット名 | snake_case の英小文字 | tongue_crop_masked・tongue_color |
# TODO(rintoHasegawa): 内容 の形で書くargparse 標準を使う.ヘルプ文は日本語可--version・--to)