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

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

     19.01.2016       Выпуск 109 (18.01.2016 - 24.01.2016)       Статьи

contextlib — Context Manager Utilities — PyMOTW 3

В contextlib модуль содержит утилиты для работы с контекстом и оператор with

     18.01.2016       Выпуск 109 (18.01.2016 - 24.01.2016)       Интересные проекты, инструменты, библиотеки

Torrelque - асинхронные надежные очереди на основе Tornado и Redis

#!/usr/bin/env python3


import random
import logging

import tornadoredis
from tornado import gen, ioloop
from torrelque import Torrelque


logger = logging.getLogger(__name__)


@gen.coroutine
def produce():
    redis = tornadoredis.Client()
    queue = Torrelque(redis, ioloop.IOLoop.current())
    while True:
        for _ in range(5):
            task = {'value': random.randint(0, 99)}
            logger.debug('Produced task %s', task)
            yield queue.enqueue(task)
        yield gen.sleep(10)


@gen.coroutine
def process(task_data):
    logger.debug('Consmed task %s', task_data)
    yield gen.sleep(1)

@gen.coroutine
def consume():
    redis = tornadoredis.Client()
    queue = Torrelque(redis, ioloop.IOLoop.current())
    while True:
        task_id, task_data = yield queue.dequeue()
        if not task_id:
            continue
        try:
            yield process(task_data)
            yield queue.release(task_id)
        except Exception:
            logger.exception('Job processing has failed')
            queue.requeue(task_id, delay = 30)

@gen.coroutine
def main():
    for _ in range(4):
        ioloop.IOLoop.current().spawn_callback(consume)

    yield produce()


if __name__ == '__main__':
    logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s %(message)s')
    ioloop.IOLoop.instance().run_sync(lambda: main())

     18.01.2016       Выпуск 109 (18.01.2016 - 24.01.2016)       Статьи

Несколько камер на Raspberry Pi с OpenCV

Автор статьи продемострирует, как подключить несколько камер к вашей Raspberry Pi...и получить доступ ко всем из них, используя один скрипт на Python. 

     18.01.2016       Выпуск 109 (18.01.2016 - 24.01.2016)       Статьи

Разработка и разветывание Cookiecutter-Django на Fedora

Cookiecutter - это шаблоны проектов. В статье рассмотрен шаблон Django проекта

     18.01.2016       Выпуск 109 (18.01.2016 - 24.01.2016)       Интересные проекты, инструменты, библиотеки

tcconfig - утилита для контроля трафика

Утилита позволяет установить программную задержку, процент потерь

     19.01.2016       Выпуск 109 (18.01.2016 - 24.01.2016)       Релизы

django-taggit - 0.18.0

Приложение для поддержки тегов в Django. Приложение будет крайне полезно на сайте с новостями, которые необходимо помечать тегами, так же можно легко реализовать сортировку по тегам.. Изменения описаны по ссылке https://allmychanges.com/p/python/django-taggit/#0.18.0. Скачать можно по ссылке: https://pypi.python.org/pypi/django-taggit/

     19.01.2016       Выпуск 109 (18.01.2016 - 24.01.2016)       Релизы

robobrowser - 0.5.3

Простая библиотека для просмотра веб-страниц без веб-браузера.. Изменения описаны по ссылке https://allmychanges.com/p/python/robobrowser/#0.5.3. Скачать можно по ссылке: http://badge.fury.io/py/robobrowser

     18.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Статьи

История перезда Python на Github

Брет Кеннон расказал о том что стояло за решением разработчиков CPython перевести его разработку на Github

     17.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Статьи

NLP: "Как делать вещи со словами и счетчиками" на Python

Статья описывает основы NLP(Natural Language Processing). Например, Bag of words

     16.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Статьи

Изолированная мемоизация (@memoize)

Для тяжеловесных функций, которые возвращают одинаковые значения на одинаковые аргументы стоит применять кеширование.

Однако, в простом случае кеш мемоизации глобален. В данной статье рассмотрен способ изоляции кешей.