Repolode
Erotemic

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. 1

    PyPIからxdoctestをインストールする

    pip install xdoctest
  2. 2

    パッケージまたはモジュール内のすべてのdoctestを実行する

    python -m xdoctest /path/to/your/pkg-or-module.py

使う前に知っておきたいこと

  • Python 3.8以降が必要です。

収録されている特集

トピック

#python#doctest#testing#pytest#docstrings#pytest-plugin

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト

最近のコード変更の影響を受けるテストだけを再実行し、オプションで継続的な監視モードも利用できるpytestプラグインです。

開発ツール#pytest#testing#python
1034+2 今週87PythonMIT活発にメンテナンス更新 5 日前