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

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


Новый материал в ленте
  pytest - 8.1.2

Простой мощный инструмент тестирования в Python. Скачать можно по ссылке: https://pypi.python.org/pypi/pytest/


Python Дайджест. Выпуск 113

(15.02.2016 - 21.02.2016)

поделиться выпуском 
pythondigest.ru: Выпуск 113

Конференции, события, встречи разработчиков

  Доклад: JSON-RPC или когда REST неудобен

Доклад: JSON-RPC или когда REST неудобен

Докладчик: Александр Кацко

Описание:

Как только речь заходит про создание API, особенно для веб или мобильных приложений, то многие, не задумываясь, выбирают принцип REST. Но всегда ли это правильный выбор? В докладе рассмотрим случаи, для которых хорошо подходит JSON-RPC, посмотрим примеры реализации на Django.

  Доклад: TestRail. Некоторые возможности интеграции

Доклад: TestRail. Некоторые возможности интеграции

Докладчик: Антон Голов

Описание:

Поговорим о некоторых функциях для интеграции TestRail c внешними системами и автоматизации деятельности QA. Будет немного про Google Docs, и некоторый набор методов работы с TestRail, рассмотрим возможности работы с системами автоматизированного тестирования.

  Piter Py #3 - Python-конференция на Неве

​Третий год подряд портал Айти-Событие проводит Python-конференцию - «Piter Py», которая состоится 22 и 23 апреля в Санкт-Петербурге. Конференция Piter Py призвана объединить людей, небезразличных к языку программирования Python для общения и обмена опытом. Формат: двухдневная конференци в 2 параллельных потока докладов. ​#PiterPy - самая душевная Python-конференция :)

Статьи

  Реверс протокола СКУД RS485 от Perco. Берегите линии своих СКУД от вторжения

Участвуя последнее время в разных интересных проектах, возникла задачка альтернативного управления продуктом Perco Электронная проходная KT02.3. Данный продукт является законченным решением и не подразумевает использование в составе других систем СКУД, а также какого-либо вторжения в свою среду управления. Но, как говорится в поговорке, «Возможно все! На невозможное просто требуется больше времени» (С) Дэн Браун.

  Пишем shell скрипты на Python и можно ли заменить им Bash

В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

  Глубокое обучение в гараже — Возвращение смайлов

Фух, ну наконец, детекция лиц работает, можно учить сеть распознавания смайла. Только вот на чем учить? Открытых наборов данных нет. А из того, как долго в предыдущей части я добирался до, собственно, обучения моделей вы уже должны были понять, что в глубоком обучении данные решают все. И их нужно много.

  Обработка сигнала GW150914 (обнаружение гравитационных волн)

В этой статье вы найдете IPython notebook, в котором автор провел анализ сигнала GW150914. Это сигнал обнаружения гравитационных волн

  Вызов C библиотек из Numba используя CFFI

Библиотека CFFI позволяет легко и эфективно запускать C код прям JIT'е Numba.

  Глубокое обучение в гараже — Две сети

Это вторая статья из серии про определение смайла по выражению лица. Глубокое обучение в гараже — Братство данных Глубокое обучение в гараже — Две сети Калибрация Итак, с классификатором, разобрались, но вы наверняка уже заметили, что заоблачные 99% как-то не очень впечатляюще выглядят во время боевого теста на детекцию. Вот и я заметил. Дополнительно видно, что в последних двух примерах очень мелкий шаг движения окон, так в жизни работать не будет. В настоящем, реальном запуске шаг ожидается больше похожим на картинку для первой сети, а там хорошо видно неприятный факт: как бы хорошо сеть не искала лица, окна будут плохо выровнены к лицам. И уменьшение шага — явно не подходящее решение этой проблемы для продакшена. Как быть?

  Установка Django-проекта на VPS (centOS 7) [Для новичков]

Хочу поделиться практическим опытом по установке готового проекта на Django на VPS от Reg.ru. Данное руководство рассчитано на новичков, оно содержит ряд не самых лучших решений, но с ним вы сможете запустить своей проект на Django в течение часа.

Инструкция не содержит настроек безопасности. Она была создана на базе англоязычных инструкций и боли, много боли (ссылки в конце статьи). Инструкция актуальна для настроек: centOS 7, Django 1.9.2 и Python 3.4.3

  Глубокое обучение в гараже — Братство данных

Продуктово все более или менее понятно: я хочу отправлять смайлы не выбирая их из списка, а, изображая их на лице. Итого, я хочу корчить рожу, фотографироваться, и система, в идеале, за меня должна понять, какой смайл я изображаю и вписать его в сообщение.Сразу разочарую: до прототипа в виде плагина к скайпу, вотсапу или хэнгауту так и не дошло (пока?), не хватает времени, доделал я только систему из сетей.

  Определяем цвет объекта с помощью OpenCV

Это заключительный пост про анализ и определение объектов. 

Видео

  Классификация литературных жанров

Доклад с Moscow Python №32 Докладчик: Андрей Киселев Описание: Попробуем собрать и улучшить простой языконезависимый классификатор текстов, исходя из естественных математических соображений.

  Алгоритмические основы обучения реккурентных нейронных сетей

