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

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

     13.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Интересные проекты, инструменты, библиотеки

django-classic-theme - классическая тема (из django 1.8-)

Модуль содержит набор css/js, которые возвращают старую админку для django 1.9+

     13.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Интересные проекты, инструменты, библиотеки

Собственный pypi сервер

Pypi это бекенд для pip. Сервер, позволяет проксировать запросы с pypi.python.org, а также заливать собственные с авторизацией.

     11.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Интересные проекты, инструменты, библиотеки

beaker-es-plot - Рисование графиков из ElasticSearch

Позволяет автоматически вытаскивать и группировать данные метрик и агрегаций из ElasticSearch, выводит данные в формате JSON Plot API для отображения графиков в Beaker Notebook.

     11.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Интересные проекты, инструменты, библиотеки

python-sinklog - передаем логи через интернет

Модуль состоит из CLI программы и сервера, который умеет принимать/отдавать логи. 

Запуская лог в своей программе, вы передаете данные на сервер, и одновременно с этим можете начать читать их с другого источника.

     11.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Интересные проекты, инструменты, библиотеки

django-eventtools - модуль для создания и отображения событий на сайте

Пакет добавляет модели события(Event) и времени появления(Occurrence) с помощью которых можно создавать повторяющиеся/одноразовые события, а затем отображать их на сайте.

     11.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Интересные проекты, инструменты, библиотеки

mwclient - MediaWiki API client

# Initialize Site object
import mwclient
site = mwclient.Site('commons.wikimedia.org')
site.login(username, password)

# Edit page
page = site.Pages['Commons:Sandbox']
text = page.text()
print 'Text in sandbox:', text.encode('utf-8')
page.save(text + u'\nExtra data', summary = 'Test edit')

# Printing imageusage
image = site.Images['Example.jpg']
print 'Image', image.name.encode('utf-8'), 'usage:'
for page in image.imageusage():
        print 'Used:', page.name.encode('utf-8'), '; namespace', page.namespace
        print 'Image info:', image.imageinfo

# Uploading a file
site.upload(open('file.jpg'), 'destination.jpg', 'Image description')

# Listing all categories (don't do this in reality)
for category in site.allcategories():
        print category

     11.01.2016       Выпуск 108 (11.01.2016 - 17.01.2016)       Интересные проекты, инструменты, библиотеки

pddb - PandasDatabase - база данных поверх Pandas

pddb - база данных для небольших проектов, которая поддерживает CRUDL операции. 

С помощью bottle добавляется REST API

     09.01.2016       Выпуск 107 (04.01.2016 - 10.01.2016)       Интересные проекты, инструменты, библиотеки

cython-construct - декларативно описываем работу с бинарными данными

Модуль для Cython, который позволяет упростить работу с бинарными данными

>>> from construct import *
>>>
>>> PascalString = Struct("PascalString",
...     UBInt8("length"),
...     Bytes("data", lambda ctx: ctx.length),
... )
>>>
>>> PascalString.parse("\x05helloXXX")
Container({'length': 5, 'data': 'hello'})
>>> PascalString.build(Container(length = 6, data = "foobar"))
'\x06foobar'

     08.01.2016       Выпуск 107 (04.01.2016 - 10.01.2016)       Интересные проекты, инструменты, библиотеки

udemy-dl2 - скачиваем лекции с Udemy

Утилита позволяет скачать лекции с сервиса Udemy

     08.01.2016       Выпуск 107 (04.01.2016 - 10.01.2016)       Интересные проекты, инструменты, библиотеки

VoiceCoding - программируем на Python _голосом_

Программа позволяет писать код с помощью голоса

     07.01.2016       Выпуск 107 (04.01.2016 - 10.01.2016)       Интересные проекты, инструменты, библиотеки

pygeohash - реализация geohashes для Python

import pygeohash as pgh

pgh.encode(42.6, -5.6)
# >>> 'ezs42e44yx96'

pgh.encode(42.6, -5.6, precision=5)
# >>> 'ezs42'

pgh.decode('ezs42')
# >>> ('42.6', '-5.6')

pgh.geohash_approximate_distance('shi3u', 'sh83n')
# >>> 625441