to post messages and comments.

← All posts tagged Python

На первый взгляд ну очень хороша. На второй взгляд стало немного страшно, т.к. на первый взгляд простую ситуацию вида

class A(object):
    def foo(self): pass
class B(A):
    def foo(self): pass
b = B()
b.foo

разрулило неправильно. При переходе на b.foo пошло сразу на A.foo почему-то. Короче, всё равно придется внимательно следить, видимо.

Прогнулись. В новом pep8
-Limit all lines to a maximum of 79 characters.
+Aim to limit all lines to a maximum of 79 characters, but up to 99
+characters is acceptable when it improves readability.

Ну, хоть так.

Если вы вдруг, как и я, будете долго искать, где в pathlib брать имя файла (.name), знайте, что оно есть только в 0.8 версии, то есть устанавливайте из меркуриала (default).

Стаю ленивым, всё же. Раньше бы предпочёл больше строк и понятнее, теперь же написал вот
PageInfo = namedtuple('PageInfo', ['page', 'per_page'])Ну и плюс, пусть уж будет константой заодно (ибо нефиг менять потом).

Решил тут почитать по-быстрому туториал (конкретно docs.sqlalchemy.org ) по sqlalchemy (т.к. как-то я его вдумчиво никогда и не читал, на самом деле) и офигел: изначально ожидая "очень быстро пробежаться", я читаю его очень маленькими шагами, т.к. очень уж он ёмок, и очень плотно вкладываются все концепции. В общем, мне очень нравится.

Раздражает, когда сложно что-то дебажить. Например в питоне библиотека Logging — вроде бы всё красиво, а на деле, если оно "не печатается", то часто лень разбираться, и проще сделать print.

А сейчас так совсем: после обновления django_celery и конфигов при прогоне тестов логи не скрываются, а тупо печатаются. Жутко бесит, а как дебажить даже и не знаю (точнее, знаю, но понимаю что это займёт время).

checkio.org очень даже неплох. Уже начал на него подсаживать "желающих изучать python" внутри компании, и сам заодно гляжу на него.

Новый pep8.py считает, что "продолжения линий" должны быть кратны 4м. То есть, lisp/emacs-style продолжения, выравнивающиеся по началу открытия скобочки/словаря идут нафиг. Впринципе, я давно хотел от них отказаться (в пользу любителей альтернативных емаксу редакторов), но не было стимула. Теперь есть, синеньким подсвечиваются.

Хоть я и забросил пост про тестирование, обновил часть про tdd/bdd, т.к.:
1. она самая посещаемая (видимо, buzzwords).
2. в ней был неимоверный бред по отношению к текущему положению дел и моих мозгов.
redhotchilipython.com

Попробую сейчас использовать factory_boy. Причем сразу в сложные тесты (с кучей зависимостей в моделях etc.). Посмотрим, насколько сложно его адаптировать в реальной жизни.

А вообще Кэноникал молодцы, запилили нормальный туториал по питон+гтк3 python-gtk-3-tutorial.readthedocs.org (тоже на движке sphinx ^_____^)

До этого, где-то год назад хотел что-то посмотреть/почитать, было какое-то за 2006 год устаревшее по pygtk, хотя уже тогда pygtk больше не поддерживался и говорили, что все переходим на gobject-introspection. Типичные разработчики GNOME, в общем-то.

Нет, itertools.groupby — конечно, крутая штука, но эти ваши итераторы совершенно невозможно читать, а тут чтоб в читаемый вид превратить надо сначала в dict() сконвертировать, а потом каждый из включей в list. Отстой, в общем. Пойду свой groupby без итераторов напишу.

Нет, всё же очень приятно писать в тестах что-то вроде
se.get_nonused_offer_match_facts.return_value = [f1, f2] = [M(), M()]