У меня есть каталог, например:
my_directory/
|
├── sub_dir/
| ├── bar.py
| └── foo.py
|
├── sub_dir_b/
| └── file4.txt
|
├── sub_dir_c/
| ├── config.py
| └── my_test_file.py
|
├── file1.py
├── file2.py
└── file3.txt
Теперь я хочу проверить каждую функцию и метод каждого python -файла, если ожидаемое возвращаемое значение является типом Coroutine.
Вопрос: есть ли способ проверить эти файлы (по абсолютному пути)?
В my_test_file.py
у меня есть функция, которая возвращает краткую информацию о моих файлах Python (через os.walk), но похоже, что это мне больше не поможет. Должен ли я импортировать их как модуль в любом случае, потому что тогда может быть решение с inspect.getmembers()
или есть лучший способ без их импорта?
Я знаю, что могу проверить тип возвращаемого значения, получив функции / методы __annotations__
например:
async def bar(j):
return None
def foo(i:int,j:int)-> Coroutine:
res = i+j
return bar
foo.__annotations__["return"]
Вернут: typing.Coroutine
, с которым я могу сравнить.