IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     24.09.2015       Выпуск 92 (21.09.2015 - 27.09.2015)       Колонка автора

Синтаксис Python: dir()

Достался нам в наследство какой-то код. А там непонятный объект с названием super_object_1.
Как понять что это за объект?
На помощь приходят встроенные функции - type(), dir(). Если с type() все ясно -...[Продолжение]

     23.09.2015       Выпуск 92 (21.09.2015 - 27.09.2015)       Колонка автора

Функциональный Python: fn.py

Функциональные аспекты, такие как чистота, иммутабельные данные весьма жизнеспособны. Какие-то из них Python хорошо поддерживает, какие-то нет (например, рекурсия).
Сегодня хочется упомянуть библиотеку ...[Продолжение]

     23.09.2015       Выпуск 92 (21.09.2015 - 27.09.2015)       Колонка автора

Извлечение информации: grab - фреймворк для веб-парсинга

Grab — python библиотека для парсинга сайтов
Её основные функции:
- Подготовка сетевого запроса (cookies, http-заголовки, POST/GET данные)
- Запрос на сервер (возможно через HTTP/SOCKS прокси)
-...[Продолжение]

     21.09.2015       Выпуск 92 (21.09.2015 - 27.09.2015)       Статьи

Алгоритм шифрования RC5 и его реализация на python

Алгоритм RC5 В своём посте, я хотел бы рассказать о симметричном алгоритме шифрования RC5 и моей версии его реализации на python. Данный алгоритм разработан известнейшим криптологом Рональдом Макдональдом Ривестом — одним из разработчиков системы RSA и основателей одноименной фирмы. По количеству пользователей RC5 стоит в одном ряду с такими известными алгоритмами как IDEA и Blowfish. Аббревиатура RC обозначает, по разным источникам, либо Rivest Cipher, либо Ron's Code, что в совокупности даёт нам «шифр Рона Ривеста». Заинтересовавшихся прошу под кат. Не нажимать!

     22.09.2015       Выпуск 92 (21.09.2015 - 27.09.2015)       Колонка автора

Тесты тесты тесты: Selenium как инструмент тестирования

Selenium – это проект, в рамках которого разрабатывается серия программных продуктов с открытым исходным кодом.
Среди продуктов интересен Selenium WebDriver - это программная библиотека для управления браузерами....[Продолжение]

     22.09.2015       Выпуск 92 (21.09.2015 - 27.09.2015)       Колонка автора

Тесты тесты тесты: создание читаемых отчетов

Когда в вашей программе очень много тестов, то возникают проблемы с чтением отчетов (что сломалось, что корректно отработало). Для создания читаемых отчетов можно порекомендовать allure-framework. О этом фреймворке можно...[Продолжение]

     21.09.2015       Выпуск 92 (21.09.2015 - 27.09.2015)       Колонка автора

Синтаксис Python: yield from

Рассмотрим еще одну страшную конструкцию в Python 3.3+ - yield from
Напомню, генератор это объект который можно про итерировать только однажды. Записывается как:
f = (x for x in...[Продолжение]

     21.09.2015       Выпуск 92 (21.09.2015 - 27.09.2015)       Колонка автора

Синтаксис Python: encode/decode

Вероятно, самым заметным отличием Python 2 от Python 3 является юникод. Это нововведение упростило работу со строками. Однако, так как Python 2 еще в строю, то кодировки еще в силе и не мало разработчиков путается между...[Продолжение]

     20.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Таинство стандартной библиотеки: модуль operator

Модуль operator содержит набор функций, соответствующих операторам Python.
Вот некоторые функции:
operator.add(a, b) # суммирует два значения
...[Продолжение]

     18.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Статьи

Python 3.5; async/await

Тихо и незаметно (с), вышел Python версии 3.5! И, безусловно, одно из самых интересных нововведений релиза является новый синтаксис определения сопрограмм с помощью ключевых слов async/await, далее в статье об этом. 

Поверхностный просмотр «PEP 0492 — Coroutines with async and await syntax» по началу оставил у меня вопрос «Зачем это надо». Сопрограммы удовлетворительно реализуются на расширенных генераторах и на первый взгляд может показаться, что все свелось к замене yield from на await, а декоратора, создающего сопрограмму на async. Сюда можно добавить и возникающее ощущение, что все это сделано исключительно для использования с модулем asyncio.

     19.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Таинство стандартной библиотеки: слабые ссылки - weakref

Python имеет автоматическое управление памятью: подсчёт ссылок для большинства объектов и сборка мусора для удаления циклов. Память освобождается сразу после того, как была удалена последняя ссылка на объект.
Этот...[Продолжение]

     17.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Статьи

Анализ логов с помощью Hadoop/Python

Привет, Хабр! В этом посте я хотел бы рассказать вам о том, как мы, Лаборатория новых профессий, вместе с компанией Data-centric Alliance смогли сконструировать несколько лабораторных работ, посвящённых обработке и анализу веб-логов. Эти лабораторные работы являются ключевыми в рамках первого кейса нашей образовательной программы «Специалист по большим данным» и выполняются на основе аудиторных данных DMP Facetz.DCA. Меня зовут Артем Пичугин, и я являюсь её координатором.

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

     17.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Статьи

Разворачиваем Flask-приложение на Nginx, используя Gunicorn

Предположим, у вас есть Ubuntu, в котором нужно развернуть Nginx с Flask-приложением. Вам необходимо использовать WSGI сервер, например, Gunicorn. Gunicorn (Green Unicorn) — WSGI HTTP сервер на Python для UNIX систем. Представляю вольный перевод статьи Onur Güzel «How to Run Flask Applications with Nginx Using Gunicorn», где шаг за шагом показано процесс развертывания.

     18.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Функциональный Python: Python — это не Haskell

Идеи функционального программирования довольно популярны, в том числе и в среде программистов на Python, который не является функциональным языком.
В докладе речь пойдёт об особенностях функционального стиля в...[Продолжение]

     17.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Статьи

Регулярные выражения python

Регуля́рные выраже́ния (англ. regular expressions) — формальный язык поиска и осуществления манипуляций с подстроками в тексте. Так же их называю сокращенно regexes. Проще говоря это шаблон (pattern) для поиска определенной строки(подстроки). Разберем все на примерах.

     18.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Внутренности Python: импорт в Питоне

Любая программа использует импорт модулей. Но, как показал беглый опрос, далеко не все программисты представляют, как работает импорт, что содержится в модуле и как этот импорт можно расширять для своих нужд.
...[Продолжение]

     18.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Полезные библиотеки: gensim - библиотека для моделирования над текстами

Gensim - библиотека Python для моделирования. А точнее, тематическое моделирование документов и извлечения подобия с больших корпусов.
Целевая аудитория - люди занимающиеся обработкой естественного языка (НЛП) и IR...[Продолжение]

     16.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Колонка автора

Пишем web-проекты: Django Admin Actions

Интерфейс администратора Django достается разработчику "даром". Добавляешь немного строк кода и появляется UI где можно изменять объекты моделей. По умолчаниюю нам предоставляют GRUD возможности.
Но что если нам надо...[Продолжение]

     15.09.2015       Выпуск 91 (14.09.2015 - 20.09.2015)       Видео

Commit, ускоривший Python 2.7.11 на 30% и новое в Python 3.5

В мини-докладе пойдёт речь о коммите, ускорившим Python 2.7.11 на 30%, а также о некоторых нововведениях в Python 3.5: PEP 448 — Дополнительное обобщение распаковки, PEP 484 — Новый стандарт для аннотирования типов, PEP 492 — Сопрограммы с использованием async и await.