Tuple[Callable, Any, ...]

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

more ...

Как внедрить mypy в проекте на Python 2.7

Я многократно писал, что описание типов в питоне помогает в работе с большими и средними проектами. При этом, если внедрять типы, то нужно регулярно делать статический анализ, причем в CI. А вот это уже не так-то просто внедрить. Эта статья - мой рассказ о том какие трудности придется преодолеть в процессе внедрения.

more ...

Что почитать о asyncio. 9 полезных ссылок

Asyncio — полезная библиотека. Но разобраться с ней не так-то просто. Документации по большей части недостаточно. Хочется примеров. Хочется подробных объяснений. Последние несколько выходных я потратил на эксперименты с этой библиотекой. Во время чего в Pocket осели довольно интересные ссылки, которыми я хочу поделиться.

more ...

Поддержка целостности проекта в Python требует усилий

Python позволяет программисту довольно много. Это очень выразительный язык. Его динамическая природа даёт возможность делать элегантные решения, которые довольно сложно представить, к примеру, в Java.

Тем не менее за все надо платить. При росте кодовой базы, проекты на Python начитают требовать всё больше и больше ресурсов на поддержание своей целостности. Без некоторых усилий проект начинает разваливаться на куски.

more ...

Хэш-функция для функции в Python

Пару недель назад один из моих коллег задал вопрос: можно ли использовать функцию в качестве ключей словаря? Да, можно. У каждой функции в Питоне есть хеш. Но как он считается? На основе имени функции? На основе байт-кода? В действительности, хэш считается трансформацией над указателем на объект функции. Тем не менее, не так-то легко отыскать эти расчеты в коде CPython.

more ...

c