Возможно ли это?
Если это не связано с путешествием во времени, антигравитацией или вечным движением, ответом на этот вопрос всегда будет «ДА». Вам не нужно спрашивать это.
Правильный путь состоит в следующем.
Вы создаете фреймворк с некоторыми удобными библиотеками и пакетами.
Вы создаете несколько примеров приложений, которые реализуют это требование: «Перед тем, как система сможет работать с ними, может потребоваться предварительная обработка данных».
Вы пишете документацию о том, как это приложение импортирует и использует модули из вашей инфраструктуры.
Вы передаете среду, примеры приложений и документацию пользователям, чтобы они могли создавать эти приложения.
Не тратьте время на «возьмите строку (введенную пользователем), скомпилируйте ее в Python (после добавления кода для предоставления входных данных) и получите вывод».
Пользователь должен писать такие приложения.
from your_framework import the_file_loop
def their_function( one_line_as_dict ):
one_line_as_dict['field']= some stuff
the_file_loop( their_function )
Это может быть целая программа.
Вам нужно будет написать the_file_loop
, что будет выглядеть примерно так.
def the_file_loop( some_function ):
with open('input') as source:
with open('output') as target:
for some_line in source:
the_data = make_a_dictionary( some_line )
some_function( the_data )
target.write( make_a_line( the_data ) )
Создавая фреймворк и позволяя пользователям писать свои собственные программы, вы будете намного довольны результатами. Меньше магии.