
Eugene
13.07.2016
10:17:40
@lig11 ?

Andrey
13.07.2016
10:25:10
С днем рождения, @lig :)

Dmitry
13.07.2016
10:49:55
Серёга поздравляю! ?

Dmitry
13.07.2016
11:38:13
а кстати, почему лиг?

Google

Alexey
13.07.2016
11:45:32
с Лигово пацанчег ;)

Serge
13.07.2016
15:04:41
Спасибо всем!:)

Roman
13.07.2016
15:48:14
ох...
я тут огрёб немного с gevent.
но похоже понятно даже с чем это связано.

Serge
13.07.2016
15:49:28
А?

Roman
13.07.2016
15:49:54
смотри. допустим, у нас есть
r = requests.get(some_url, stream=True)
и вот есть у обекта r метод iter_content(chunk_size)
хочешь ты писать это на диск и делаешь нечто вроде:
with open('somefile', 'wb') as handle:
for chunk in r.iter_content(4096):
handle.write(chunk)
потом понимаешь, что негоже блокироваться, давайте вынесем запись в thread pool и заменяешь на:
tpool.apply(handle.write, [chunk])

Serge
13.07.2016
15:54:45
А его gevent себе не заберет? Это же его треды будут, не?

Roman
13.07.2016
15:55:03
но у tpool есть метод map, можно написать красиво:
tpool.map(handle.write, r.iter_content(4096))

Google

Serge
13.07.2016
15:55:55
Ну ок
И чего?

Roman
13.07.2016
15:56:13
так вот, вариант с map нерабочий и иногда продуцирует битые файлы =(
точнее, часто.
кмк, причина в том что next() у r.iter_content(4096) дергается в настоящем тредике

Serge
13.07.2016
15:57:19
Пишет в разнобой небось?

Roman
13.07.2016
15:57:30
нет, пишет по порядку.

Serge
13.07.2016
15:57:49
В чем битость файлов?

Roman
13.07.2016
15:57:58
а несколько байт недописано.

Vitali K.
13.07.2016
16:04:03
resp.raw.decode_content = True
shutil.copyfileobj(resp.raw, f)
Мы вот так файл сохраняем
resp = http.get(url, stream=True)
resp.raise_for_status()
resp.raw.decode_content = True
size = resp.headers.get('Content-Length')
logger.debug('Downloading url=%s, size=%s to f_path=%s' % (url, size, f_path))
with open(f_path, 'wb') as f:
shutil.copyfileobj(resp.raw, f)

Roman
13.07.2016
16:24:04

Vitali K.
13.07.2016
16:25:58
У меня только тредв
Я на всякий случай скинул. Вдруг наведёт тебя на какие то мысли

Sergey
14.07.2016
01:36:54
Asciinema 1.3 Switches from Go Back to Python
http://blog.asciinema.org/post/and-now-for-something-completely-different/

Michael
14.07.2016
06:08:04
Как у сушности по DDD вес задается?

Sergey
15.07.2016
11:38:41
https://github.com/jupyter/jupyterlab

Serge
15.07.2016
12:40:24
Срочно! Кто у нас будет доклады делать на ITGM 23 июля? Надо обязательно два больших и пару блиц.
Это считая тех, с кем уже договаривались предварительно

Google

Serge
15.07.2016
14:59:41
@nonamenix @jetbootsmaker @andreyzakharevich @alsmirn так что? доклады будут?
@pragus а ты?

Andrey
15.07.2016
15:30:44
Я вообще на улькампе, и очень вряд ли что-то придумаю

Serge
15.07.2016
15:36:35
:)

Aleksander
15.07.2016
17:17:46
Блиц на сколько ?)

Serge
15.07.2016
19:29:09
да поздно уже
я вписал @nonamenix :) готовь бота на aiohttp
это большой доклад
сам пропарю блицом про Python 3
и еще будет доклад товарища из DINO

Vitali K.
15.07.2016
19:30:41
Бля ребят я бы мог что-то рассказать, но у меня майндфак что я ничего не паб
Кроме того я накатил

