Выпуск 106

(28.12.2015 - 03.01.2016)

pythondigest.ru: Выпуск 106

Новости

      Python переезжает на GitHub

Рассылка Python разработчиков пополнилась письмом: разработка Python переедит на Github. Сейчас на данном сервисе зеркало основного репозитория.

Статьи

      Numpy и многопроцессорность

Сейчас уже многие используют библиотеку numpy в своих python-программах, поскольку она заметно ускоряет работу с данными и выполнение математических операций. Однако во многих случаях numpy работает в разы медленнее, чем она может… потому что использует только один процессор, хотя могла бы использовать все, что у вас есть.

      Kaggle и Titanic — еще одно решение задачи с помощью Python

Хочу поделиться опытом работы с задачей известного конкурса по машинному обучению от Kaggle. Этот конкурс позиционируется как конкурс для начинающих, а у меня как раз не было почти никакого практического опыта в этой области. Я немного знал теорию, но с реальными данными дела почти не имел и с питоном плотно не работал. В итоге, потратив пару предновогодних вечеров, набрал 0.80383 (первая четверть рейтинга). В общем эта статья для еще начинающих от уже начавшего. 

      Разработка сайта на платформе Django-nonrel

В этой статье я хочу рассказать о разработке своего проекта — сайта egaxegax.appspot.com. Поскольку являюсь большим поклонником языка Python, свой сайт я решил создать на популярном фреймворке Django. Чтобы использовать его на бесплатном хостинге appspot.com, адаптировал код для использования NoSQL версии django и платформы Google AppEngine. 

      В какой стадии переезд на Python3?

Автор статьи на примере 5 стадий принятия негатива рассматривает переход на Python3

      Как обманывать нейронные сети

Статья описывает способ обмана нейронной сети. Нейронная сеть умеет определять хищних/не хищник. 

      Прямой доступ к диску из python

Расскажу я вам сегодня о том, как пытался я добраться из питона до интерфейса жесткого диска, и что из этого получилось.

Появляется у меня периодически необходимость тестирования большого количества жестких дисков. Обычно для этого используется досовая Victoria загружающаяся по сети. Она тестирует диски по одному, что не очень удобно. К тому же последнее время пошли платы не имеющие режима IDE, что дополнительно усложняет задачу. По началу у меня возникла идея взять готовый софт под линукс с открытыми исходниками и добавить ему возможность параллельного тестирования нескольких дисков. После беглого поиска выяснилось удручающее состояние этой области в линуксе. Из софта, ведущего при тестировании статистику по времени доступа к секторам и типам ошибок нашел только whdd. Попытка разобраться с кодом whdd закончилась полным провалом. Для меня, ни разу не программиста, код показался очень запутанным. К тому же большую его часть занимает совсем не работа с железом.

      Профилирование Python в production

Статья рассказывает как построить профилирование на продакшене.

Учебные материалы

      Python в научных вычислениях

Доктор физико-математических наук Андрей Грозин прочитал цикл лекций об использовании Python в целях ликвидации безграмотности среди студентов, аспирантов и прочих.

Колонка автора

      Полезные библиотеки: freezegun - замораживаем время

В модуле datetime есть now() - метод, который возвращает текущее время. Применяется метод часто, например, создаем новую запись в базе данных - в лог пишем запись от текущего времени.

Вот только такой код оттестировать не всегда просто - иногда надо чтобы now() возвращал конкретное время. Для этого случая есть freezegun:

      Примеры кода: click - инструмент для создания CLI приложений

Начинаем новую рубрику - "Примеры кода". В данной категории постов мы будем публиковать небольшие(или большие) куски кода. Это могут быть как решение определенных задач/вопросов так и небольшие примеры кода с применением инструментов.

      API всему голова: Feedly API - разбираемся с RSS сервисом

Сегодня хочу описать как работать с Feedly через их API в языке Python.

Для начала ссылки, которые точно понадобятся:

      Синтаксис Python: объект среза как объект или встроенный метод slice

В Python списки по реализации похожи на векторы. А векторы это динамические массивы, то есть последовательности элементов. К этим элементам можно обращаться - получить первый, второй, пятый, десятый элемент. Положение в массиве - это индекс.

      Полезные библиотеки: где брать модули для django?

Django - самый популярный web-фреймворк для Python. Этому доказательство - количество библиотек расширяющих возможности.

От этого множество авторов пишут статьи с названиями "Мой топ 10 django-модулей", мы не исключение и будем такие писать.

      Примеры кода: скрипт поздравления всех друзей с НГ в vk.com

В посте http://pynsk.ru/posts/2015/Nov/26/api-vsemu-golova-vkontakte-ot-nachala-do-otpravki-soobshcheniia-drugu/ было рассказано как начать работать с VK API.

НГ совсем близко. Python хорошо подходит для автоматизации. Поэтому в этот раз рубрика "Примеры кода"пополняется скриптом поздравления друзей с Новым Годом:

Интересные проекты, инструменты, библиотеки

      teeceepee - mini-TCP стэк на Python

Проект для обучения. С помощью кода проекта можно рассказать про устройство TCP-стека.

      typeguard - проверка типов в run-time (аннотации типов)

from typeguard import typechecked

@typechecked
def some_function(a: int, b: float, c: str, *args: str) -> bool:
    ...

      pygogo - логгер с супер-силой

Логгер представляет собой модуль + CLI. Поддерживает изменение шаблона логгирования, может писать лог в разных форматах (txt, csv, json..)

sample pygogo usage

      tcp_blackhole - TCP сервер с двумя ролями - /dev/null и echo server

import tcp_blackhole blackhole = tcp_blackhole.TcpBlackhole(host='localhost', port=9876, echo=False) blackhole.start()

      Flask-Neo4j - биндинг Neo4j для Flask

Neo4j - графовая база данных

      pyeq2 - коллекция уравнений для построения 2D и 3D фигур

Специализированный набор инструментов для обработки данных

      pyfilesystem - единая абстракция для работы с разными файловыми системами

pyfilesystem позволяет работать с файловой системой, tmpfs, zip архивами, TahoeLAFS, S3 и многими другими фс в единой манере

Релизы

      django-nose - 1.4.3

Django-nose – приложение упрощающее тестирование в django. Основными фишками является то, что: – позволяет запускать только твои тесты, и пропускать системные тесты в django – позволяет выполнять отдельные тесты в отдельных файлах и причем файл не обязан называться tests.py – позволяет создать визуальное покрытие тестами кода (создает html файлик, в котором отдельным цветом выделены участки кода покрытые тестами). Изменения описаны по ссылке https://allmychanges.com/p/python/django-nose/#1.4.3. Скачать можно по ссылке: https://pypi.python.org/pypi/django-nose

      scrapy - 1.0.4

Гибкий фреймворк для написания web-пауков (парсеров). Изменения описаны по ссылке https://allmychanges.com/p/python/scrapy/#1.0.4. Скачать можно по ссылке: https://pypi.python.org/pypi/Scrapy

      greenlet - 0.4.10

Модуль для легковесных потоков в Python. Изменения описаны по ссылке https://allmychanges.com/p/python/greenlet/#0.4.10. Скачать можно по ссылке: http://pypi.python.org/pypi/greenlet/

      aiohttp - 0.20.1

http клиент/сервер для asyncio. Изменения описаны по ссылке https://allmychanges.com/p/python/aiohttp/#0.20.1. Скачать можно по ссылке: https://pypi.python.org/pypi/aiohttp/