Собрали в одном месте самые важные ссылки
читайте нас в Twitter
Sophia - встраемая KV-база данных.
Модуль представляет собой своего-рода 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'}
В репозитории вы найдете теорию для обучения модели на играх. Есть даже готовый рабочий код.
>>> 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'}]
Инструмент позволяет сериализовать встроенные типы данных, списки, словари, массивы, функции, классы, модули, встроенные методы и многое другое.
(Список правда большой)
Модуль добавляет возможность организовать pipe's в коде. При этом они будут выглядеть как обычные функции.
Модуль реализован с помощью multiprocessing
Утилита позволяет в автоматическом режиме проверять коммиты с помощью lint
Бот может самостоятельно отслеживать твитты с определенным хэштегом и читать их.
Модуль позволяет подключиться к процессу (по его номеру) и мониторить выходные данные
from pyautocad import Autocad, APoint acad = Autocad() acad.prompt("Hello, Autocad from Python\n") print acad.doc.Name p1 = APoint(0, 0) p2 = APoint(50, 25) for i in range(5): text = acad.model.AddText('Hi %s!' % i, p1, 2.5) acad.model.AddLine(p1, p2) acad.model.AddCircle(p1, 10) p1.y += 10 dp = APoint(10, 0) for text in acad.iter_objects('Text'): print('text: %s at: %s' % (text.TextString, text.InsertionPoint)) text.InsertionPoint = APoint(text.InsertionPoint) + dp for obj in acad.iter_objects(['Circle', 'Line']): print(obj.ObjectName)
Новая поделка от Armin Ronacher
from mrfh import MultiprocessRotatingFileHandler logger = logging.getLogger('my_logger') handler = MultiprocessRotatingFileHandler('my_log.log', maxBytes=2000, backupCount=10) logger.addHandler(handler) logger.debug('Some debug message!')