Установите настройки pycharm из командной строкиPython

Программы на Python
Anonymous
Установите настройки pycharm из командной строки

Сообщение Anonymous »


Я просто хочу создать сценарий инициализации оболочки или Python (лучше), который установит некоторые рекомендуемые настройки для моего проекта (не затрагивая все остальные настройки), поэтому мне не нужно просить каждого пользователя устанавливать их вручную. Это своего рода сценарий инициализации, который пользователь должен запустить при клонировании моего проекта.

В частности, я хочу, чтобы этот скрипт установил следующие настройки Pycharm (если пользователь клонировал проект с помощью Pycharm):
[*]некоторые исключенные каталоги из структуры проекта [*]некоторые дополнительные пути интерпретатора (так как я обнаружил, что лучше настроить параметры sourcePaths) [*]формат строки документации в интегрированных инструментах Python [*]файл требований к пакету в интегрированных инструментах Python
Есть и другие настройки для проекта, которые я хочу сделать, но у меня возникают трудности только с настройками pycharm.

Можно ли как-то сделать?

Возможное решение, которое я нашел сам:

Я обнаружил, что обычно в каталоге .idea находится файл с именем проекта. Он взят из файла modules.xml и содержит все имеющиеся у меня настройки. Оба файла могут быть перезаписаны во время создания проекта из исходного кода, поэтому, похоже, не стоит помещать их под контроль версий (пока существует автоматически сгенерированный файл .gitignore, поэтому .idea Предполагается, что каталог будет зафиксирован, но также будет содержать настройки для некоторых плагинов и т. д.). Лучшее, что я мог сделать на данный момент:
[*]найти файлы *.iml. Проверьте, существует ли один такой файл, или создайте исключение. [*]проанализируйте файл
.iml и добавьте недостающие параметры с помощью пакета lxml. Основная идея (это прототип. Добавляйте только исключенный путь и не меняйте папку .idea только для отладки):

импортировать fnmatch импортировать ОС импортировать xml.etree.ElementTree как ET исключенные_пути = ('.hidden',) def find(шаблон, путь): результат = [] для корня, каталогов и файлов в os.walk(path): для имени в файлах: если fnmatch.fnmatch(имя, шаблон): result.append(os.path.join(корень, имя)) в то время как директории: dirs.pop() вернуть результат results = find('*.iml', '.') # адаптируемся для работы с папкой .idea если len(результаты) != 1: поднять RuntimeError(файл f'.iml не один') имя файла = результаты[0] дерево = ET.parse(имя файла) content_element = Tree.findall(".//*[@url='file://$MODULE_DIR$']")[0] исключенные_элементы = Tree.findall(".//*[@url='file://$MODULE_DIR$']/excludeFolder") исключенные_urls = [x.get('url') для x в исключенных_элементах] для пути в исключенных_путях: если f'file://$MODULE_DIR$/{path}' нет в исключенных_urls: новый = ET.SubElement(content_element, 'excludeFolder') new.attrib['url'] = f'file://$MODULE_DIR$/{path}' ET.indent(дерево) Tree.write(имя файла, xml_declaration=True, кодировка='UTF-8') Это может быть ненадежно. Было бы лучше использовать какой-нибудь стабильный API PyCharm, если он существует. И это сложно.

На данный момент у нас есть существующий проект, который существует уже много лет. У него есть немного ci/cd и немного потока. Процесс настройки среды разработки включает в себя несколько шагов, выполняемых вручную. На данный момент я хочу автоматизировать эти шаги. Это моя задача JIRA. У меня проблема заключается в том, чтобы автоматически добавить некоторые настройки проекта pycharm в скрипт. Это все, что я хочу сделать.

Вернуться в «Python»