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

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


Новый материал в ленте
  aiohttp - 3.11.7

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


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

Медицинские утилиты, Javascript в Python

(22.02.2016 - 28.02.2016)

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

Статьи

  Собственный модуль settings

Этот модуль родился в результате переосмысления (или недопонимания) мной вот этого пространного документа: Splitting up the settings file, размещённого на официальном сайте Django.

  Фоновое выполнение ячеек в IPython Notebook

Я много работаю с данными, поэтому практически все процессы у меня завязаны на Jupyter (IPython Notebook). Эта среда прекрасна и я её большой фанат. По сути, Jupyter — это обычная питоновая консоль и весь код там выполняется последовательно. Но иногда возникает желание запустить вычисления в ячейке и, не дожидаясь пока они закончатся, продолжить работу. Например, нужно скачать 1000 урлов и достать у них заголовки страниц. Хорошо бы запустить процесс скачивания и сразу начать отлаживать код для выделения заголовков.

  Мост на Go для JavaScript и Python

Соединяем JavaScript и Python

  fractions — Rational Numbers — PyMOTW 3

Модуль реализует численные операции для рациональных чисел

  Как я переизобрел словари в Python

В нашем Django-приложении необходимо было разработать отчет (расчет) бонусов.
Отчет должен иметь вложенную структуру с подведением итогов по пользователям, подразделениям и по всей компании. 

  Изучаем Python для Data Science

Автор делиться набором материалов для изучения Data Science через питон

  Web файловый менеджер Sprut.IO в OpenSource

В Бегете мы долго и успешно занимаемся виртуальным хостингом, используем много OpenSource-решений, и теперь настало время поделиться с сообществом нашей разработкой: файловым менеджером Sprut.IO, который мы разрабатывали для наших пользователей и который используется у нас в панели управления. Приглашаем всех желающих присоединиться к его разработке. О том, как он разрабатывался и почему нас не устроили существующие аналоги, какие костыли технологии мы использовали и кому он может пригодиться, расскажем в этой статье. 

Сайт проекта:https://sprut.io
Демо доступно по ссылке: https://demo.sprut.io:9443
Исходный код: https://github.com/LTD-Beget/sprutio

  Хуки — это просто (часть 3)

Как-то так получилось, что я написал на Хабре уже несколько статей о библиотеках для хуков. Первая была об общих принципах и реализации на базе Detours, вторая — о более дешевой (но не менее функциональной) библиотеке madCodeHook. Сегодня я расскажу об ещё одном варианте — библиотеке Deviare от компании Nektra. «Ещё одна точно такая же библиотека для хуков?» — спросите вы. «Такая же, да не такая» — отвечу я. У Deviare есть несколько особенностей, отличающих её и от Detours и от madCodeHook и делающей её в некоторых случаях намного более полезной.

  Импортируем Docker в Python и что-нибудь запускаем

Статья описывает как из Python кода обратиться в docker

Видео

  Кодирование/Декодирование космоса: Python приложения в астрофизике

Сегодня Python используется почти повсеместно в астрофизике: от моделирования изображения звезд и галактик до статического анализа данных. В докладе я дам общий обзор библиотек. А затем рассмотрю конкретный пример применения. Будет интересно - про темную материю, беспилотные аппараты для калибровки радиотелескопов.

Учебные материалы

  Как установить Django + Postgres + Nginx + Gunicorn на Ubuntu 14.04.

Подробная инструкция по установке и настройке Django + Postgres + Nginx + Gunicorn на «боевом» сервере с Ubuntu 14.04. в основе данной статьи лежит существенно изменённое и дополненное руководство «How To Set Up Django with Postgres, Nginx, and Gunicorn on Ubuntu 14.04» с сайта https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-14-04

Колонка автора

  Запустили tests.pynsk.ru

Однажды возникло два желания:

  • поиграться с возможностями Telegram
  • попробовать написать не скучные тесты по Python

Мы соединили два желания и начали писать. Проект двигался не спешно, шаг за шагом, строчка за строчкой, вопрос за вопросом. И вот, мы готовы представить первую версию (о багах пишите в комментариях или в личку).

Tests.pynsk.ru - это платформа для тестирования на основе telegram бота.

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

  categorical_encoding - набор различных кодеров для sklearn

import category_encoders as ce

