testing.py
基本情報 [必須]
| 項目 | 内容 |
|---|---|
| ファイルパス | pandas/testing.py |
| 言語 | Python |
| 種別 | 公開テストユーティリティ / API Facade |
| 行数 | 約 18 行 |
概要 [必須]
このファイルは pandas の公開テストユーティリティモジュールであり、pandas.testing 名前空間を通じてユーザーおよびサードパーティライブラリに提供されるテスト支援関数を定義する。内部テストモジュール pandas._testing から 4 つのアサーション関数(assert_frame_equal, assert_series_equal, assert_index_equal, assert_extension_array_equal)を再エクスポートし、__all__ で公開 API を宣言する。このモジュールは pandas のデータ構造の比較・検証に特化した公開インターフェースであり、pandas ベースのライブラリやユーザーテストコードから pd.testing.assert_frame_equal() のように使用される。
設計パターン [必須]
| パターン名 | 適用箇所 | 説明 |
|---|---|---|
| Facade | モジュール全体 | 内部テストモジュール pandas._testing の多数のユーティリティから、公開 API として適切な 4 関数のみを選別して re-export する薄い Facade レイヤー |
主要な構成要素 [必須]
クラス / 関数一覧
| 名前 | 種別 | 可視性 | シグネチャ | 概要 |
|---|---|---|---|---|
| assert_extension_array_equal | function (re-export) | public | assert_extension_array_equal(left, right, ...) |
2 つの ExtensionArray の等値性を検証 |
| assert_frame_equal | function (re-export) | public | assert_frame_equal(left, right, ...) |
2 つの DataFrame の等値性を検証 |
| assert_index_equal | function (re-export) | public | assert_index_equal(left, right, ...) |
2 つの Index の等値性を検証 |
| assert_series_equal | function (re-export) | public | assert_series_equal(left, right, ...) |
2 つの Series の等値性を検証 |
| all | variable | public | — | 公開シンボルリスト(上記 4 関数) |
重要なメソッド・関数の詳細 [必須]
このモジュールは pandas._testing からの re-export のみを行い、関数実装は含まない。各関数の詳細は pandas/_testing/ モジュール内の実装を参照。以下に公開関数の用途を記載する。
assert_frame_equal(left, right, ...)
- 目的: 2 つの DataFrame が等しいことを検証する。値、dtype、インデックス、カラム名等を比較する
- 引数: left (DataFrame), right (DataFrame), およびオプション引数(check_dtype, check_names, check_exact, rtol, atol 等)
- 戻り値: None(アサーション成功)/ AssertionError 送出(失敗)
- 処理フロー:
pandas._testingの実装に委譲
assert_series_equal(left, right, ...)
- 目的: 2 つの Series が等しいことを検証する
- 引数: left (Series), right (Series), およびオプション引数
- 戻り値: None / AssertionError
- 処理フロー:
pandas._testingの実装に委譲
assert_index_equal(left, right, ...)
- 目的: 2 つの Index が等しいことを検証する
- 引数: left (Index), right (Index), およびオプション引数
- 戻り値: None / AssertionError
- 処理フロー:
pandas._testingの実装に委譲
assert_extension_array_equal(left, right, ...)
- 目的: 2 つの ExtensionArray が等しいことを検証する
- 引数: left (ExtensionArray), right (ExtensionArray), およびオプション引数
- 戻り値: None / AssertionError
- 処理フロー:
pandas._testingの実装に委譲
依存関係 [必須]
このファイルが依存するもの
| 依存先 | ファイルパス | 種別 | 用途 |
|---|---|---|---|
| assert_extension_array_equal | pandas/_testing/init.py | function | ExtensionArray 等値検証関数の re-export 元 |
| assert_frame_equal | pandas/_testing/init.py | function | DataFrame 等値検証関数の re-export 元 |
| assert_index_equal | pandas/_testing/init.py | function | Index 等値検証関数の re-export 元 |
| assert_series_equal | pandas/_testing/init.py | function | Series 等値検証関数の re-export 元 |
このファイルに依存するもの [最重要]
Serena で __all__ への直接的な参照を検索した結果、ファイル外からの直接参照は検出されなかった。ただし、このモジュールは以下の経路で広く利用されている:
pandas/__init__.pyでfrom pandas import testingとしてインポートされ、pd.testing名前空間として公開- 外部パッケージやユーザーテストコードから
import pandas.testing as tmやpd.testing.assert_frame_equal()の形式で使用 - pandas 公式ドキュメントで推奨されるテスト方法として記載
| 依存元 | ファイルパス | 行番号 | 用途 |
|---|---|---|---|
| pandas パッケージ | pandas/init.py | 136 | from pandas import testing で pd.testing として公開 |
定数一覧 [必須]
| 定数名 | 値 | 種別 | 可視性 | 用途 |
|---|---|---|---|---|
| all | ["assert_extension_array_equal", "assert_frame_equal", "assert_index_equal", "assert_series_equal"] |
モジュール変数 | public | 公開 API シンボルの宣言 |
リレーション [必須]
Model ではないため該当なし。
オーバーライドメソッド [必須]
親クラスをオーバーライドするメソッドは該当なし。このファイルにはクラス定義が存在しない。
データ構造 [必須]
このファイルで扱う独自のデータ構造は該当なし。re-export のみのモジュールである。
セキュリティ考慮 [必須]
| 観点 | 実装状況 | 詳細 |
|---|---|---|
| 入力検証 | 該当なし | テストユーティリティであり、セキュリティ上の入力検証は不要 |
| 出力エスケープ | 該当なし | 出力処理は行わない |
| 認証/認可 | 該当なし | 認証機能は含まない |
| SQLインジェクション対策 | 該当なし | SQL 操作は行わない |
| CSRF対策 | 該当なし | Web 機能は含まない |
技術的負債・既知の問題 [必須]
特に問題は検出されませんでした。シンプルな re-export モジュールとして適切に設計されている。
拡張性・保守性 [必須]
- 拡張ポイント: 新しい公開アサーション関数を追加する場合は、
pandas._testingに実装を追加し、このファイルでfrom pandas._testing import ...に追記し、__all__にも追加する - 制約事項: このモジュールは公開 API であるため、関数の削除やシグネチャ変更には後方互換性への配慮が必要。内部テストユーティリティ(
pandas._testing)の変更がこの公開 API に影響しないよう、re-export の安定性を維持すること - テスト容易性: re-export のみのモジュールであるため、実装のテストは
pandas._testing側で行われる
関連ファイル [必須]
- init.py.md - pandas パッケージ(このモジュールを pd.testing として公開)
- _typing.py.md - 型定義モジュール
- conftest.py.md - pytest 設定・フィクスチャ定義