Собрали в одном месте самые важные ссылки
консультируем про IT, Python
Проект - виртульная машина Python для работы из браузера.
Ansible Playbook для настройки Django application. Этот playbook устанавливает и настраиваетDjango application со следующим технологиями: Nginx, Gunicorn, Supervisor, Virtualenv и PostgreSQL
>>> 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
Релиз нового asyncio драйвера для Riak, базирующегося на официальном python клиенте от Basho.
В данный момнет поддерживаются базовые операции с данными чтение\запись\удаление, Riak Datatypes и BucketTypes.
>>> 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
Несколько примеров сгенерированной музыки:
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)
Довольно развитый аналог celery на основе Redis
Планировщик задачи может работать с разными БД, даже с обычной памятью. В качестве event loop может использовать asyncio
Инструмент разрабатывали с учетом дружелюбности к разработчику. Фреймворк работает с любыми объектами в формальном виде
Проект-костыль, который позволяет запустить автосборку статики. В реализации применяется обычный while True цикл.
Интересный проект, который пытается упростить написание софта для Интернета вешей. Работает это чудо на основе websocket и wamp протокола.
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")
from rc import CacheCluster
cache = CacheCluster({
'cache01': {'host': 'redis-host01'},
'cache02': {'host': 'redis-host02'},
'cache03': {'host': 'redis-host03'},
'cache04': {'host': 'redis-host04', 'db': 1},
})
Модуль позволяет настроить порядок исполнения тестов исходя из их названий. Вы можете разделить тесты на unit, интеграционные.