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

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

     31.12.2015       Выпуск 106 (28.12.2015 - 03.01.2016)       Релизы

aiohttp - 0.20.1

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

     29.12.2015       Выпуск 106 (28.12.2015 - 03.01.2016)       Интересные проекты, инструменты, библиотеки

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

from typeguard import typechecked

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

     29.12.2015       Выпуск 106 (28.12.2015 - 03.01.2016)       Интересные проекты, инструменты, библиотеки

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

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

sample pygogo usage

     28.12.2015       Выпуск 106 (28.12.2015 - 03.01.2016)       Интересные проекты, инструменты, библиотеки

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

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

     29.12.2015       Выпуск 106 (28.12.2015 - 03.01.2016)       Релизы

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

     27.12.2015       Выпуск 105 (21.12.2015 - 27.12.2015)       Интересные проекты, инструменты, библиотеки

programming-talks - удивительные и интересные рассказы о тонкостях программирования

Сборник видео для различных языков (в том числе и Python). 

     25.12.2015       Выпуск 105 (21.12.2015 - 27.12.2015)       Учебные материалы

Python Anti-Patterns

Небольшая книга про Anti-Patterns и плохие практики

     25.12.2015       Выпуск 105 (21.12.2015 - 27.12.2015)       Статьи
     25.12.2015       Выпуск 105 (21.12.2015 - 27.12.2015)       Статьи
     25.12.2015       Выпуск 105 (21.12.2015 - 27.12.2015)       Статьи

Как попасть в deadlock с getaddrinfo() 

Что случится, если запустить этот код?

import os
import socket
import threading


def lookup():
    socket.getaddrinfo('python.org', 80)

t = threading.Thread(target=lookup)
t.start()
if os.fork():
    # Parent waits for child.
    os.wait()
else:
    # Child hangs here.
    socket.getaddrinfo('mongodb.org', 80)