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

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


Новый материал в ленте

Python Дайджест. Выпуск 121

Django Channels

(11.04.2016 - 17.04.2016)

поделиться выпуском 
pythondigest.ru: Выпуск 121

Новости

  Первый релиз Python 3.6. Что нового? PEP

Статья описывает отличия Python 3.5 и Python 3.6

Статьи

  PyCharm в глубь: скрикаст про тестирование video PyCharm

Ранее в этом году мы начали записывать скринкасты на базовые возможности PyCharm: установка, UI, запуск Python кода, debugging и другое.. Мы знали, что к этому моменту некоторые темы требуют более тщательного рассмотрения....

  Что такое грамматическая эволюция + легкая реализация

Совсем недавно я написал статью, в которой без объяснений показал то, на что способен метод грамматической эволюции. Я полностью, согласен, что так делать нельзя, но как хотелось показать результаты интересного метода. Я думал «что будет лучше: перевести первоисточник или дать свое собственное объяснение». Лень взяла верх.

Если кому-то интересны эволюционные методы и задача символьной регрессии(и не только), то прошу к прочтению.

  Используем Anaconda с PySpark для Distributed Language Processing на Hadoop Cluster analysis Anaconda PySpark Hadoop

Статья подробно описывает использование анаконды для обработки текста на кластере.

  Django Channels: работа с WebSocket и не только Django channels celery websocket

Небольшое описание работы с пакетом Channels для работы с WebSocket и в качестве очереди задач

  Плагины в кармане или перочинный ножик в программе

В этой статье речь пойдет о плагинах — программных модулях, которые можно легко установить в основное приложение для расширения его функционала. Точнее, не о самих плагинах, а о том, как реализовать в своей программе систему взаимодействия "Приложение — Плагин".

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

 

Видео

  MicroPython на Feather ESP8266 с Tony D micropython

В видео вы найдете информацию о проекте MicroPython, и как его запустить на ESP плате.

Учебные материалы

  Raspberry Pi Internet Radio с Flask raspberry pi Flask

Цель руководства - показать читателю, как можно построить радио станцию, которая может получать сигнал из Интернета. Будет написан простой веб-интерфейс

Интересные проекты, инструменты, библиотеки

  useful_collections - реализиация ImmutableDict и LockableDict

>>> from useful_collections.dict import ImmutableDict
>>> my_immutable_dict = ImmutableDict(key='immutable val')

# accessing dict item
>>> my_immutable_dict['key']
'immutable val'

# accessing dict item as attribute
>>> my_immutable_dict.key
'immutable val'

# trying to override dict value
>>> my_immutable_dict['key'] = 'new value'
Traceback (most recent call last):
  ...
useful_collections.dict.ForbiddenSetItem: __setitem__ method is forbidden for ImmutableDict objects

>>> my_immutable_dict.key = 'try again'
Traceback (most recent call last):
  ...
useful_collections.dict.ForbiddenSetAttr: __setattr__ method is forbidden for ImmutableDict objects

  rc - Redis cache cluster system Redis cache cluster

from rc import CacheCluster

cache = CacheCluster({
    'cache01': {'host': 'redis-host01'},
    'cache02': {'host': 'redis-host02'},
    'cache03': {'host': 'redis-host03'},
    'cache04': {'host': 'redis-host04', 'db': 1},
})

  Dependency Injector — Python dependency injection framework dependency injection DI

Инструмент разрабатывали с учетом дружелюбности к разработчику. Фреймворк работает с любыми объектами в формальном виде

  django-ansible-setup - deploy Django с помощью Ansible Django Ansible deploy

Ansible Playbook для настройки Django application. Этот playbook устанавливает и настраиваетDjango application со следующим технологиями: Nginx, Gunicorn, Supervisor, Virtualenv и PostgreSQL

  bottle-pymysql - MySQL для Bottle bottle mysql

import bottle
import bottle_pymysql

app = bottle.Bottle()
# dbhost is optional, default is localhost
plugin = bottle_pymysql.Plugin(dbuser='user', dbpass='pass', dbname='some_db')
app.install(plugin)

@app.route('/show/<item>')
def show(item, pymydb):
    pymydb.execute('SELECT * from items where name="%s"', (item,))
    row = pymydb.fetchone()
    if row:
        return template('showitem', page=row)
    return HTTPError(404, "Page not found")

  handwritingio - клиент для сервиса Handwriting.io (сервис рукописных сообщений) API

import handwritingio
hwio = handwritingio.Client('KEY', 'SECRET')
png = hwio.render_png({
  'handwriting_id': '2D5S46A80003', # found in our catalog or by listing handwritings
  'text': 'Handwriting with Python!',
  'height': 'auto',
})
with open('handwriting.png', 'wb') as f:
  f.write(png)

  tasktiger - очередь задач (использует Redis) task queue task Redis

Довольно развитый аналог celery на основе Redis

  Autobahn|Python - real-time framework для Web, Mobile & Internet of Things IoT framework

Интересный проект, который пытается упростить написание софта для Интернета вешей. Работает это чудо на основе websocket и wamp протокола.

  django-static-autocollect - запускаем collectstatic автоматически Django static

Проект-костыль, который позволяет запустить автосборку статики. В реализации применяется обычный while True цикл. 

  Advanced Python Scheduler (APScheduler) - планировщик задач asyncio sheduler

Планировщик задачи может работать с разными БД, даже с обычной памятью. В качестве event loop может использовать asyncio

  deepjazz - генерация jazz музыки с помощью Keras & Theano Deep Learning Keras Theano

Несколько примеров сгенерированной музыки:

  aioriak - Python asyncio client for Riak asyncio Riak

Релиз нового asyncio драйвера для Riak, базирующегося на официальном python клиенте от Basho.

В данный момнет поддерживаются базовые операции с данными чтение\запись\удаление, Riak Datatypes и BucketTypes.

  Jaspy – VM Python'а написанная на JavaScript Python VM Javascript

Проект - виртульная машина Python для работы из браузера. 

Jaspy Screencast

  Rsonlite – легковесная версия rson

>>> jsonstr2 = '''
... {"menu": {
...     "id": "file",
...     "value": "File",
...     "popup": {
...         "menuitem": [
...         {"value": "New", "onclick": "CreateNewDoc()"},
...         {"value": "Open", "onclick": "OpenDoc()"},
...         {"value": "Close", "onclick": "CloseDoc()"}
...         ]
...     }
... }}
... '''
>>>
>>> rsonstr2 = '''
...     menu
...         id = file
...         value = File
...         popup
...             menuitem
...                 value = New
...                 onclick = CreateNewDoc()
...                 value = Open
...                 onclick = OpenDoc()
...                 value = Close
...                 onclick = CloseDoc()
... '''
>>>
>>> jsondata2 = eval(jsonstr2)
>>> rsondata2 = rsonlite.simpleparse(rsonstr2)
>>> jsondata2 == rsondata2
True

Релизы

  MicroPython 1.7 hardware micropython

Новый кросс-компилятор и улучшение поддердки ESP8266