Я создаю небольшое программное обеспечение для командной строки (скажем, оно называется Stanley ) и упаковываю его с setuptools . В основном мой проект выглядит так:
Stanley / __init__.py
/ foo.py
/ bar.py
/ datafiles / preference_file_1.metadata
/ ...
/ preference_file_n.metadata
LICENSE
MANIFEST.in
README.md
setup.cfg
setup.py
Stanley должен создать некоторые файлы предпочтений в файлах данных папки, но не может импортировать существующие файлы предпочтений (например, используя аргумент data_files
из setuptools.setup()
), поскольку они будут содержать информацию, предоставленную пользователями после установка. Более того, я не могу заранее создать пустые файлы, потому что не могу заранее сказать, сколько из этих файлов будет создано.
Мне нужно, чтобы эта папка создавалась один раз, при установке Stanley . Любой файл, созданный Stanley в этой папке, должен оставаться неизменным при каждом обновлении. То есть, когда пользователь запустит $ pip3 install stanley --upgrade
, все настройки, содержащиеся в файлах данных папки, будут сохранены. Итак, мои вопросы:
1) Как создать файлы данных каталога с помощью setuptools?
2) Как убедиться, что файлы, созданные моим программным обеспечением в файлах данных, не будут изменены и по-прежнему будут доступны в файлах данных после переустановки или обновления?
Обратите внимание, что я впервые программирую «настоящее» программное обеспечение, включая кодирование, тестирование, упаковку, распространение (хотя PyPi и Python делают для меня много работы) и т. Д. Поэтому я не знаю о многих хорошие практики, и если вы скажете мне, что мой нынешний способ управления пользовательскими настройками не является правильным, я был бы рад изменить его, чтобы он соответствовал более высоким стандартам. Также, если моя проблема не ясна, я здесь, чтобы вы поняли это.
Большое спасибо.