title |
---|
Hatch 利用ノート |
# build
# プロジェクトをビルドする
# 引数なしは sdist と wheel
hatch build
# ビルド対象を -t で指定 (e.g. -t sdist -t wheel)
hatch build -t wheel
# 対象が複数バージョンを支持する場合には厳密なバージョンをコロン区切りで付ける
hatch -v build -t wheel:standard
# ビルド前にクリナップするなら -c フラグを指定
hatch build -c
ビルド成果物をクリナップ。
hatch clean
hatch clean -t sdist
構成ファイルを扱う
# Windows ならば Explorer で構成ファイルを含むフォルダーを開く
hatch config explore
# 構成ファイルのフルパスを出力する
hatch config find
# 構成ファイルの設定値を既定値に復元する
hatch config restore
# 構成ファイルを使用者が手で編集することなく項目 KEY を設定する
# VALUE を指定しないと対話的に入力することになる
hatch config set KEY VALUE
# project = "proj2"
hatch config set project proj2
# 構成ファイルの内容を出力する
hatch config show
# 秘密項目をも出力する
hatch config show --all
# 新しい設定項目があれば設定ファイルを更新する
# ?どういう状況で実行するのか?
hatch config update
依存関係
# 依存関係を出力する 1
hatch dep show requirements
# 依存関係を出力する 2
hatch dep show table
プロジェクト環境を扱う。
# 環境を生成する (to activate hatch shell or hatch run)
# このコマンドは滅多に実行しない
hatch env create
# 環境が表現されているディレクトリーのパスを出力する
hatch env find
# test 環境がどこにあるかを確認する
hatch env find test
# 環境すべてを破棄する
hatch env prune
# 環境を破棄する
hatch env remove ENV_NAME
# ???
hatch env run
hatch env run -i py=3.10 -x version=9000 test:pytest
# 現在使用可能な環境すべてと各環境の依存関係を出力する
hatch env show
hatch env show --json
整形コマンドのようだ。詳しくは Customize static analysis behavior - Hatch 参照。
hatch fmt
hatch fmt --check
hatch fmt --check --linter
hatch fmt --check --format
# pyproject.toml に [tool.hatch.format.config-path] が設定されている場合限定
# Hatch を upgrade したときなどに既定を更新する場合は --sync 付けて fmt コマンドを一度実行する必要がある
hatch fmt --check --sync
プロジェクトを初期化する。
# プロジェクトを初期化する(既存のものがあればエラー)
hatch new PROJ_DIR
# 対話的に
hatch new -i
# 既存のプロジェクトをリセットする
hatch new --init PROJ_DIR
# コマンドラインツールを用意する
hatch new --cli PROJ_DIR
プロジェクトに関する情報を見る。
hatch project metadata | jq -r .readme.text | bat
ビルド成果物を発行する。
# 引数なしだと dist ディレクトリが用いられる
hatch publish
# 明示的に成果物ディレクトリーや形式(拡張子に注意)を指定する
hatch publish /path/to/artifacts foo-1.tar.gz
Python インストールを扱う。
# Installed 一覧にあるディストリビューションの Python 実行形式のパスを示す
hatch python find
# その実行形式を含むディレクトリーのパスを示す
hatch python find 3.12 --parent
# 1. Python 3.12 ディストリビューションをダウンロード、
# 2. Python インストール用に設定されたデフォルトディレクトリ内の 3.12 という名前のディレクトリーに解凍
# 3. インストールをユーザーの PATH に追加する
hatch python install 3.12
# PATH に追加しないで上記を実行
hatch python install 3.12 --private
# 複数指定可
hatch python install 3.12 3.11 pypy3.10
# システムと互換性のあるすべての Python ディストリビューションをインストール
hatch python install all
# Installed 一覧にある Python ディストリビューションを除ける
hatch python remove all
# 利用可能かつインストールされている Python ディストリビューションすべてを見る
hatch python show
# Installed 一覧にある Python ディストリビューションを更新する
hatch python update 3.12 3.11 pypy3.10
# Installed 一覧にある Python ディストリビューションすべてを更新する
hatch python update all
env run
と同等。
hatch run python -V
# test 環境に入って pytest を実行する
hatch run test:pytest
hatch
を扱う。
# GitHub にバグ報告を送るときのテンプレを出力
hatch self report
# ブラウザーを launch したくない場合には -n を付けろ
hatch self report -n
# Hatch インストールを復元する
hatch self restore
# Hatch を更新する (conda update)
hatch self update
pipenv shell
のようなもの。
.bashrc
を読み込むので、そこで python
へのパスを設定していないことが必要。
# 作成した特定の環境 (e.g. test) に対してシェルを起動する
hatch -e test shell
現在環境情報を示す。
hatch status
単体テストを hatch-test 環境行列を用いて実施する
# pytest tests と同等
hatch test
# 引数を test コマンドに追加することで pytest に引数を与える
hatch test -vv tests/test_foo.py::test_bar
# Python 3.12 と foo または bar 機能がある環境すべてを試験する
hatch test -i python=3.12 -i feature=foo,bar
# Python 3.12 を試験するが baz 機能を除外する
hatch test -i python=3.12 -x feature=baz
# コード網羅検査を有効にする
hatch test --cover
# 無言バージョン
hatch test --cover-quiet
# 失敗したものを二度まで再試行
hatch test --retries 2
# 再試行までの待機秒数を指定
hatch test --retries 2 --retry-delay 1
# 環境内のテストを複数のワーカーに分散して実行する
hatch test --parallel
# テストの順番をランダムにする
hatch test --randomize
プロジェクトのバージョンを扱う
# バージョンを示す
hatch version
# バージョンをアップグレードする(ダウングレード不可)
hatch version x.y.z
# バージョンを明示的に与えるのではなく、インクリメントする部位を指定する
hatch version minor
# プロジェクトの最初のメジャーバージョンのプレビューをリリースするときなどに
hatch version major,rc
# 最終版をリリースしたいときに
hatch version release