開発 - 貢献
まず、Typerのヘルプを取得する基本的な方法について、Typerのヘルプを参照することをお勧めします。
開発¶
既にリポジトリをクローンしていて、コードを深く掘り下げる必要があることが分かっている場合は、環境設定に関するいくつかのガイドラインを以下に示します。
venv
による仮想環境¶
Pythonのvenv
モジュールを使用して、ディレクトリに仮想環境を作成できます。
$ python -m venv env
これにより、Pythonバイナリを含む./env/
ディレクトリが作成され、その分離された環境にパッケージをインストールできるようになります。
環境の有効化¶
次のコマンドで新しい環境を有効化します。
$ source ./env/bin/activate
$ .\env\Scripts\Activate.ps1
または、Windows用Bash(例:Git Bash)を使用している場合
$ source ./env/Scripts/activate
動作を確認するには、次のコマンドを使用します。
$ which pip
some/directory/typer/env/bin/pip
$ Get-Command pip
some/directory/typer/env/bin/pip
env/bin/pip
にpip
バイナリが表示されたら、正常に動作しています。🎉
ヒント
その環境でpip
を使用して新しいパッケージをインストールするたびに、環境を再度有効化してください。
これにより、そのパッケージによってインストールされたターミナルプログラム(flit
など)を使用する場合、グローバルにインストールされている可能性のある他のプログラムではなく、ローカル環境のプログラムを使用できるようになります。
Flit¶
**Typer**は、プロジェクトのビルド、パッケージ化、公開にFlitを使用しています。
上記のように環境を有効化したら、flit
をインストールします。
$ pip install flit
---> 100%
インストールしたばかりのflit
(グローバルなものではない)を使用するように、環境を再度有効化します。
そして、開発用依存関係をインストールするためにflit
を使用します。
$ flit install --deps develop --symlink
---> 100%
Windowsを使用している場合は、--symlink
の代わりに--pth-file
を使用します。
$ flit install --deps develop --pth-file
---> 100%
これにより、すべての依存関係とローカルTyperがローカル環境にインストールされます。
ローカルTyperの使用¶
Typerをインポートして使用するPythonファイルを作成し、ローカル環境のPythonで実行すると、ローカルTyperのソースコードが使用されます。
ローカルTyperのソースコードを更新すると、--symlink
(またはWindowsの場合は--pth-file
)を使用してインストールされているため、そのPythonファイルを再度実行すると、編集したばかりのTyperの最新バージョンが使用されます。
このようにして、すべての変更をテストするためにローカルバージョンを「インストール」する必要はありません。
フォーマット¶
コード全体をフォーマットしてクリーンアップするスクリプトがあります。
$ bash scripts/format.sh
また、すべてのインポートを自動的にソートします。
正しくソートするには、上記セクションのコマンドを使用して--symlink
(またはWindowsの場合は--pth-file
)でローカル環境にTyperをローカルにインストールする必要があります。
インポートのフォーマット¶
すべてのインポートをフォーマットし、未使用のインポートがないことを確認する別のスクリプトがあります。
$ bash scripts/format-imports.sh
これは、コマンドを次々と実行し、多くのファイルを修正および元に戻すため、実行に少し時間がかかります。そのため、scripts/format.sh
は頻繁に使用し、scripts/format-imports.sh
はコミットする直前だけ使用する方が簡単です。
ドキュメント¶
ドキュメントはMkDocsを使用しています。
すべてのドキュメントは、./docs
ディレクトリにMarkdown形式で記述されています。
多くのチュートリアルにはコードブロックが含まれています。
ほとんどの場合、これらのコードブロックは実際に実行可能な完全なアプリケーションです。
実際、これらのコードブロックはMarkdown内に記述されているのではなく、./docs_src/
ディレクトリにあるPythonファイルです。
そして、これらのPythonファイルは、サイトを生成するときにドキュメントに含まれ/挿入されます。
テスト用ドキュメント¶
ほとんどのテストは、ドキュメントのサンプルソースファイルに対して実際に実行されます。
これは、次のことを確認するのに役立ちます。
- ドキュメントが最新であること。
- ドキュメントの例を実行できること。
- テストカバレッジによって、ほとんどの機能がドキュメントで網羅されていること。
ローカル開発中は、サイトをビルドして変更を確認する(ライブリロードを行う)スクリプトがあります。
$ bash scripts/docs-live.sh
<span style="color: green;">[INFO]</span> - Building documentation...
<span style="color: green;">[INFO]</span> - Cleaning site directory
<span style="color: green;">[INFO]</span> - Documentation built in 2.74 seconds
<span style="color: green;">[INFO]</span> - Serving on http://127.0.0.1:8008
ドキュメントはhttp://127.0.0.1:8008
で提供されます。
そのため、ドキュメント/ソースファイルを編集して、変更をリアルタイムで確認できます。
テスト¶
ローカルで実行してすべてのコードをテストし、HTMLでカバレッジレポートを生成できるスクリプトがあります。
$ bash scripts/test-cov-html.sh
このコマンドは./htmlcov/
ディレクトリを生成します。ブラウザで./htmlcov/index.html
ファイルを開くと、テストによって網羅されているコード領域を対話的に調べることができ、欠けている領域があるかどうかを確認できます。