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

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

     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Интересные проекты, инструменты, библиотеки

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

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

     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи
     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи

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

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

     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи
     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи

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

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

     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Видео

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

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

     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Интересные проекты, инструменты, библиотеки

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'))

     24.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи
     24.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи
     24.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Интересные проекты, инструменты, библиотеки

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)

     24.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи

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

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