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

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Используем JSON Schema для валидации JSON данных

Статья описывает использование JSON Schema для валидации JSON данных на Python

Аналогичный подход можно применять для валидации XML данных.

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Релизы

cffi - 1.3.1

Интерфейс для вызова C-кода. Изменения описаны по ссылке https://allmychanges.com/p/python/cffi/#1.3.1. Скачать можно по ссылке: http://pypi.python.org/pypi/cffi/

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Релизы

virtualenv - 0.8

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

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Релизы

kombu - 3.0.27

Фреймворк для работы с AMQP. Изменения описаны по ссылке https://allmychanges.com/p/python/kombu/#3.0.27. Скачать можно по ссылке: http://pypi.python.org/pypi/kombu/

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Релизы

redis - 2.10.5

Python клиент для Redis. Изменения описаны по ссылке https://allmychanges.com/p/python/redis/#2.10.5. Скачать можно по ссылке: http://pypi.python.org/pypi/redis/

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Релизы

django-extensions - 1.5.8

Набор пользовательских расширений для Django-проектов. Изменения описаны по ссылке https://allmychanges.com/p/python/django-extensions/#1.5.8. Скачать можно по ссылке: https://pypi.python.org/pypi/django-extensions

     06.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Интересные проекты, инструменты, библиотеки

cinje - шаблон движка DSL

Движок позволяет очень просто писать свои DSL

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи
     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Интересные проекты, инструменты, библиотеки

Confit - система конфигурации на YAML

Confit - предоставляет общий API для конфигов. Конфиги можно комбинировать из нескольких файлов. 

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Таинство стандартной библиотеки: asyncio в Python. Как устроено и зачем нужно?

Видео со свежего Moscow Python митапа. В python 3.4 появился asyncio. До сих пор многие разработчики не знают, что это такое, как реализуется асинхронность в Python и в чем её сильные и слабые места. Повторим пройденное и заглянем под капот.

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Python на службе народа: оповещения в Linux

Оповещения - это зло для продуктивности, но без них тяжело. Сервер упал - как узнать об этом мгновенно? СМС, письмо на email, оповещение на рабочем столе.

К сожалению, без Qt, Wx и других фреймворков кроссплатформенные оповещения не сделать. Поэтому рассмотрим только Linux. Для linux есть библиотека libnotify и обязка для нее python-notify

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Видео
     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

Анализ данных: волны для серфинга на восточном побережье Ирландии

Статья рассказывает применение анализа данных для вычисления удачных дней для сервфинга

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

Emacs - лучший Python редактор?

Статья описывает применение Emacs в качестве редактора для Python

     04.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Интересные проекты, инструменты, библиотеки

wavio - чтение, запись 24-битный WAV файлов с помощью numpy arrays

import numpy as np
import wavio

rate = 22050  # samples per second
T = 3         # sample duration (seconds)
f = 440.0     # sound frequency (Hz)
t = np.linspace(0, T, T*rate, endpoint=False)
x = np.sin(2*np.pi * f * t)
wavio.write("sine24.wav", x, rate, sampwidth=3)

     04.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

Если бы я проектировал механизм импорта с нуля

Статья описывает соображения про систему импорта. 

Автор рассматривает возможность избавиться глобального состояния, расширение возможностей импорта и другие идеи.

     04.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Интересные проекты, инструменты, библиотеки

django-mongolog - логгер в mongo

LOGGING = {
    'handler': {
        'mongolog': {
            'level': 'WARN',
            'class': 'mongolog.MongoLogHandler',
            'connection': 'mongodb://localhost:27017/'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console', 'mongolog'],
            'level': 'DEBUG',
            'propagate': True
        },
    },
}

     04.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

История одной оптимизации: передача и обработка результатов боя

Сегодня я расскажу вам о небольшой части большого проекта — World of Tanks. Многие из вас, наверное, знают World of Tanks со стороны пользователя, я же предлагаю взглянуть на него с точки зрения разработчика. В этой статье речь пойдет об эволюции одного из технических решений проекта, а именно — передаче и обработке результатов боя.