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

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

     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()

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

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

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

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

sophy - быстрый биндинг для Sophia Database

Sophia - встраемая KV-база данных.

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

Marshmallow - де/сериализация для сложных объектов

Модуль представляет собой своего-рода ORM для построения структуры данных. После создания модели появляется возможность всячески сериализовать данные

from datetime import date
from marshmallow import Schema, fields, pprint

class ArtistSchema(Schema):
    name = fields.Str()

class AlbumSchema(Schema):
    title = fields.Str()
    release_date = fields.Date()
    artist = fields.Nested(ArtistSchema)

bowie = dict(name='David Bowie')
album = dict(artist=bowie, title='Hunky Dory', release_date=date(1971, 12, 17))

schema = AlbumSchema()
result = schema.dump(album)
pprint(result.data, indent=2)
# { 'artist': {'name': 'David Bowie'},
#   'release_date': '1971-12-17',
#   'title': 'Hunky Dory'}

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

DeepLearningVideoGames - deep learning на видео-играх

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

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

schema - валидация данных с помощью Schema

>>> from schema import Schema, And, Use, Optional

>>> schema = Schema([{'name': And(str, len),
...                   'age':  And(Use(int), lambda n: 18 <= n <= 99),
...                   Optional('sex'): And(str, Use(str.lower),
...                                        lambda s: s in ('male', 'female'))}])

>>> data = [{'name': 'Sue', 'age': '28', 'sex': 'FEMALE'},
...         {'name': 'Sam', 'age': '42'},
...         {'name': 'Sacha', 'age': '20', 'sex': 'Male'}]

>>> validated = schema.validate(data)

>>> assert validated == [{'name': 'Sue', 'age': 28, 'sex': 'female'},
...                      {'name': 'Sam', 'age': 42},
...                      {'name': 'Sacha', 'age' : 20, 'sex': 'male'}]

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

dill - модуль для сериализации всех объектов в Python

Инструмент позволяет сериализовать встроенные типы данных, списки, словари, массивы, функции, классы, модули, встроенные методы и многое другое. 

(Список правда большой)

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

joblib - реализация pipeline в Python

Модуль добавляет возможность организовать pipe's в коде. При этом они будут выглядеть как обычные функции.

Модуль реализован с помощью multiprocessing