Доклад с Moscow Python №32 Докладчик: Никита Учителев (Datacentric) Описание: Мое выступление будет кратким введением в обучение реккурентных нейронных сетей. Сейчас обучить свою нейронную сетку может любой желающий, написав всего десяток строк кода. Я расскажу про то, что скрывается за этими строками, и почему нейросети еще не используются повсеместно.

  Python 3.5, aiohttp — опыт эксплуатации, проблемы, решения

Доклад с Moscow Python №32 Докладчик: Павел Петлинский (Rambler&Co) Описание: Как мы запустили продакшн сервис на последней версии вселенной и что получили

  Очаровательная змея: Python для живой музыки

В докладе вы найдете предпосылки для использования Python для обработки звука в реальном времени.

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

  Курс прикладного программирования на основе языка Python

Курс в начале немного будет о языке Питон (еще бы), но хочется проникнуть чуть дальше стандартного "это циклы, это условия, вот ООП, смотрите, стандартная библиотека. Ура! Вы знаете Питон". Сделать несколько попыток проникнуть именно в прикладное программирования, коснуться областей, для которых создаются программы. Ведь не бывает "просто программирования".

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

  Таинство стандартной библиотеки: модуль copy - копирование объектов

Оператор присваивания в Python не копирует объект, он создает ссылку между переменной и объектом. Для коллекций, которые могут изменяться или содержать изменяемые элементы это не всегда верная стратегия.

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

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

  pysdl2-sdl2ui - создаем UI с помощью pysdl2

class MyApp(sdl2ui.App):
    width = 256
    height = 224
    zoom = 3
    # NOTE: the fps you desire: less fps = less CPU usage
    fps = 30
    name = "My Application"
    # NOTE: order the handlers in what you want to display first
    default_handlers = [MainHandler, ListSelectorHandler, MenuHandler]
    default_resources = [('background', 'background.png')]


logging.basicConfig(level=logging.DEBUG)
app = Meldnafen(handlers=[sdl2ui.handler.DebuggerHandler])
app.loop()
del app

  Mpmath – библиотека для арифметики с произвольной точностью

>>> from mpmath import mp
>>> mp.dps = 50
>>> print(mp.quad(lambda x: mp.exp(-x**2), [-mp.inf, mp.inf]) ** 2)
3.1415926535897932384626433832795028841971693993751

  p.url - пакет для парсинга ссылок

from purl import Purl

url = Purl('https://github.com/search?q=cat)

str(url.add_query('q', 'dog')) # => 'https://github.com/search?q=dog'
url = Purl('https://github.com/search)

str(url.add_query({
  'q': 'cat',
  'l': 'JavaScript',
  'type': 'Issues'
}))

url = Purl('https://github.com/search)

str(url.add_query('q', 'cat')
  .add_query('l', 'JavaScript')
  .add_query('type', 'Issues')) # => 'https://github.com/search?l=JavaScript&q=cat&type=Issues'

  cant - определяем по входным и выходным значениям функцию

[In]  cant.remember(inp=5, expected=15, args=3)

[Out] [{'arity': '1', 'callable': '__mul__', 'input': 5, 'namespace': 'self'},
       {'arity': '1', 'callable': '__rmul__', 'input': 5, 'namespace': 'self'}]

  genty - запускаем тест с разными входными значениями

from genty import genty, genty_repeat, genty_dataset
from unittest import TestCase

# Here's the class under test
class MyClass(object):
    def add_one(self, x):
        return x + 1

# Here's the test code
@genty
class MyClassTests(TestCase):
    @genty_dataset(
        (0, 1),
        (100000, 100001),
    )
    def test_add_one(self, value, expected_result):
        actual_result = MyClass().add_one(value)
        self.assertEqual(expected_result, actual_result)

  trender - движок отрисовки шаблонов на чистом Python

from trender import TRender

template = '@greet world!'
compiled = TRender(template)
output = compiled.render({'greet': 'Hello'})

print(output) # => Hello world! 

  DateTimeRange - реализация временных промежутков для Python

from datetimerange import DateTimeRange
time_range = DateTimeRange()
print time_range.is_set()
time_range.set_time_range("2015-03-22T10:00:00+0900", "2015-03-22T10:10:00+0900")
print time_range.is_set()

Релизы

  IPython - 4.1

Интерактивная оболочка для языка программирования Python. Изменения описаны по ссылке https://allmychanges.com/p/python/IPython/#4.1. Скачать можно по ссылке: https://pypi.python.org/pypi/ipython

  simplejson - 3.8.2

Простой, быстрый, расширяемый JSON кодер / декодер для Python. Изменения описаны по ссылке https://allmychanges.com/p/python/simplejson/#3.8.2. Скачать можно по ссылке: http://pypi.python.org/pypi/simplejson/

  django-paypal - 0.3

Поддержка платежной системы PayPal в Django. Изменения описаны по ссылке https://allmychanges.com/p/python/django-paypal/#0.3. Скачать можно по ссылке: https://pypi.python.org/pypi/django-paypal/

  aiohttp - 0.21.1

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