0

別のモジュールを使用しているすべての「api」について、私の python プロジェクトを調べたいと思います。

正確に言うと、mercurial python コードの内部を使用しています。mercurial の使用バージョンを更新するときに、どこをチェックする必要があるコード ポイントのリストを取得したいと考えています。

なんらかの静的分析が必要になると思います。悪意のあるコードに対する証拠は何もありませんが、grep よりはましです。

4

1 に答える 1

0

プロジェクトにテスト スイートがある場合、これらのテストをプロファイラーで実行すると、すべての関数呼び出しの便利なリストが収集され、それらが含まれていたモジュールに基づいて並べ替え/フィルター処理できます (たとえば、mercurial に含まれていた場合)。 )。たとえば、ほとんどのバージョンの Python に含まれている cProfile を介してプログラムを実行するには、次のように呼び出します。

$ python -m cProfile -o myprog.prof path/to/myprog.py [program arguments]

cProfile を介してテストを実行できます。または、テストがない場合は、いくつかの機能テストを手動で実行して、通常の使用時に実際に使用される Mercurial API 呼び出しを取得できます。

これは静的分析ほど徹底的ではありませんが、実際に呼び出される関数をより明確に把握できる可能性があります。その後、pstats モジュールを使用して結果を分析するか、 RunSnakeRunや (恥知らずなプラグ) SnakeVizなどのグラフィカル プロファイル ビューアーを使用できます。

于 2013-02-22T17:18:03.230 に答える