Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE
>>> 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
Новый кросс-компилятор и улучшение поддердки ESP8266
Несколько примеров сгенерированной музыки:
Цель руководства - показать читателю, как можно построить радио станцию, которая может получать сигнал из Интернета. Будет написан простой веб-интерфейс
Статья описывает отличия Python 3.5 и Python 3.6
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
В видео вы найдете информацию о проекте MicroPython, и как его запустить на ESP плате.
Планировщик задачи может работать с разными БД, даже с обычной памятью. В качестве 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")