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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python


Новый материал в ленте
  tornado - 6.4.2

Масштабируемый, не блокирующий web-сервер. Скачать можно по ссылке: https://pypi.python.org/pypi/tornado/


Python Дайджест. Выпуск 107

(04.01.2016 - 10.01.2016)

поделиться выпуском 
pythondigest.ru: Выпуск 107

Статьи

  Создаем чат на websocket'ах

Статья описывает создание chat roulette на websocket'ах

  Подсчет ссылок в Python

Статья описывает макросы Py_INCREF(x) и Py_DECREF(x)

  Методы форматирования строк в Python

Статья описывает существующие методы форматирования строк: %, format, f

  Решение головоломки Галакуб на Питоне

На новый год купил племяннику головоломку Галакуб. Задача собрать из разных деталей куб размером 4х4х4. Суммарный объём деталей, как раз, 4х4х4. Прежде, чем дарить надо было собрать головоломку. Красивое симметричное решение нашлось достаточно быстро. Но стало интересно единственное это решение или нет. Интуиция подсказывала, что единственное, но хотелось проверить.

Я решил по-быстрому запилить скрипт для перебора всех вариантов. В идеале нужно было успеть до новогодней речи Путина. Ситуация усугублялась тем, что код писался на Макбуке моих родителей. Поставить на него какие-то библиотеки — это задача покруче, чем написать саму программу.

  Незаметные достоинства регулярных выражений в Python

В стандартной библиотеке Python есть немало кошмарных модулей, но этого нельзя сказать о модуле re. Несмотря на его преклонный возраст и многолетнее отсутствие обновлений, я считаю этот модуль одним из лучших среди всех динамических языков.

Python — один из немногих динамических языков, в которых отсутствует встроенная поддержка регулярных выражений, но это компенсируется проработанной базовой системой (с точки зрения API). В то же время он весьма причудлив. К примеру, поведение написанного на Python парсера может вас удивить. Если вы попытаетесь в ходе импорта профилировать Python, то, скорее всего, 90% времени вы проведёте в работе с модулем re.

  Автоматический запуск Libre/OpenOffice в режиме прослушивания из Python

Libre/Open Office предоставляют возможность работы с офисом через UNO API. Для того, чтобы можно было обратиться к офису необходимо запустить его в режиме прослушивания. Например: soffice --accept="socket,host=localhost,port=2002;urp;" Данный подход вполне логичен и понятен с точки зрения разработчиков офиса, но несет ряд неудобств. В частности, нужно самостоятельно запускать Libre/Open Office в режиме прослушивания. Лично мне не понятно, почему разработчики поленились и не предоставили функции запуска офиса. Ну да ладно, было бы все сделано, не нужны были бы программисты. Посему будем решать задачу своими силами. 

  PyThor- взаимодействуем с R из Python

Статья описывает проект PyThor, который позволяет использовать пакеты R в Python

  Разбираемся с cPython - часть 2

В ппрошлом посте мы пропатчили Python. Заменили представление int'а с 10-ричного на 16-ричное. В этом посте мы пойдем дальше и попатчим Python еще. 

Интересные проекты, инструменты, библиотеки

  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'

  webrecorder - веб-архивирование на Python

Платформа для бэкапа и просмотра web-сайтов.

  adapt - Adapt Intent Parser. Парсим естественный язык

Adapt Intent Parser позволяет переводить человеко-понятный текст в структуры данных. 

  Abrvalg - Python-like язык написанный на Python

func map(arr, fn):
    r = []
    for val in arr:
        r = r + [fn(val)]
    r

func factorial(n):
    if n <= 1:
        1
    else:
        n * factorial(n - 1)

print(map(1...10, factorial))

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

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

  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

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

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

Релизы

  django-two-factor-auth - 1.3.0

Полноценная двухфакторная аутентификации для Django.. Изменения описаны по ссылке https://allmychanges.com/p/python/django-two-factor-auth/#1.3.0. Скачать можно по ссылке: https://pypi.python.org/pypi/django-two-factor-auth/

  numpy - 1.10.4

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

  django-filter - 0.12.0

Django-приложение для гибкой фильтрации объектов модели (querysets). Изменения описаны по ссылке https://allmychanges.com/p/python/django-filter/#0.12.0. Скачать можно по ссылке: https://pypi.python.org/pypi/django-filter

  pex - 1.1.2

Библиотека и утилита для генерации .pex (Python EXecutable) файлов. Изменения описаны по ссылке https://allmychanges.com/p/python/pex/#1.1.2. Скачать можно по ссылке: https://pypi.python.org/pypi/pex

  aiohttp - 0.20.2

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