Программное редактирование исходного кода Python - PullRequest
8 голосов
/ 28 августа 2008

Я думаю, это было бы очень полезно. По сути, я хотел бы, чтобы был способ редактировать исходный код Python программно, не требуя вмешательства человека. Есть несколько вещей, которые я хотел бы сделать с этим:

  1. Редактирование конфигурации приложений Python, которые используют исходные модули для конфигурации.

  2. Установите «шаблон», чтобы я мог настроить исходный файл Python на лету. Таким образом, я могу настроить систему «проект» в приложении с открытым исходным кодом, над которым я работаю, и разрешить настройку определенных файлов.

Возможно, я мог бы написать что-то, что может сделать это сам, но я вижу, что это открывает много проблем типа "дьявол в деталях". Есть ли какие-либо способы сделать это в настоящее время, или мне просто нужно прикусить пулю и реализовать ее самостоятельно?

Ответы [ 3 ]

3 голосов
/ 28 августа 2008

Стандартная библиотека Python предоставляет довольно хорошие возможности для работы с исходным кодом Python; обратите внимание на токены и парсер модули.

0 голосов
/ 30 августа 2008

Большинство таких вещей можно определить программно в Python, используя такие модули, как sys, os и специальный идентификатор _file_ , который сообщает вам, где вы находитесь в пути файловой системы.

Важно помнить, что при первом импорте модуля он будет выполнять все в области видимости файла, что важно для разработки поведения, зависящего от системы. Например, модуль os в основном определяет, какую операционную систему вы используете при импорте, а затем соответствующим образом корректирует свою реализацию (импортируя другой модуль, соответствующий Linux, OSX, Windows и т. Д.).

В этой функции много силы, и что-то в этом роде, вероятно, то, что вы ищете. :)

[Edit] Я также использовал socket.gethostname () в некоторых редких хакерских случаях. ;)

0 голосов
/ 29 августа 2008

У меня была та же проблема, и я просто открыл файл и сделал некоторую замену: затем перезагрузил файл в интерпретаторе Python. Это прекрасно работает и легко сделать.

В противном случае AFAIK вы должны использовать некоторые объекты conf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...