
Maxim
20.08.2018
09:41:45

BlackAndOrange
20.08.2018
09:43:21

Andrey
20.08.2018
09:43:47
То есть скрипт в этом месте будет зависать? — не совсем понял, но сейчас опишу
Celery с delay закидывает задачу в очередь, и не ждет когда она выполнится, а если без delay запускаешь, то он помещает в очередь, ждет когда он выполнится, и после этого только скрипт идет дальше или завершает работу(это про таску я говорю сейчас, так как ты воркер отдельно запускаешь!)
по асинку, он закидывает задачу в асинк и ждет например когда она выполнится другим методом/функцией, а сам при этом может закинуть следующую задачу, если задачи например в цикле у него

Maxim
20.08.2018
09:44:49
А код следующий за асинк будет выполняться? Сразу

Google

Maxim
20.08.2018
09:48:06
То есть скрипт в этом месте будет зависать? — не совсем понял, но сейчас опишу
Celery с delay закидывает задачу в очередь, и не ждет когда она выполнится, а если без delay запускаешь, то он помещает в очередь, ждет когда он выполнится, и после этого только скрипт идет дальше или завершает работу(это про таску я говорю сейчас, так как ты воркер отдельно запускаешь!)
по асинку, он закидывает задачу в асинк и ждет например когда она выполнится другим методом/функцией, а сам при этом может закинуть следующую задачу, если задачи например в цикле у него
Что значит другим методом?
Есть таск в task.py

Aragaer
20.08.2018
09:48:22

Maxim
20.08.2018
09:48:33
Я его вызываю через делай
Что измениться если я его вызову через асинк?

BlackAndOrange
20.08.2018
09:48:48
Технически можно, на практике там довольно дофига динамически вычисляемых имён файлов

Maxim
20.08.2018
09:48:53
Асинк

Aragaer
20.08.2018
09:48:58
еще лучше! замокать генератор этих динамических вычислений

BlackAndOrange
20.08.2018
09:50:03
Если бы был единый генератор
Там скрипт на питоне — чуть-чуть облагороженный скрипт на шелле
Может его, конечно, и можно переписать, чтобы было красиво
Но это именно "переписать"

Aragaer
20.08.2018
09:50:53
а, ну кстати, через unittest.mock через MagicMock все-таки open нормально мокается

Google

Aragaer
20.08.2018
09:51:08
https://stackoverflow.com/questions/1289894/how-do-i-mock-an-open-used-in-a-with-statement-using-the-mock-framework-in-pyth - 11-й год, уже все было

BlackAndOrange
20.08.2018
09:51:46
Только там они рассчитывают на то, что никто не будет делать так:
f = open(filename)
Мокается только контекстный менеджер и потом проверяется метод __enter__

Aragaer
20.08.2018
09:53:00
мм... кто мешает?
mock_open.return_value = my_mock_handle
my_mock_handle.__enter__.return_value = my_mock_handle
ну будет в обоих случаях один и тот же мок, а в реальном коде будет дергаться или через одно, или через другое

BlackAndOrange
20.08.2018
09:53:46
А, ну так можно, да.
А можно так:
10 def imockopen(*args, **kwargs):
11 m = mock_open(*args, **kwargs)
12 m.return_value.__iter__ = lambda self: self
13 m.return_value.__next__ = lambda self: next(iter(self.readline, ''))
14 return m

Tigran
20.08.2018
10:01:38
конкретнее

Nikolay
20.08.2018
10:05:34
какой нынче pdf-эекстрактор хороший?

Andrey
20.08.2018
10:12:52
тебе это надо )
что бы задача выполнилась без ошибки
проше через try - except


Anna
20.08.2018
10:19:49
#Работа #RU-CENTER #Senior python developer #офис # 130К- 160k #python/Django/Celery
Мы RU-CENTER Group и мы хорошо разбираемся в доменах и хостинге.
Сейчас мы в поисках Senior Python разработчика в платформу разработки хостинга.
Чем предлагаем заниматься?
• Разработать архитектуру и стратегию развития системы управления хостинга
• Разрабатывать систему управления OpenStack (как для внутренних клиентов, так и для внешних)
• Необратимо улучшать существующие системы
• Избавляться от legacy систем, переписывая на python
• Заниматься планированием работ, распределением задач
• Обучать сотрудников
• Внедрять лучшие практики CI/CD
• Писать тесты, в том числе и интеграционные
Примеры существующих наших проектов:
• Система хранения пользовательских SSL сертификатов и управления ими
• Система управления бекапами пользователей (более 100к пользователей)
• Система переноса клиентов между серверами (более 300 серверов)
• Система проверки и исправления скриптов сайтов наших клиентов (более 2-х миллиардов файлов)
• Система сбора и хранения статистики потребления ресурсов пользователями (более 10^12 записей в базе за год, храним 3 года)
Для своих существующий проектов мы используем:
• Python 2/3
• Django
• Django REST framework
• Celery
• PostgreSQL
• InfluxDB
Что необходимо будет переписать:
• Систему управления хостинга, написанную на Perl
• Систему управления OpenStack’ом для клиентов
Большим преимуществом будет:
• Умение читать Perl
• Опыт разработки на C/C++
Условия:
• Уютный офис – м. Полежаевская;
• График работы 5/2 с плавающим началом дня.
Из офисных плюшек у нас есть: кикер, ps4, посещение конференций, ДМС, скидки на фитнес, английский, еду и винишко.
Пишите нам на почту: apopova@nic.ru или в телеграм @AnnaPopovaa


