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

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

     20.04.2016       Выпуск 122 (18.04.2016 - 24.04.2016)       Интересные проекты, инструменты, библиотеки

natsort - естественная сортировка

>>> from natsort import natsorted
>>> a = ['a2', 'a9', 'a1', 'a4', 'a10']
>>> natsorted(a)
['a1', 'a2', 'a4', 'a9', 'a10']

     19.04.2016       Выпуск 122 (18.04.2016 - 24.04.2016)       Интересные проекты, инструменты, библиотеки

data_hacks - CLI для анализа данных analysis CLI data analysis

$ cat /tmp/data | histogram.py --percentage --max=1000 --min=0
# NumSamples = 60; Min = 0.00; Max = 1000.00
# 1 value outside of min/max
# Mean = 332.666667; Variance = 471056.055556; SD = 686.335236; Median 191.000000
# each ∎ represents a count of 1
    0.0000 -   100.0000 [    28]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (46.67%)
  100.0000 -   200.0000 [     2]: ∎∎ (3.33%)
  200.0000 -   300.0000 [     2]: ∎∎ (3.33%)
  300.0000 -   400.0000 [     8]: ∎∎∎∎∎∎∎∎ (13.33%)
  400.0000 -   500.0000 [     8]: ∎∎∎∎∎∎∎∎ (13.33%)
  500.0000 -   600.0000 [     7]: ∎∎∎∎∎∎∎ (11.67%)
  600.0000 -   700.0000 [     3]: ∎∎∎ (5.00%)
  700.0000 -   800.0000 [     0]:  (0.00%)
  800.0000 -   900.0000 [     1]: ∎ (1.67%)
  900.0000 -  1000.0000 [     0]:  (0.00%)

     18.04.2016       Выпуск 122 (18.04.2016 - 24.04.2016)       Интересные проекты, инструменты, библиотеки

daemonocle - библиотека для создания Unix демонов daemon Unix supervisord

import sys
import time

import daemonocle

# This is your daemon. It sleeps, and then sleeps again.
def main():
    while True:
        time.sleep(10)

if __name__ == '__main__':
    daemon = daemonocle.Daemon(
        worker=main,
        pidfile='/var/run/daemonocle_example.pid',
    )
    daemon.do_action(sys.argv[1])

     16.04.2016       Выпуск 121 (11.04.2016 - 17.04.2016)       Интересные проекты, инструменты, библиотеки

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

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

Jaspy Screencast

     16.04.2016       Выпуск 121 (11.04.2016 - 17.04.2016)       Интересные проекты, инструменты, библиотеки

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

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

     16.04.2016       Выпуск 121 (11.04.2016 - 17.04.2016)       Интересные проекты, инструменты, библиотеки

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

     15.04.2016       Выпуск 121 (11.04.2016 - 17.04.2016)       Интересные проекты, инструменты, библиотеки

aioriak - Python asyncio client for Riak asyncio Riak

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

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

     15.04.2016       Выпуск 121 (11.04.2016 - 17.04.2016)       Интересные проекты, инструменты, библиотеки

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

     15.04.2016       Выпуск 121 (11.04.2016 - 17.04.2016)       Интересные проекты, инструменты, библиотеки

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

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

     14.04.2016       Выпуск 121 (11.04.2016 - 17.04.2016)       Интересные проекты, инструменты, библиотеки

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)