Pythonパッケージの関数と変数の使用/原因を関数レベルでマップしようとしています。そこの関数/変数が他の機能に使用されるいくつかのモジュールがあり、私のようなものに見える辞書を作成したい:私はのモジュールで定義する必要があるために参照していますPythonパッケージ内のPython関数または変数のすべての使い方を見つける方法
{'function_name':{'uses': [...functions used in this function...],
'causes': [...functions that use this function...]},
...
}
機能をパッケージ。
どうすればこの問題を解決できますか?
import package
import inspect
import types
for name, obj in vars(package).items():
if isinstance(obj, types.FunctionType):
module, *_ = inspect.getmodule(obj).__name__.split('.')
if module == package.__name__:
# Now that function is obtained need to find usages or functions used within it
をしかし、その後、私は現在の関数内で使用される関数を見つける必要がある:私は私がやっていて、パッケージで定義された機能のためのパッケージ__dict__
とテストを繰り返し処理できることを知っています。これはどうすればできますか?このタイプの仕事のためにすでに開発されたものはありますか?私は、ライブラリのプロファイリングがこれに似た何かをしなければならないかもしれないと思う。
これを確認してください。https://docs.python.org/2/library/ast.html –
これまでのところ有望です。どうやらこれらは「見つからない」「ast」ドキュメントです:https://greentreesnakes.readthedocs.io/en/latest/index.html – pbreach
@Ni。このモジュールを提案していただきありがとうございます。私は実際に働いたものを実装した。 – pbreach