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

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

     14.10.2015       Выпуск 95 (12.10.2015 - 18.10.2015)       Видео

Получаем текст веб-страниц из Python и как это работает

Мы рассмотрим python-библиотеку под названием readability-lxml (https://github.com/buriy/python-readability), её применение и механизм работы для задачи извлечения текстов новостных страниц.

     14.10.2015       Выпуск 95 (12.10.2015 - 18.10.2015)       Колонка автора

Интересные концепции: fuzzy-testing - тестирование грубой силой

Тестирование программ повышает уверенность в ее способности работать. Есть даже большие школы, которые говорят о тестах, например, TDD, BDD.

У ручных тестов есть недостаток, среди прочих - тесты пишет человек. В следствии этого - он не сможет проверить работу функции/класса/etc на всех данных. А когда нам быть уверенным что даже на самых невалидных данных работает корректно, то без случайных данных не обойтись.

     13.10.2015       Выпуск 95 (12.10.2015 - 18.10.2015)       Колонка автора

Полезные инструменты: fabric - автоматизируем рутину

Ситуация: написали web-проект, свой, домашний, а может и на работе. Надо его опубликовать в Интернет - задеплоить. Зашли на сервер, активировали venv, скачали новые исходники из репозитория, накатили миграции, обновили static-файлы, перезапустили, предположим, celery, перезапустили uwsgi.

И тут, поняли что забыли раскоментировать строчку в коде. Делаем коммит, снова заходим на сервер, активировали venv.... Зачем вся эта рутина с деплоем? Может есть способ проще? Мы же IT-шники, давайте напишем скрипт.

     14.10.2015       Выпуск 95 (12.10.2015 - 18.10.2015)       Релизы

pex - 1.1.0

Библиотека и утилита для генерации .pex (Python EXecutable) файлов. Изменения описаны по ссылке https://allmychanges.com/p/python/pex/#1.1.0. Скачать можно по ссылке: https://pypi.python.org/pypi/pex

     13.10.2015       Выпуск 95 (12.10.2015 - 18.10.2015)       Интересные проекты, инструменты, библиотеки

vim-autosurround - автоматически закрываем скобки в Vim

vim-autosurround - это плагин написанный на Python, который позволяет упростить установку второй скобки (закрывающей)

     13.10.2015       Выпуск 95 (12.10.2015 - 18.10.2015)       Колонка автора

Интересные концепции: какой смысл с Объектном подходе?

В Интернет часто говорят об ООП, об объектах. Так какой смысл во всем этом? Какая польза, недостатки? Соображения на эту темы вы сможете найти в видео:

     12.10.2015       Выпуск 95 (12.10.2015 - 18.10.2015)       Колонка автора

Синтаксис Python: do...while

Цикл do while отличается от цикла while тем, что в do while сначала выполняется тело цикла, а затем проверяется условие продолжения цикла. Из-за такой особенности do while называют циклом с постусловием. Таким образом, если условие do while заведомо ложное, то хотя бы один раз блок операторов в теле цикла do while выполнится.

Иииии.... такой конструкции - do...while нет в Python. Написать цикл с постусловие можно так:

     10.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Интересные проекты, инструменты, библиотеки

Скрытая отправка файлов через DNS

В рамках проекта dnsteal развивается фиктивный DNS-сервер, позволяющий организовать скрытую отправку файлов по протоколу DNS, используя штатные системные утилиты резолвинга.

     10.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Колонка автора

Python проекты: интерпретатор PyPy

PyPy — это интерпретатор Python, который написан на Python (RPython) и может компилировать сам себя.

Основное отличие от обычного CPython — наличие JIT компилятора. Прелесть JIT компилятора в том, что в течении работы программы оптимизируются ее части.

Скорость исполнения кода на PyPy выше. На сайте http://speed.pypy.org/ вы можете найти сравнения CPython и PyPy. На сайте есть график (в самом низу): На графике видно, что скорость исполнения одного и того же кода на CPython и PyPy различается в среднем в 7 раза.

     12.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Статьи

pywhat - подборка неочевидных и вводящих в заблуждение языковых консрукций

Не только в Ruby и JavaScript есть неочевидные вещи. Python тоже не отстает.

     10.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Интересные проекты, инструменты, библиотеки

pigar - собираем файл requirements.txt в автоматическом режиме

Утилита позволяет провести анализ вашего кода и составить наборы requirements.txt  для Python 2 и Python 3

     09.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Интересные проекты, инструменты, библиотеки

django-skd-smoke - Генерация smoke тестов

Проект позволяет генерировать smoke тесты для django проектов на основе указанной конфигурации.

     09.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Статьи

Пишем графическую программу на Python с tkinter

В работе со студентами и учениками я заметила, что при изучении какого-либо языка программирования большой интерес вызывает работа с графикой. Даже те студенты, которые скучали на заданиях про числа Фибоначчи, и уже казалось бы у них пропадал интерес к изучению языка, активизировались на темах, связанных с графикой.

Поэтому предлагаю потренироваться в написании небольшой графической програмки на Python с использованием tkinter (кроссплатформенная библиотека для разработки графического интерфейса на языке Python).

Код в этой статье написан для Python 3.5. 

     08.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Колонка автора

Hardcore Python: переопределяем механизм импорта

В стандартной Python начиная с 2.3 существует механизм импорт-хуков. Зачем они нужны? Все очень просто - захотелось добавить поддержку импорта из .zip архивов. Ява такое может (.jar) - чем Питон хуже? Но открывать редактор только ради .zip не очень... Поэтому Python умеет загружать модули из базы данных или с соседнего сервера.

Механизм механизм импорт-хуков реализован с помощью:

  • sys.meta_path
  • sys.path_hooks
  • sys.path_import_cache

...

     08.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Интересные проекты, инструменты, библиотеки

ULNNO - Unsupervised Learning on Neural Network Outputs

Репозиторий содержит код для обучения Нейронной сети без учителя.

     09.10.2015       Выпуск 94 (05.10.2015 - 11.10.2015)       Релизы

psycopg2 - 2.7

Python интерфейс для PostgreSQL. Изменения описаны по ссылке https://allmychanges.com/p/python/psycopg2/#2.7. Скачать можно по ссылке: http://pypi.python.org/pypi/psycopg2/