Nikolay
20.08.2018
10:22:44
#Работа #RU-CENTER #Senior python developer #офис # 130К- 160k #python/Django/Celery
Мы RU-CENTER Group и мы хорошо разбираемся в доменах и хостинге.
Сейчас мы в поисках Senior Python разработчика в платформу разработки хостинга.
Чем предлагаем заниматься?
• Разработать архитектуру и стратегию развития системы управления хостинга
• Разрабатывать систему управления OpenStack (как для внутренних клиентов, так и для внешних)
• Необратимо улучшать существующие системы
• Избавляться от legacy систем, переписывая на python
• Заниматься планированием работ, распределением задач
• Обучать сотрудников
• Внедрять лучшие практики CI/CD
• Писать тесты, в том числе и интеграционные
Примеры существующих наших проектов:
• Система хранения пользовательских SSL сертификатов и управления ими
• Система управления бекапами пользователей (более 100к пользователей)
• Система переноса клиентов между серверами (более 300 серверов)
• Система проверки и исправления скриптов сайтов наших клиентов (более 2-х миллиардов файлов)
• Система сбора и хранения статистики потребления ресурсов пользователями (более 10^12 записей в базе за год, храним 3 года)
Для своих существующий проектов мы используем:
• Python 2/3
• Django
• Django REST framework
• Celery
• PostgreSQL
• InfluxDB
Что необходимо будет переписать:
• Систему управления хостинга, написанную на Perl
• Систему управления OpenStack’ом для клиентов
Большим преимуществом будет:
• Умение читать Perl
• Опыт разработки на C/C++
Условия:
• Уютный офис – м. Полежаевская;
• График работы 5/2 с плавающим началом дня.
Из офисных плюшек у нас есть: кикер, ps4, посещение конференций, ДМС, скидки на фитнес, английский, еду и винишко.
Пишите нам на почту: apopova@nic.ru или в телеграм @AnnaPopovaa
> • Умение читать Perl


Старый
20.08.2018
10:23:25
> • Умение читать Perl
перл то ладно, а вот то что писать для опенстэк стоит как з\п у уборщицы в финке. это вот уже треш
разработка openstack в чехии это от 3900 евро на руки, и без гемора с обслуживанием постоянным

Anna
20.08.2018
10:24:08
Хотим избавиться от перла и переписать все модули на python.

Ser
20.08.2018
10:25:38

Google

Старый
20.08.2018
10:26:08


