Зависит от того, кто ваши клиенты.
Если это "открыто для публики" на WWW, вы должны проанализировать выражения самостоятельно. Вы можете использовать компилятор Python для компиляции синтаксиса Python. Вы также можете изобрести свой собственный компилятор для подмножества синтаксиса Python. Есть много примеров; начать с проекта ply .
Если это внутри компании («за брандмауэром»), пусть постит кусок кода Python и исполняет этот код.
Предоставьте им среду from math import *
функциональность доступна.
Сложите следующую строку вокруг предоставленной строки кода:
def userFunc( col1, col2, col3, ... ):
result1= {{ their code goes here }}
return result1
Затем вы можете выполнить определение функции и использовать определенную функцию без каких-либо неприятностей.
В то время как некоторые люди любят кричать, что exec
- это «проблема безопасности», это не больше проблема безопасности, чем обмен паролями пользователя, и администратор делает намеренно глупые вещи, такие как удаление важных файлов или случайное отключение питания во время программирования работает.
exec
является проблемой безопасности, только если вы разрешаете кому-либо доступ к ней. Для внутренних приложений вы знаете пользователей. Тренируйте их.