Интересные концепции: Трансдьюсеры

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

more ...

Анонс встречи №2 сообщества PyNSK

Внимание внимание внимание, в середине сентября, а именно, 13 сентября в 13 часов пройдет встреча Python-сообщества PyNSK.

Подробности по ссылке - https://vk.com/pynsk_13_09_2015

На встрече вас ожидает два полноценных доклада и один мини-доклад:

Доклад Игоря Старикова (основатель Python сайта http://pythonz.net/) - "Разработчик разработчику: Азбука вежливости"

Доклад Артёма Попова https://vk.com/id42320764 - "Python в музыке. osc, midi и ...

more ...

Таинство стандартной библиотеки: functools.partial

Представим, написали мы функцию:

def super_function(server_name, host):
....print(server_name)
...........
....run_server(host)

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

Каррирование - преобразование ...

more ...

Полезные инструменты: gunicorn

Вот вы написали web-проект, теперь надо его опубликовать на хостинге (или у себя на машине) (задеплоить). Начинаете жадно мучать гугл странными запросами.

И вот наконец-то доходите до слов - uwsgi и gunicorn. Это серверы, которые с одной стороны предоставляют пользователям доступ к вашему проекту(сайтику), а с другой - общаются с вашим Python кодом.

Стоит сказать, что gunicorn это WSGI HTTP сервер ...

more ...

Извлечение информации: парсинг дат/времени

Извлечение информации из текста/web-страниц сопряжено с эвристиками. Одна из проблем, с которой сталкиваются разработчики - как парсить даты. Даты можно написать 100 и одним способом: tomorrow, а еще 4/4/80 или March 5th, 1980. И какой код писать, чтобы понять эти даты?

К счастью, код уже написан - https://github.com/bear/parsedatetime

Данная библиотека позволяет спарсить время в самых ...

more ...

Статическая типизация в Python: сила опциональной типизации

Не секрет, что Python (CPython) - динамически типизируемый язык (все типы выясняются во время выполнения программы). Это как дар так и проклятие. С одной стороны - можно быстрее писать программы, с другой - тяжелее найти ошибки. При этом, если была бы статическая типизация - уже на этапе компиляции мы знали бы где мы затупили с типами.

В этом видео рассказывается, как же можно использовать ...

more ...

Тесты тесты тесты: nose

nose — это инструмент для прогона тестов посредством unittest (и doctest, с ключом --with-doctest). Имеет также собственное API, использовать которое необязательно. nose автоматически собирает тесты из файлов вида test_*, достаточно умен, чтобы заглянуть в папочку tests при наличии таковой, умеет измерять покрытие кода (code coverage) при помощи coverage.py (--with-coverage). Также можно запустить только тесты, которые отвалились в последний прогон (--failed ...

more ...

Полезные инструменты: Pycharm

Pycharm - это IDE специализированная под Python разработку.

Возможности этого редактора кода захватывают: - Статический анализ кода, подсветка синтаксиса и ошибок. - Рефакторинг: переименование, извлечение метода, введение переменной, введение константы, подъём и спуск метода и т. д. - Инструменты для веб-разработки с использованием фреймворка Django - Встроенный отладчик для Python - Встроенные инструменты для юнит-тестирования - Поддержка систем контроля версий (Git, svn и другие) - По-мимо этого, Pycharm ...

more ...

Синтаксис Python: изменяемые и неизменяемые типы данных

Все типы данных в Python относятся к одной из 2-х категорий: изменяемые (mutable) и неизменяемые (unmutable). Многие из предопределённых типов данных Python — это типы неизменяемых объектов: числовые данные (int, float, complex), символьные строки (class 'str'), кортежи (tuple). Другие типы определены как изменяемые: списки (list), множества (set), словари (dict). Вновь определяемые пользователем типы (классы) могут быть определены как неизменяемые или изменяемые ...

more ...

Hardcore Python: Cython

Cython — язык программирования, упрощающий написание модулей С/С++ кода для Python. Кроме стандартного синтаксиса Python, поддерживаются:

Прямой вызов функций и методов С/С++ из кода на Cython; Строгая типизация переменных, классов, атрибутов классов.

Код Cython преобразуется в С/С++ код для последующей компиляции и впоследствии может использоваться как расширение стандартного Python или как независимое приложение со встроенной библиотекой выполнения Cython ...

more ...