Tigran
20.08.2018
10:27:37
#Работа #RU-CENTER #Senior python developer #офис # 130К- 160k #python/Django/Celery
Мы RU-CENTER Group и мы хорошо разбираемся в доменах и хостинге.
Сейчас мы в поисках Senior Python разработчика в платформу разработки хостинга.
Чем предлагаем заниматься?
• Разработать архитектуру и стратегию развития системы управления хостинга
• Разрабатывать систему управления OpenStack (как для внутренних клиентов, так и для внешних)
• Необратимо улучшать существующие системы
• Избавляться от legacy систем, переписывая на python
• Заниматься планированием работ, распределением задач
• Обучать сотрудников
• Внедрять лучшие практики CI/CD
• Писать тесты, в том числе и интеграционные
Примеры существующих наших проектов:
• Система хранения пользовательских SSL сертификатов и управления ими
• Система управления бекапами пользователей (более 100к пользователей)
• Система переноса клиентов между серверами (более 300 серверов)
• Система проверки и исправления скриптов сайтов наших клиентов (более 2-х миллиардов файлов)
• Система сбора и хранения статистики потребления ресурсов пользователями (более 10^12 записей в базе за год, храним 3 года)
Для своих существующий проектов мы используем:
• Python 2/3
• Django
• Django REST framework
• Celery
• PostgreSQL
• InfluxDB
Что необходимо будет переписать:
• Систему управления хостинга, написанную на Perl
• Систему управления OpenStack’ом для клиентов
Большим преимуществом будет:
• Умение читать Perl
• Опыт разработки на C/C++
Условия:
• Уютный офис – м. Полежаевская;
• График работы 5/2 с плавающим началом дня.
Из офисных плюшек у нас есть: кикер, ps4, посещение конференций, ДМС, скидки на фитнес, английский, еду и винишко.
Пишите нам на почту: apopova@nic.ru или в телеграм @AnnaPopovaa
Анна, диез (#) пишется слитно с хэштегом: #работа


Maxim
20.08.2018
10:28:03

Anna
20.08.2018
10:28:11
Тигран, спасибо, сейчас поправлю

Tigran
20.08.2018
10:35:39
И раздельно от предыдущего хэштега…
#работа #офис

Stanislav
20.08.2018
10:37:22
У них вроде центр разработки в Брно

Старый
20.08.2018
10:39:41

Maxim
20.08.2018
10:49:20

Slava
20.08.2018
11:06:05
парни, привет. Были ли у вас проблемы с pika при выполнении долгих тасков на консьюмере, тип соединения BlockingConnection, параметр heartbeat=0? Соединение тихо умирает без ошибок и прочего. версия рэбита 3.7.6

Cykooz
20.08.2018
11:08:53
Соединения вообще имеют тенденцию умирать. Не стоит расчитывать на то что они будут вечными. И потому надо использовать heartbeat и не блокирующие реализации
Либо как то выкручиваться с помощью тредов, что бы обрабатывать херабиты

Slava
20.08.2018
11:09:50

Valery
20.08.2018
11:09:59
Народ, в aiohttp можно как-то проверить размер файла до того, как получить его полностью, чтобы защититься от переполнения?

Sergey
20.08.2018
11:10:27
Всем привет.
Что вот тут может противоречить pep8?
import io
import os
from django import forms

Valery
20.08.2018
11:10:47

Cykooz
20.08.2018
11:10:52

Valery
20.08.2018
11:10:58

Sergey
20.08.2018
11:11:22

Cykooz
20.08.2018
11:11:28
А тебе какое до этого дело? Сколько в нём указано - столько и считывай

Google

Cykooz
20.08.2018
11:11:49
Тебе ведь главно что бы лишнего не считать

Valery
20.08.2018
11:11:54

Cykooz
20.08.2018
11:13:04
Есть правда ещё
Transfer-Encoding: chunked
тут есть варианты - либо не поддерживать такой способ и выдвать ошибку, либо читать поток пока есть память
Например Амазон S3 не поддерживает заливку файлов с использованием Transfer-Encoding: chunked
Видимо как раз что бы длину файла заранее знать
Если есть nginx и ты хочешь избавится от лишних "буферов" - надо их отключать в nginx. Всякие буфера для входящих данных в нём нужны только для синхронных приложений

Valery
20.08.2018
11:16:19
нету nginxa. Про chunked думал, но тогда придется править еще и фронт...

Cykooz
20.08.2018
11:17:08

Valery
20.08.2018
11:17:34

Cykooz
20.08.2018
11:17:40
А, ну тогда Ок

Юрий
20.08.2018
11:20:17
Кто-то вытягивал вложения в письме питоном с гмейла? (нужно прочитать (не прочитаное забрать вложение и отметить как прочитаное). А то я стягиваю все вложения от того отправителя. Говорил человек у него статья на хабре будет но что-то не вижу пока...

Zi
20.08.2018
11:27:44
Ребят, есть либа, которая принимает cookiesJar
У меня есть стянутые с сайта кукисы в txt.
Как конвертнуть обычные куки в кукиДжар?

Nikolay
20.08.2018
11:29:39
https://stackoverflow.com/questions/14742899/using-cookies-txt-file-with-python-requests

Denis
20.08.2018
11:30:25
Ето второй питон

Nikolay
20.08.2018
11:30:40
import http.cookiejar.FileCookieJar

catbugisback
20.08.2018
11:32:05

Sergey
20.08.2018
12:29:23
Есть набор регулярок для парсинга строки ftp-подключения:
ftp_host = re.findall(r'@(\w+)', chat_string)[0]
ftp_user = re.findall(r'//(\w+)', chat_string)[0]
ftp_pass, ftp_port = re.findall(r':(\w+)', chat_string)
ftp_file_path = re.findall(r':\d+(.*)$', chat_string)[0]
Как их можно свести в одну регулярку, которая вернёт всё то же самое списком?

Aragaer
20.08.2018
12:30:06
urllib.urlpase

Google

Aragaer
20.08.2018
12:30:36
https://docs.python.org/3.5/library/urllib.parse.html#urllib.parse.urlparse
и даже лучше urlsplit

Nikolay
20.08.2018
12:32:09
?

Tigran
20.08.2018
12:32:12
не надо регулярок

Aragaer
20.08.2018
12:32:30
>>> import urllib.parse
>>> s = urllib.parse.urlsplit("ftp://user:password@some.host.something-something.com/path/to/file.extension")
>>> s
SplitResult(scheme='ftp', netloc='user:password@some.host.something-something.com', path='/path/to/file.extension', query='', fragment='')
>>> s.username
'user'
>>> s.password
'password'
и по-моему на прошлой неделе я такое уже скидывал сюда

Sergey
20.08.2018
12:33:30
Нужно делать именно регуляркой((

Aragaer
20.08.2018
12:34:09
тебе приставили к голове пистолет (и немного отвлекает блондинка под столом)?

Tigran
20.08.2018
12:34:51
:D

Sergey
20.08.2018
12:41:11