Erotemic/xdoctest
Pythonのdocstring内のサンプルコードを見つけて実行するパッケージ。ASTベースのパーサーで標準のdoctestモジュールを書き換えています。
- スター
- 221
- フォーク
- 18
- 未解決の Issue
- 29
- 最終コミット
- 4 日前
これは何?
Xdoctestは、Pythonのdocstring内に書かれたサンプルコードであるdoctestを実行します。標準ライブラリのdoctestモジュールを改良したもので、正規表現ベースのパーサーをPythonのastモジュールを使うパーサーに置き換えています。これにより、すべての行に一貫して>>>を付けたり、特別なプレフィックスなしで複数行の文字列を書いたりできます。
モジュールまたはパッケージのパスを指定して、コマンドラインからxdoctestを実行できます。また、--xdoctestフラグを有効にすればpytestからも実行できます。組み込みのランナーでは、doctestの一覧表示、すべてのdoctestの実行、名前を指定した単一関数のdoctestの実行ができ、引数を取らない関数も名前で実行できます。パーサーはGoogle形式のExampleブロックと、自由形式の>>>ブロックに対応しています。
got/wantの照合はデフォルトで寛容に行われます。空白の違いは無視され、ELLIPSISによるマッチングが使われ、出力または最終値のどちらかが一致すれば成功します。want文のないテストはエラーなく実行できればよいため、確認には通常のassert文を使えます。
主な機能
- 01正規表現の代わりにPythonのastモジュールでdoctestを解析します。
- 02PS1行とPS2行を区別する必要がなく、すべての行に>>>を付けられます。
- 03--xdoctestフラグを使ってpytestと連携できます。
- 04doctestの一覧表示、全件実行、単一のdoctestの実行ができる組み込みのコマンドラインランナーを備えています。
- 05Google形式と自由形式のdoctestの解析に対応しています。
ユースケース
- docstring内の使用例を実行可能な状態に保ち、CIでユニットテストと併せて実行する。
- コード変更後もPythonパッケージのドキュメントにある例が動作することを確認する。
- 関数の開発中に、docstring内へ手軽なデモ用入力を書く。
クイックスタート
- 1
PyPIからxdoctestをインストールする
pip install xdoctest - 2
パッケージまたはモジュール内のすべてのdoctestを実行する
python -m xdoctest /path/to/your/pkg-or-module.py
使う前に知っておきたいこと
- Python 3.8以降が必要です。
収録されている特集
トピック
よくある質問
- xdoctest とは?
- Pythonのdocstring内のサンプルコードを見つけて実行するパッケージ。ASTベースのパーサーで標準のdoctestモジュールを書き換えています。 Xdoctestは、Pythonのdocstring内に書かれたサンプルコードであるdoctestを実行します。標準ライブラリのdoctestモジュールを改良したもので、正規表現ベースのパーサーをPythonのastモジュールを使うパーサーに置き換えています。これにより、すべての行に一貫して>>>を付けたり、特別なプレフィックスなしで複数行の文字列を書いたりできます。
- xdoctest は無料で使えますか?ライセンスは?
- xdoctest は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- xdoctest は今もメンテナンスされていますか?
- 活発にメンテナンス中。xdoctest の最終コミットは 2026年11月4日 です。
- xdoctest は何に使えますか?
- docstring内の使用例を実行可能な状態に保ち、CIでユニットテストと併せて実行する。 コード変更後もPythonパッケージのドキュメントにある例が動作することを確認する。 関数の開発中に、docstring内へ手軽なデモ用入力を書く。
- xdoctest のインストール方法は?
- PyPIからxdoctestをインストールする: pip install xdoctest パッケージまたはモジュール内のすべてのdoctestを実行する: python -m xdoctest /path/to/your/pkg-or-module.py
- xdoctest はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Erotemic/xdoctest
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。