Sergey
15.07.2016
19:34:50
кто-нибудь пробовал https://github.com/nteract/hydrogen ?

Aleksander
15.07.2016
22:14:55
@lig11 ок)

That Guy
15.07.2016
22:29:39
Товарищи, подскажите, как мне перестать упарываться. Есть скрипт, который общается с неким API по HTTPS/JSON. Используется, конечно, requests. Я хочу логгировать все запросы и ответы, а именно: timestamp, HTTP status code, request path, request body, response body. Сейчас я это делаю при помощи mitmproxy. К сожалению, mitmproxy через некоторое время вылетает с out of memory, что-то там течёт. Что посоветуете?
Запросы бывают только GET и POST.
Я нашёл https://stackoverflow.com/questions/16337511/log-all-requests-from-the-python-requests-module. Предлагается логгировать все запросы средствами стандартного logging. Проблема здесь в том, что потом будет сложно такие логи обрабатывать автоматически.
Это не сработает, поскольку debuglevel в http.client позволяет контролировать только печать в stdout (там внутри используется print).


Vitali K.
16.07.2016
06:48:52
Для дампа можно использовать https://toolbelt.readthedocs.io/en/latest/dumputils.html
Если ты не хочешь вставлять логирование во все точки обращения к сети, то можно сделать манкипатч, который вызывает dump в момент получения респонза

Google

Vitali K.
16.07.2016
06:52:11

That Guy
16.07.2016
06:55:55

Vitali K.
16.07.2016
06:56:19

That Guy
16.07.2016
07:02:17

Serg
16.07.2016
07:24:37
Коллеги, подскажите сайтег, книжечку аль бложег для чайника в sqlalchemy

GNU/Docker
16.07.2016
07:33:55
Офф дока
Она ок

Serg
16.07.2016
07:37:04
Спасибо, вчера до нее не успел дойти))

Admin
ERROR: S client not available

Serg
16.07.2016
07:39:59
А сильно отличаются sqlalchemy и Django orm?

Dmitry
16.07.2016
10:03:36
сильно
я до конца не привык ещё
кучу вещей приходится делать руками после джанго
но она гибче в конечном итоге и даёт возможность более сложные вещи готовить
sqlalchemy recipes еще посмотри

Serg
16.07.2016
11:11:59
Спасибо большое :)

Serge
16.07.2016
13:00:21

Sergey
16.07.2016
16:05:09
Какие там проблемы с редисом, кто знает?
http://docs.celeryproject.org/en/master/whatsnew-4.0.html#support-for-redis-as-a-broker-is-deprecated

Serge
16.07.2016
16:06:07
На те вам
А что у нас есть для amqp, кроме rabbitmq?

Google

Serge
16.07.2016
16:07:36
Чтобы с шиной

Sergey
16.07.2016
16:43:52
https://github.com/celery/celery/issues/3274
даже Сальваторе принял участие в обсуждении

Roman
16.07.2016
18:18:20

Sergey
16.07.2016
18:20:39
какую-то помощь вроде хотел предложить

Michael
18.07.2016
06:15:13
Всем хорошей недели

Николай
18.07.2016
06:44:30
Спасибо) и тебе

Michael
18.07.2016
08:20:32
@lig11 Серега когда мы стикеры spb_pig заеб...шим, эм, сделаем?

Serge
18.07.2016
10:54:09

Michael
18.07.2016
12:28:41
@lig11 спроси у девочек, как время будет, откуда они заказывают для арта?

Danil
18.07.2016
12:40:05

Michael
18.07.2016
13:13:33
Я могу не совсем по питону, больше по теории, но переложить на питон... но это ближе к след итгм, не уверен что до субботы успею нормально
И он больше на типы нацелен бужет думаю
*будет

Андрей
18.07.2016
13:22:09
Господа, добрый день. Подскажите, существуют ли готовые решения для django, которые отправляли бы email администратору каждый раз, когда происходит exception?

Aleksandr
18.07.2016
13:23:04

Dmitry
18.07.2016
13:38:11

Андрей
18.07.2016
14:25:23

Vitali K.
18.07.2016
14:43:47

Serge
18.07.2016
21:15:45