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

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

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

Linux в кармане — на службе у фотографа

Это рассказ, о том, как мне удалось сделать для себя инструмент, который с минимальным моим участием и минимальным дополнительным весом в рюкзаке, помогает сделать красивые слайдшоу. И конечно же рассказ о python, ffmpeg и linux на android.

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

django-vimeo - приложение для вставки vimeo видео

{% load django_vimeo_tags %}

The video tag:
{% vimeo instance.video width=600 as video %}
   <video width="600" loop="loop" autoplay="autoplay" poster="{{ video.optimal_picture.link }}">
       <source src="{{ video.optimal_file.link_secure }}" type='{{ video.optimal_file.type }}'>
       {% trans 'tag "video" not supported by your browser' %}
       <a href="{{ video.optimal_download.link }}">{% trans 'download video' %}</a>.
   </video>
{% endvimeo %}

Or embed shortcut:
{% vimeo instance.video width=600 %}

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

FlyElephant как инструмент для вычислений на C++, R, Python или Octave

FlyElephant — это платформа, которая предоставляет ученым готовую вычислительную инфраструктуру для проведения расчетов, автоматизирует рутинные задачи и позволяет сосредоточиться на основных вопросах исследований. 

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

Зачем и как мы бэкапим github

Вообще лирическое вступление было навеяно вполне конкретной историей про сломанный гитхаб. Сделанная на заре одного из проектов синхронизация домашнего репо в гитхаб решила проблему переезда. Потом про костыль забыли. Древнее зло уснуло и терпеливо ждало своего часа. В один прекрасный день скайнет новый сотрудник решил привести в порядок тот самый домашний репозиторий. И самым популярным вопросом среди программистов в тот день было «коллега, а вы не видели мою ветку 0022? ну такая, с багфиксами». Руководство опс-тим было спокойно как никогда: гит — это распределенная система, версия кода хранится на персональном компьютере каждого разработчика. Давайте уже как-нибудь разберитесь между собой и не отвлекайте нас от сборки наших ядер и тюнингов сетевых стеков.

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

pickleshare - небольшая 'shelve'-like БД с поддержкой параллельных запросов

from pickleshare import *
db = PickleShareDB('~/testpickleshare')
db.clear()
print "Should be empty:",db.items()
db['hello'] = 15
db['aku ankka'] = [1,2,313]
db['paths/are/ok/key'] = [1,(5,46)]
print db.keys()

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

zini - парсер INI-файлов с поддержкой схем и типов

Библиотека поддерживает несколько базовый типов данных. Ниша библиотеки - хранение сложных структур данных

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

streamexpect - кроссплатформенная библиотека для потоков и сокетов

import serial
import streamexpect

# timeout=0 is essential, as streams are required to be non-blocking
ser = serial.Serial('COM1', baudrate=115200, timeout=0)

with streamexpect.wrap(ser) as stream:
  stream.write('\r\nuname -a\r\n')
  match = stream.expect_bytes('Linux', timeout=1.0)
  print(u'Found Linux at index {}'.format(match.start))

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

numpy - 1.12.0

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

     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 проекта