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

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

     01.02.2016       Выпуск 111 (01.02.2016 - 07.02.2016)       Статьи

Сериализация объектов в Python (schematics + ciso8601)

Статья описывает способы ускорить сериализацию объектов - уменьшить вариативность данных, убрать валидацию, использовать С библиотеки.

     31.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Интересные проекты, инструменты, библиотеки

dtags - утилита для сохранения путей до git репозиториев в виде тегов

~$ tag ~/frontend @frontend
~$ tag ~/backend @backend
~$ tag ~/frontend ~/backend @work
~$ tag ~/db @vm
~$ tag ~/web @vm

# Or equivalently
~$ tag ~/frontend @frontend @work ~/backend @backend @work ~/db ~/web @vm

# All tag names must begin with the @ symbol
# Execute 'git fetch origin' in all directories tagged @project
~$ run @project git fetch origin

# Execute 'git status -sb' in all directories tagged @frontend and @backend
~$ run @frontend @backend git status -sb

# Execute 'vagrant status' in all directories tagged @vms
~$ run @vms vagrant status

# Directory paths can be specified along with tags
~$ run @backend ~/scripts ~/redis ls -la

# The command can be executed in parallel as long as it doesn't wait for input
~$ run -p @backend 'sleep 5 && echo done'
~$ run -p @project git pull
~$ run -p @vms vagrant up

     31.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Релизы

Pyramid 1.6

Вышла новая версия веб фреймворка Pyramid. Из особенностей можно отметить поддержку Cache busting.

     31.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Интересные проекты, инструменты, библиотеки

Signaller - реализация механизма "сигналы-слоты" с поддержкой asyncio

from signaller import Signal

logging.basicConfig(level=logging.DEBUG)

def slot(arg):
    print('slot:', arg)

# Creating signals (you can set signal name, but it is not required,
# signals can be anonymous):
sig_test = Signal('sig_test')

# Connecting signals to slots (uses weak references by default,
# but you can force strong references by specifying weak=False):
sig_test.connect(slot)
sig_test.connect(lambda arg: print('slot_lambda:', arg), weak=False)

# You can also use decorators for connecting signals to slots:
@sig_test.connect
def slot2(arg):
    print('slot2:', arg)

# And weak=False can be specified when using decorators too:
@sig_test.connect(weak=False)
def slot3(arg):
    print('slot3:', arg)

# Slots are automatically disconnected from signals
# when using weak references:
del slot2

# Or you can disconnect slots manually:
sig_test.disconnect(slot3)

# Emitting signals (you can send positional and keyword
# arguments to connected slots):
sig_test.emit('Hello world!')

     31.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Интересные проекты, инструменты, библиотеки

mattermost_bot - простой бот для MatterMost

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

Мы консультируем по написанию ботов - обращайтесь https://t.me/axsapronov. Подскажем как разработать бота наиболее быстро

     30.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Интересные проекты, инструменты, библиотеки

pydocstyle - скрипт проверки PEP 257 в коде (проверяет стиль форматирования docstring)

$ pep257 test.py
test.py:18 in private nested class `meta`:
        D101: Docstring missing
test.py:22 in public method `method`:
        D102: Docstring missing
...

     29.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Интересные проекты, инструменты, библиотеки

simpletcp - небольшой не-блокирующий TCP сервер на Python3

В этом репозитории вы найдете пример TCP сервера на Python. Код изобилует комментариями

     30.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Релизы

django-htmlmin - 0.9.0

Минификатор HTML для уменьшения веса страницы, повышения быстроты загрузки сайта и уменьшение трафика. Минификатор полноценно поддерживает HTML 5, поддерживается работа из консоли для минификации статических сайтов. Изменения описаны по ссылке https://allmychanges.com/p/python/django-htmlmin/#0.9.0. Скачать можно по ссылке: https://pypi.python.org/pypi/django-htmlmin/

     29.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Интересные проекты, инструменты, библиотеки

pytest_click - Py.test плагин для модуля Click (модуль для создания CLI)

import click


def test_cli(cli_runner):

    @click.command()
    @click.argument('name')
    def hello(name):
        click.echo('Hello %s!' % name)

    result = cli_runner.invoke(hello, ['Peter'])
    assert result.exit_code == 0
    assert result.output == 'Hello Peter!\n'

     29.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Статьи

Python компилятор Nuitka, прогресс за 2015

Статья описывает прогресс в развитии Nuitka за 2015 год. Описаны и планы на будущее, среди самого интересного - план реализовать вывод типов.

     29.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Статьи

How-to: Объектно-ориентированная система бэктестинга на Python

Известный британский трейдер и разработчик Майк Халлс-Мур написал в своем блоге статью о том, как создать объектно-ориентированную систему бэктестинга финансовых стратегий торговли на бирже. Мы представляем вашему вниманию главные мысли этого материала.

     30.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Релизы

virtualenv - 14.0.3

Инструмент создания виртуального рабочего окружения. Изменения описаны по ссылке https://allmychanges.com/p/python/virtualenv/#14.0.3. Скачать можно по ссылке: http://pypi.python.org/pypi/virtualenv/

     30.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Новости

Патч может ускорить CPython на 5-10%

По ссылке вы найдете письмо из рассылки, который описывает способ ускорения Python на 5-10%.

     29.01.2016       Выпуск 110 (25.01.2016 - 31.01.2016)       Статьи