CLIコマンド¶
一部機能はCLIから利用できる。
uvxから起動する場合¶
uvx pytilpackはベースパッケージのみで起動する。
mcpやfetchはベース依存で動作するためそのまま実行できる。
wait-for-db-connectionやbabelのように追加依存を必要とするサブコマンドは--fromで必要なextrasを明示する。
uvx pytilpack mcp
uvx pytilpack fetch https://example.com/
uvx --from='pytilpack[sqlalchemy]' pytilpack wait-for-db-connection 'sqlite:///:memory:'
uvx --from='pytilpack[babel]' pytilpack babel extract .
extrasが足りない状態で該当サブコマンドを呼ぶと、必要なextras名を含むエラーメッセージが表示される。
pytilpack delete-empty-dirs¶
空のディレクトリを削除する。ルートディレクトリは省略時に保持する。
--no-keep-rootで空になったルートも削除する。
pytilpack delete-old-files¶
指定した日数より古いファイルと空ディレクトリを削除する。
--no-delete-empty-dirsで空ディレクトリを保持する。
pytilpack sync¶
コピー元からコピー先へファイル・ディレクトリを同期する。
--deleteでコピー元に存在しないコピー先のファイル・ディレクトリを削除する。
pytilpack fetch¶
URLからHTMLを取得し、簡略化して標準出力に出力する。
pytilpack mcp¶
Model Context ProtocolサーバーとしてpytilpackのFetch機能を提供する。
--transportでstdio(デフォルト)またはhttp通信方式を選択できる。
pytilpack babel¶
pytilpack[babel]を導入し、gettextメッセージの抽出・初期化・更新・コンパイルを行う。
pip install 'pytilpack[babel]'
pytilpack babel extract ./src -o messages.pot
pytilpack babel init -l ja -i messages.pot -d locales
pytilpack babel update -i messages.pot -d locales
pytilpack babel compile -d locales
pytilpack babel --help
pytilpack wait-for-db-connection¶
pytilpack[sqlalchemy]を導入し、指定URIでDB接続が可能になるまで待機する。
SQLiteの標準ドライバ以外を使う場合は、URIに対応するDBドライバも同じ実行環境へ導入する。
pip install 'pytilpack[sqlalchemy]'
pytilpack wait-for-db-connection 'sqlite:///:memory:' --timeout=180 --verbose
pytilpack wait-for-db-connection --help
省略時の待機上限は180秒。
非同期ドライバ(+asyncpg、+aiosqlite等)を含むURIの場合は自動で非同期処理を使用する。
sqlalchemy extraにはこれらのDBドライバが含まれない。
たとえばsqlite+aiosqliteの場合は次のようにaiosqliteも導入する。
pip install 'pytilpack[sqlalchemy]' aiosqlite
pytilpack wait-for-db-connection 'sqlite+aiosqlite:///:memory:'
uvx --from='pytilpack[sqlalchemy]' --with=aiosqlite pytilpack wait-for-db-connection 'sqlite+aiosqlite:///:memory:'
postgresql+asyncpgの場合はasyncpgを導入し、接続先のURIを指定する。
uvxはプロジェクトとは別の環境で動作するため、プロジェクトに導入済みでも--withで指定する。
ドライバはSQLAlchemyの各DBの説明で確認できる。
追加依存の指定はuvのツール環境の説明に従う。