@spbpython

Страница 73 из 785
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))

А его gevent себе не заберет? Это же его треды будут, не?
нет. там специально есть пул тредов, который нативный для блокирующихся операций.

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
resp.raw.decode_content = True shutil.copyfileobj(resp.raw, f)
ну, можно так, да. но это всё работает пока у тебя не появляется смесь гринлетов и тредов.

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
Это не сработает, поскольку debuglevel в http.client позволяет контролировать только печать в stdout (там внутри используется print).
Если тебе не подходит только потому что это пишется в stdout, то ты можешь получить логгер по имени ("requests.packages.urllib3", например) и добавить к нему хендлер записи в файл

Vitali K.
16.07.2016
06:56:19
Там именно принты.
а, принты, дошло

That Guy
16.07.2016
07:02:17
Для дампа можно использовать https://toolbelt.readthedocs.io/en/latest/dumputils.html
Спасибо, посмотрю. Но я уже написал какой-то велосипед

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
Там именно принты.
Так а можно было же принту дефолтный file поменять, помнится...

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 даже Сальваторе принял участие в обсуждении

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 спроси у девочек, как время будет, откуда они заказывают для арта?

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

И он больше на типы нацелен бужет думаю

*будет

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

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

Страница 73 из 785