Ответ 1
Я просто воткнулся в объект __code__
здесь, поэтому не могу сказать, что это сработает наверняка, но мне кажется, что вы можете использовать кортеж co_names
для (рекурсивного) прохождения график вызова, внедренный в определенную функцию, чтобы создать какой-то хэш транзитивного замыкания функций, которые можно было бы назвать. (Я не думаю, что можно было бы включить только те функции, которые будут вызваны для конкретного ввода, но вы можете быть консервативными и включать все возможные вызовы.)
Для этого вам нужно будет поддерживать какую-то таблицу символов, чтобы иметь возможность искать имена вызываемых функций. Но как только вы начнете идти по этому пути, кажется, что вы в основном собираетесь создать свой собственный аналог AST. Итак, почему бы просто не использовать AST для начала?