encoder = ce.BackwardDifferenceEncoder(cols=[...])
encoder = ce.BinaryEncoder(cols=[...])
encoder = ce.HashingEncoder(cols=[...])
encoder = ce.HelmertEncoder(cols=[...])
encoder = ce.OneHotEncoder(cols=[...])
encoder = ce.OrdinalEncoder(cols=[...])
encoder = ce.SumEncoder(cols=[...])
encoder = ce.PolynomialEncoder(cols=[...])

  django-issueinspector - отслеживаем состояние запросов (issues) в проектах на GitHub.

Сегодня выкладываю небольшое приложение для Django — django-issueinspector, позволяющее отслеживать состояние запросов (issues) в ваших проектах на GitHub. 

Оно может оказаться полезным тем, у кого много проектов, в которых периодически регистрируются запросы. Запросы эти проходят различные стадии и уместить все их в голове иногда бывает сложно. Данное приложение инспектирует ваши репозитории, находит в них открытые запросы, и, ориентируясь по комментариям, подсказывает вам, что можно предпринять, при этом для удобства выводит последний комментарий. Так, например, можно выявлять «зависшие» запросы — те, на которые забыли ответить вы, либо их автор.

  bytecode - модуль для модификации байткода

from bytecode import Instr, Bytecode

bytecode = Bytecode()
bytecode.extend([Instr("LOAD_NAME", 'print'),
                 Instr("LOAD_CONST", 'Hello World!'),
                 Instr("CALL_FUNCTION", 1),
                 Instr("POP_TOP"),
                 Instr("LOAD_CONST", None),
                 Instr("RETURN_VALUE")])
code = bytecode.to_code()
exec(code)
Hello World!

  pygments-mathematica - подсветка кода Mathematica/Wolfram Language на основе Pygments

(* An example highlighting the features of
   this Pygments plugin for Mathematica *)
lissajous::usage = "An example Lissajous curve.\n" <>
                   "Definition: f(t) = (sin(3t + π/2), sin(t))"
lissajous = {Sin[2^^11 # + 0.005`10 * 1*^2 * Pi], Sin[#]} &;

With[{max = 2 Pi, min = 0},
    ParametricPlot[lissajous[t], {t, min, max}] /. x_Line :> {Dashed, x}
]

  django-server-metrics - отслеживаем потребление ресурсов Django приложения

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

  workdir - изолированный временный файл

import workdir
import shutil
workdir.options.path = '~/.myfilecache'
with workdir.as_cwd():
    download_remote_archive('somefile')
    unpack_archive('somefile', 'somedir')
shutil.copy(workdir.path_to_file('somedir', 'unpackedfilefromarchive'),
            os.path.join('otherdir', 'unpackedfilefromarchive'))

  ProxyBroker - асинхронный граббер/чекер прокси [HTTP(S) & SOCKS]

Ищет по ~50 источникам, чекает на анонимность, проверяет поддерживаемые протоколы и страну нахождения прокси. В среднем находит ~7k HTTP(S) и ~500 SOCKS живых прокси.

import asyncio
from proxybroker import Broker

loop = asyncio.get_event_loop()

proxies = asyncio.Queue(loop=loop)
broker = Broker(proxies, loop=loop)

loop.run_until_complete(broker.find())

while True:
    proxy = proxies.get_nowait()
    if proxy is None: break
    print('Found proxy: %s' % proxy)

  lexiconjure - twitter бот, который придумывает слова и определения

Работает бот с помощью RNN + генетического алгоритма

  pypugly - генератор HTML на основе JADE.

# Comments with '#'

# All code start with a dash (consistency).

# Define a variable like this:
-var name = 'PyPUGly'

# Define a function like this:
-def title(name):
  h1.title '{name}''

html(lang="en")
  head
    # All strings must be quoted. Only single-quotes are accepted (consistency).
    title 'This is {name}'
  body
    # Call a function like this:
    +title('PyPUGly')

    #container
      p 'Strings must be quoted.'

  syncer - преобразуем асинхронные функции в синхронные

from syncer import sync
async def async_fun():
    ...
    return 1
b = sync(async_fun)  # now b is synchronous
assert 1 == b()

Релизы

  ptpython - 0.30

Хороший REPL для Python. Изменения описаны по ссылке https://allmychanges.com/p/python/ptpython/#0.30. Скачать можно по ссылке: https://pypi.python.org/pypi/ptpython