コンテンツへスキップ

開発 - 貢献

まず、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/pippipバイナリが表示されたら、正常に動作しています。🎉

ヒント

その環境で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ファイルを開くと、テストによって網羅されているコード領域を対話的に調べることができ、欠けている領域があるかどうかを確認できます。