Детект изменения исходников. Python

Модератор: Модераторы разделов

Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

Детект изменения исходников. Python

Сообщение halturin »

Приветствую всех.

Давече потребовалась возможность детектить изменения исходников. Как в django, там если делаешь модификацию своего прокта, то не требуется рестартить django (запущен в standalone).
Мне б узнать, за какие слова цепляться, чтобы потом гуглу про них спросить. Можно конечно в исходниках самой джанги глянуть, но времени нет ( хочется меньшей кровью.

PS: что-то мне кажется все-таки придется в исходники лезть :)
Спасибо сказали:
trdm
Сообщения: 266
ОС: Window XP

Re: Детект изменения исходников. Python

Сообщение trdm »

qt1L, 2C и прочие "аналоги" 1С.
Смертельная доза aлкoгoля 8 гр. на 1 кг вeсa тела: 80 кг * 8 = 640 гр.
Хотите знать больше?
Спасибо сказали:
Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

Re: Детект изменения исходников. Python

Сообщение halturin »

trdm писал(а):
03.03.2008 19:56
http://tortoisesvn.net/

ты хоть понял о чем я спросил?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Детект изменения исходников. Python

Сообщение Portnov »

Собсно есть два способа. Первый (более переносимый, но более тормозной): каждые n секунд пробегаемся рекурсивно по директории и собираем даты последнего изменения, сравниваем с предыдущими.
Второй (гораздо быстрее и проще в программировании, но работает только на Linux 2.6): использовать механизм ядра inotify, см. пакет pyinotify. Коротко говоря, вы просите ядро сообщать вам об изменениях в директории.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

Re: Детект изменения исходников. Python

Сообщение halturin »

Portnov писал(а):
04.03.2008 17:31
Собсно есть два способа. Первый (более переносимый, но более тормозной): каждые n секунд пробегаемся рекурсивно по директории и собираем даты последнего изменения, сравниваем с предыдущими.
Второй (гораздо быстрее и проще в программировании, но работает только на Linux 2.6): использовать механизм ядра inotify, см. пакет pyinotify. Коротко говоря, вы просите ядро сообщать вам об изменениях в директории.

нет, я полагаю у питона есть свои внутренние функции детекта. я собстно и привел в пример django. у нее можно не отходя от кассы делать изменения и они на лету подтягиваются.
Вот ты сам подумай даже если я нотифайем отдетектил изменения, как мне питону сказать чтобы он заново прекомпилил исходник и подтянул его?

ладно, я так понял никто не в курсе. все-таки придется в исходники лезть. а так хотелось меньшей кровью. (
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Детект изменения исходников. Python

Сообщение Portnov »

halturin писал(а):
04.03.2008 21:11
Вот ты сам подумай даже если я нотифайем отдетектил изменения, как мне питону сказать чтобы он заново прекомпилил исходник и подтянул его?


А в чём проблема? pyinotify позволяет вешать на события callback-и. Пишем что-то типа такого:

Код: Выделить всё

def callback(...):
  global my_module
  my_module = __import__(os.path.join(event.path,event.name))


Django работает примерно по первому описанному мной сценарию, только сканирует не дерево директорий, а sys.modules.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

Re: Детект изменения исходников. Python

Сообщение halturin »

Portnov писал(а):
05.03.2008 18:47
Django работает примерно по первому описанному мной сценарию, только сканирует не дерево директорий, а sys.modules.


честно признаться крайне слабо в это верится. в любом случае, спасибо за наводку. на днях попробую dive into django :) как разберусь, отпишусь здесь.
Спасибо сказали: