コンテンツにスキップ

CLIコマンド

一部機能は CLI から利用できる。

uvx から起動する場合

uvx pytilpack は extras 無しのベースパッケージのみで起動するため、mcpwait-for-db-connection のように追加依存を必要とするサブコマンドはそのままでは実行できない。--from で必要な extras を明示する。

uvx --from 'pytilpack[mcp]' pytilpack mcp
uvx --from 'pytilpack[sqlalchemy]' pytilpack wait-for-db-connection "$SQLALCHEMY_DATABASE_URI"
uvx --from 'pytilpack[babel]' pytilpack babel extract .
uvx --from 'pytilpack[htmlrag]' pytilpack fetch https://example.com/

extras が足りない状態で該当サブコマンドを呼ぶと、必要な extras 名を含むエラーメッセージが表示される。

空のディレクトリを削除

pytilpack delete-empty-dirs path/to/dir [--no-keep-root] [--verbose]
  • 空のディレクトリを削除
  • デフォルトでルートディレクトリを保持(--no-keep-rootで削除可能)

古いファイルを削除

pytilpack delete-old-files path/to/dir --days=7 \
  [--no-delete-empty-dirs] [--no-keep-root-empty-dir] [--verbose]
  • 指定した日数より古いファイルを削除(--daysオプションで指定)
  • デフォルトで空ディレクトリを削除(--no-delete-empty-dirsで無効化)
  • デフォルトでルートディレクトリを保持(--no-keep-root-empty-dirで削除可能)

ディレクトリを同期

pytilpack sync src dst [--delete] [--verbose]
  • コピー元(src)からコピー先(dst)へファイル・ディレクトリを同期
  • 日付が異なるファイルをコピー
  • --deleteオプションでコピー元に存在しないコピー先のファイル・ディレクトリを削除

URLの内容を取得

pytilpack fetch url [--no-verify] [--accept=CONTENT_TYPE] \
  [--user-agent=USER_AGENT] [--verbose]
  • URLからHTMLを取得し、簡略化して標準出力に出力
  • --no-verifyオプションでSSL証明書の検証を無効化
  • --acceptオプションで受け入れるコンテンツタイプを指定
  • --user-agentオプションでUser-Agentヘッダーを指定
  • --verboseオプションで詳細なログを出力

MCPサーバーを起動

pytilpack mcp [--transport=stdio] [--host=localhost] [--port=8000] [--verbose]
  • Model Context ProtocolサーバーとしてpytilpackのFetch機能を提供
  • --transportオプションで通信方式を指定(stdio/http、デフォルト: stdio)
  • --hostオプションでサーバーのホスト名を指定(httpの場合のみ使用、デフォルト: localhost)
  • --portオプションでサーバーのポート番号を指定(httpの場合のみ使用、デフォルト: 8000)
  • --verboseオプションで詳細なログを出力

stdioモード

pytilpack mcp
# または
pytilpack mcp --transport=stdio

httpモード

pytilpack mcp --transport=http --port=8000

DB接続待機

pytilpack wait-for-db-connection SQLALCHEMY_DATABASE_URI [--timeout=180] [--verbose]
  • 指定されたSQLALCHEMY_DATABASE_URIで、DB接続が可能になるまで待機
  • URLに非同期ドライバ(+asyncpg, +aiosqlite, +aiomysql等)が含まれる場合は自動で非同期処理を使用
  • --timeoutオプションでタイムアウト秒数を指定(デフォルト: 180)
  • --verboseオプションで詳細なログを出力