В поисках готового велосипеда для решения задачи мониторинга за изменениями в ФС с поддержкой linux+freebsd наткнулся на приятную python либу watchdog (github, packages.python.org). Которая помимо интересных мне ОС поддерживает также MacOS (есть своя специфика) и Windows.
Тем, кому данный вопрос интересен и кого не отпугнет индийское происхождение автора, прошу Читать полностью »
Рубрика «python» - 351
Мониторинг за изменениями файловой системы
2012-03-25 в 10:51, admin, рубрики: fsevents, inotify, python, системное администрирование, метки: fsevents, inotify, pythonВстречаем релиз Django 1.4
2012-03-23 в 17:10, admin, рубрики: django, python, метки: Django, python
О новых фишках, изменениях, несовместимостях со старыми версиями Django и Python можно почитать тут. Читать полностью »
Перестаньте писать классы
2012-03-23 в 13:33, admin, рубрики: java, python, игра жизнь, классы, ооп, проектирование, Проектирование и рефакторинг, рефакторинг, метки: java, python, игра жизнь, классы, ооп, проектирование, рефакторинг Признак того, что объект не должен быть классом — если в нём всего 2 метода, и один из них — инициализация, __init__. Каждый раз видя это, подумайте: «наверное, мне нужна просто одна функция».
Каждый раз когда из написанного класса вы создаёте всего один экземпляр, используете только раз и тут же выбрасываете, следует думать: «ой, надо бы это отрефакторить! Можно сделать проще, намного проще!»
Перевод доклада Джэка Дидриха, одного из клчюевых разработчиков языка Питон. Доклад прозвучал 9 марта 2012 на конференции PyCon US.
Читать полностью »
Модифицикация байт-кода функции в Python
2012-03-20 в 13:46, admin, рубрики: python, байт-код, метки: python, байт-код Некоторое время назад мне потребовалось решить достаточно необычную задачу, а именно, добавить нестандартный оператор в языке python. Эта задача заключалась в генерации питоновского кода по псевдокоду, похожему на ассемблер, который содержит в себе оператор goto. Сложный лексический анализатор мне писать не хотелось, оператор goto в псевдокоде использовался для организации циклов и переходов по условиям, и хотелось иметь некоторый его аналог в питоне, которого нет.
Читать полностью »
Автоматизируем проверку трекинга почты России
2012-03-20 в 10:10, admin, рубрики: python, почта россии, метки: python, почта россии Надоело нудно выбирать из списка нужный трек?
Не работают сторонние треккеры?
Тогда мы идём к вам! ©
После того, как мне в очередной раз стало лень проверять с десяток треков, выбирая их из списка на сайте Почты России, я занялся поиском хоть какого решения для автоматизации сего процесса.
Результат изысков Читать полностью »
Чуть-чуть «извращений» над моделями django
2012-03-20 в 2:17, admin, рубрики: decorators, django, models, python, метки: decorators, Django, models, pythonЛень двигатель прогресса
Иногда, создавая модели в django, я себя начинаю чувствовать мартышкой. Постоянно создаю атрибут enable, который принимает по умолчанию то значение True, то False. Меняю менеджер objects на свой простой EnableManager. А хочется иметь механизм, который эти монотонные операции делал за меня. Раз хочется, то можно сделать.
Интеграция Python и C++
2012-03-19 в 14:21, admin, рубрики: boost, c plus plus, c++, python, websockets, Блог компании PENXY, метки: boost, c plus plus, python, websocketsВсем доброго времени суток!
Недавно при прототипировании одной из частей разрабатываемого нами продукта возникла одна интересная задача: нужно было проверить склейку Python и C++. Связано это было с тем, что основной код был написан на плюсах, и необходимо было подключить внешнюю библиотеку Websockets, написанную на Python (на тот момент не было соответствующей библиотеки на C++). Схема взаимодействия при такой задаче достаточно простая. Из C++ вызывается функция подключения к серверу (на python), в качестве параметра передается его адрес. Соответственно, при получении сообщния Python передавает его обратно в метод C++.
Читать полностью »
Извлекаем мета-информацию из Си/C++ кода при помощи (py)gccxml
2012-03-19 в 11:36, admin, рубрики: c++, python, Компиляторы До появления gccxml, был только один способ извлечь мета-информацию из Си/С++ кода. Для начала, необходимо было написать парсер, способный справиться с грамматикой языка С++. Это не та задача, которую вы обычно решаете дома за выходные.
Теперь, писать парсер больше не нужно. Модифицированный компилятор gcc анализирует ваш код и выдает описание всех пространств имен, типов, классов и функций, встреченных в программе. Данные выдаются в формате XML и в принципе готовы для дальнейшего автоматического анализа и обработки.
Для разбора XML данных, полученных от gccxml, пригодится библиотека pygccxml. Это не просто ридер формата gccxml — библиотека предоставляет интерфейсы для изучения собранных метаданных; в частности есть готовые функции, отвечающие на вопросы вроде «совместимы ли типы T1 и T2?» или «наследует ли класс C1 от C2?». Библиотека написана на языке Python.
Экспорт друзей VK в Google Contacts
2012-03-19 в 8:48, admin, рубрики: android, Google, python, экспорт, метки: Google, Вконтакте, экспорт После покупки андроид-фона, появилась необходимо перебросить всех друзей ВК с нормальными номерами телефона в Гугл контакты. В интернете ничего подходящего не нашел, поэтому пришлось написать свой скрипт на Python.
Читать полностью »
VIM, Django… Django, VIM
2012-03-17 в 13:17, admin, рубрики: django, python, vim, метки: Django, python, vimВот казалось бы сейчас, как никогда должна быть масса крутых IDE для разработки на Django. И они есть — взять хотя бы PyCharm или PyDev. Но мне они никогда не нравились. Я всю свою карьеру Python-разработчика пользовался SciTE + Scintilllua (вот мой конфиг, если кому нужен) и был вполне доволен. Но черт меня дернул попробовать VIM с Emacs и я уже не смог вернуться на SciTE. Нет, это отличный редактор, но большую часть работы я пишу код и уже не могу представить, как можно было работать в текстовом редакторе с мышкой или каждый раз тянуть руку к стрелкам, чтобы перейти на новую строку, а потом к End, чтобы перейти в конец строки. Оставалось мне только по-минимуму настроить свой VIM для удобной разработки на Django.Читать полностью »