Как программно составить список функций из пути модуля? - PullRequest
1 голос
/ 22 октября 2019

Мне нужно написать скрипт, который читает определенный модуль (не как импорт) и выдает список имен его функций.

Примерно так:

# script_to_be_listed.py

def function1():
    pass

def function2():
    pass

Где это:

python my_reader_script.py script_to_be_listed.py

Должно напечатать это:

function1
function2

Я уже пробовал использовать inspect и dir, но это работает, только если я импортирую модуль(что я точно не знаю, что будет дано).

Если нет родного модуля, который бы помог мне в выполнении этой задачи, не могли бы вы, ребята, предложить мне хороший способ сделать это?

OBS: я делаю это для автоматического создания некоторых функций Lambda в AWS и называю их функциями от script_to_be_listed.py.

1 Ответ

1 голос
/ 22 октября 2019

Чтобы развернуть комментарий @ user2357112, вы можете использовать функцию pyclbr.readmodule_ex для чтения модуля, перебора элементов возвращаемого dict и печати ключа, если значение является экземпляром pyclbr.Function:

import pyclbr

for name, obj in pyclbr.readmodule_ex('module_to_be_browsed', ['/path/to/script']).items():
    if isinstance(obj, pyclbr.Function):
        print(name)
...