У меня есть очень большой проект ML, который включает в себя внутреннюю библиотеку обучения, метрик, демо и т. Д. c. Python классы, которые я написал. Мне нужно сделать только часть этого кода, развертываемого на периферийных устройствах. Моя файловая иерархия выглядит примерно так (упрощенно):
project
-- ext (external libraries)
-- lib (internal libraries)
-- training
-- inference
-- metrics
-- ..etc
-- sub-project
-- src
-- sub-project-specific src files..
-- bin
-- sub-project executables here...
В вышеприведенном случае подпроекты будут получать доступ к внутренней библиотеке и к коду внешней библиотеки при необходимости.
Я хочу развернуть только один подпроект и специфицированные c внутренние и внешние зависимости библиотеки, используемые для устройства. Например, если подпроект просто выполняет логический вывод, я не хочу включать и потенциально предоставлять хакерам обучающий код на устройстве. Это развертываемое решение будет запускать исполняемый файл из папки bin
выше.
В идеале я также не хочу создавать совершенно новый проект и репозиторий этого подмножества файлов для поддержки и сохранения кода 1 к 1 с исходным проектом в процессе разработки исходного проекта. Если это вообще возможно, я также хочу защитить код от читабельности (или, по крайней мере, сделать его более трудным для чтения) на случай, если кто-либо сможет получить доступ к пограничному устройству.
Наилучшее решение для этого просто создать собственный сценарий для копирования файлов из исходного проекта для создания развертываемого проекта на каждом ПО sh в производство? Тогда, может быть, просто сохраните список зависимостей, например, для файла JSON, через который может разбираться сценарий компоновщика? После того, как я подумаю, я мог бы просто создать колесо Python развертываемого проекта и развернуть его на наших устройствах? Или есть инструменты для автоматизации этого для меня?