
Roman
10.09.2018
19:44:46

Gennady
10.09.2018
19:52:26
бухгалтерию?

Alex
10.09.2018
20:11:21
@pragus aaa ? :)

Roman
10.09.2018
20:14:25

Google

Alex
10.09.2018
20:15:01
юмор не для всех :)

Serge
11.09.2018
02:43:44
Выбор тем для обсуждения 11 сентября сделан
https://spbpython.guru/news/meetup-20180911-second-tuesday-again#disqus_thread
Будем говорить про Authentication & Authorization сессии, JWT, OAuth с Михаилом @neatsoft и про регистрацию хендлеров в aiohttp с помощью aiohug c Данилом @nonamenix Ивановым
Митап пройдет 11 сентября в ЦДО "Феникс"
? регистрация тут ?

amureki
11.09.2018
05:59:58

Roman
11.09.2018
06:26:28

Y
11.09.2018
06:35:26

Serge
11.09.2018
08:12:56

Stepan
11.09.2018
15:54:10
Добрый день
Кто-то настраивал когда-нибудь logging.conf в gunicorn-e? - у меня, по традиции, что-то не получается, хотел посоветоваться

Serge
11.09.2018
16:01:29

Danil
11.09.2018
16:28:08
а тут аутентичненько )

Serge
11.09.2018
16:33:32

Google

Unstoppable
11.09.2018
18:32:38
Псс
#postmeetup

Serge
11.09.2018
19:44:37
Я бы там ETS2 запустил

Unstoppable
11.09.2018
19:46:38
Тут только DCS world и EliteDangerous)

Roman
11.09.2018
19:54:50
ааа! чорт!

Алексей
11.09.2018
20:12:04

Roman
11.09.2018
20:15:36
я в афиге, что забыл
я там был?

Serge
11.09.2018
20:52:57

Roman
11.09.2018
21:07:55

Vasya
11.09.2018
21:48:47
есть более качественный способ бахнуть генератор, зависимый от двух других генераторов?
def wp(n):
gen = gg(n)
gen2 = gg(n+1)
while True:
try:
i,j = next(gen), next(gen2)
except StopIteration:
break
yield i*3 + j*3

Maxim
11.09.2018
21:50:41
(i*3+j*3 for (i, j) in zip(gg(n), gg(n+1)))
Третий питон
zip работает с итераторами

Vasya
11.09.2018
21:51:22
я почему-то боялся, что он в список перегонит

Maxim
11.09.2018
21:51:22
Если я правильно понял вопрос)

Vasya
11.09.2018
21:51:24
спасибо
да

Maxim
11.09.2018
21:51:31
В третьем не должен

Google

Maxim
11.09.2018
21:51:33
Проверь)
Во втором для этого есть itertools.izip

Vasya
11.09.2018
21:52:42
у меня третий, все верно по логике, сейчас проверю в консольке

Stepan
12.09.2018
05:07:41

Sergey
12.09.2018
05:09:08


Stepan
12.09.2018
05:24:07
Значит, помимо того, что я на питоне 2.5 дня пишу, поэтому с радостью приму в виде ответа Ссылки на адекватные ресурсы, вопрос :
Есть logging.conf
И есть строка запуска гуникорна
Сейчас покажу и то и другое
[loggers]
keys=root, gunicorn.error, gunicorn.access, requests.packages.urllib3.connectionpool, main
[handlers]
keys=log_file, syslog
[formatters]
keys=generic
[logger_root]
level=INFO
handlers=log_file, syslog
[logger___main__]
level=DEBUG
handlers=log_file, syslog
propagate=0
qualname=main
[logger_gunicorn.error]
level=INFO
handlers=log_file, syslog
propagate=0
qualname=gunicorn.error
[logger_gunicorn.access]
level=INFO
handlers=log_file, syslog
propagate=0
qualname=gunicorn.access
[logger_requests.packages.urllib3.connectionpool]
level=WARN
handlers=log_file, syslog
propagate=0
qualname=requests.packages.urllib3.connectionpool
[handler_syslog]
class=logging.handlers.SysLogHandler
formatter=generic
args=('/dev/log')
[handler_log_file]
class=logging.FileHandler
formatter=generic
args=('/var/log/gunicorn.log',)
[formatter_generic]
format=%(asctime)s [%(process)d:%(name)s:%(lineno)s] [%(levelname)s] %(message)s
datefmt=%Y-%m-%d %H:%M:%S
class=logging.Formatter
А запускаю вот так
exec /usr/local/bin/gunicorn --pythonpath=/opt/image-processor -b 0.0.0.0:80 --workers=17 --log-syslog-prefix improc --log-config /opt/image-processor/improc/deploy/logging.conf --log-level=debug wsgi:app \&1
Вылетает с ошибкой :метод инит ожидает 1-4 параметра, а ты ему даёшь 9
TypeError: init() takes from 1 to 4 positional arguments but 9 were given
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: Traceback (most recent call last):
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/local/bin/gunicorn", line 11, in <module>
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: sys.exit(run())
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/local/lib/python3.5/dist-packages/gunicorn/app/wsgiapp.py", line 61, in run
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/local/lib/python3.5/dist-packages/gunicorn/app/base.py", line 223, in run
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: super(Application, self).run()
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/local/lib/python3.5/dist-packages/gunicorn/app/base.py", line 72, in run
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: Arbiter(self).run()
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/local/lib/python3.5/dist-packages/gunicorn/arbiter.py", line 60, in init
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: self.setup(app)
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/local/lib/python3.5/dist-packages/gunicorn/arbiter.py", line 95, in setup
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: self.log = self.cfg.logger_class(app.cfg)
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/local/lib/python3.5/dist-packages/gunicorn/glogging.py", line 200, in init
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: self.setup(cfg)
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/local/lib/python3.5/dist-packages/gunicorn/glogging.py", line 256, in setup
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: disable_existing_loggers=False)
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/lib/python3.5/logging/config.py", line 84, in fileConfig
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: handlers = _install_handlers(cp, formatters)
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: File "/usr/lib/python3.5/logging/config.py", line 148, in _install_handlers
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: h = klass(*args)
Sep 11 16:55:48 pre-image-processor1 docker-image-processor[13894]: TypeError: init() takes from 1 to 4 positional arguments but 9 were given


Maxim
12.09.2018
05:44:26
Опять показалось, что на python 2.5 пишут...

Stepan
12.09.2018
05:53:41
Есть идеи?)

Некто
12.09.2018
06:24:00
Есть идеи?)
Посмотреть метод инит который ругается на то что ты ему пихаешь 9 аргументов, хотя он может принять только 4
Посмотри что он ждёт и что ты ему суёшь

Denis
12.09.2018
06:29:31

Admin
ERROR: S client not available

Denis
12.09.2018
06:29:31
А не версия

Stepan
12.09.2018
06:30:31
Все логично
Спасибо

Google

Некто
12.09.2018
06:32:03

Maxim
12.09.2018
06:32:13
@stvlpotapov попробуй сделать args = ('/dev/log',)
внимание на запятую

Stepan
12.09.2018
06:32:51
Понял, сейчас попробую

Maxim
12.09.2018
06:34:00
конечно непедагогично с моей стороны...

Dmitry
12.09.2018
06:42:21

Danil
12.09.2018
06:43:49

Maxim
12.09.2018
06:44:21
сарказм? ?

Danil
12.09.2018
06:44:58
Почему же? )


Stepan
12.09.2018
06:54:05
слушайте, я задам набор вопросов - на них нет точно правильного ответа, но они очень актуальны персональо для меня. Извините срау за большое количество букв и туповатых вопросов, но они все - просто результат жизни
мой уровень - способность написать рест апи на фласке, обрабатывать изображения, интересным способом раскладывать матрицы, работать с докером и гуникорном - да и все пожалуй
синтаксис я учил впопыхах, но занимался анализом изображений, поэтому случаются казусы в стиле: окей, с медианной фильтрацией разобрались, осталось понять, как работает импорт пакетов в питоне (раньше писал на матлабе только)
ну и вот, вопросы, собственно:
1) не совсем понятны все скрипты, вида "__example__.py"
чтобы пакет был "python package" надо добавить файл __init__.py
пустой
я писал на джаве, наличие "просто пустой файл" меня смущает, отсюда вопрос - они какие-то особенные? - как про них больше понять?
2) как работает импорт пакетов ? - я пришлю картинку, на ней иерархия папок будет, вот там абсолютно не ясно, почему импорт не работает
3) ооп на питоне - знаете какой-нибудь ресурс, который бы проводил аналогию между работы в джаве и работы в python ?
4) хочется сравнить gunicorn и uwsgi на качество работы, как это сделать без тестирования?
5) Вот я прочитал в свое время Хорстмана - java 8, потом прошел два курса по java - от специалиста (это такие курсы в мгу, видосы на ютубе), и от jetbrains, и теперь я могу сказать с уверенностью - дайте мне любую задачу, я начну ее решать, потому что я понимаю, как джава в принципе работает .. Что прочитать, чтобы такой же образ вокруг питона собрать?


Denis
12.09.2018
06:55:26
1 - совсем не пустой. ну то есть минимум пустой должен быть) а так он порой несёт мощную нагрузку


Алексей
12.09.2018
06:58:34
слушайте, я задам набор вопросов - на них нет точно правильного ответа, но они очень актуальны персональо для меня. Извините срау за большое количество букв и туповатых вопросов, но они все - просто результат жизни
мой уровень - способность написать рест апи на фласке, обрабатывать изображения, интересным способом раскладывать матрицы, работать с докером и гуникорном - да и все пожалуй
синтаксис я учил впопыхах, но занимался анализом изображений, поэтому случаются казусы в стиле: окей, с медианной фильтрацией разобрались, осталось понять, как работает импорт пакетов в питоне (раньше писал на матлабе только)
ну и вот, вопросы, собственно:
1) не совсем понятны все скрипты, вида "__example__.py"
чтобы пакет был "python package" надо добавить файл __init__.py
пустой
я писал на джаве, наличие "просто пустой файл" меня смущает, отсюда вопрос - они какие-то особенные? - как про них больше понять?
2) как работает импорт пакетов ? - я пришлю картинку, на ней иерархия папок будет, вот там абсолютно не ясно, почему импорт не работает
3) ооп на питоне - знаете какой-нибудь ресурс, который бы проводил аналогию между работы в джаве и работы в python ?
4) хочется сравнить gunicorn и uwsgi на качество работы, как это сделать без тестирования?
5) Вот я прочитал в свое время Хорстмана - java 8, потом прошел два курса по java - от специалиста (это такие курсы в мгу, видосы на ютубе), и от jetbrains, и теперь я могу сказать с уверенностью - дайте мне любую задачу, я начну ее решать, потому что я понимаю, как джава в принципе работает .. Что прочитать, чтобы такой же образ вокруг питона собрать?
3) На питоне не обязательно писать в стиле джава-стайл ООП. Подробнее, например, описывает Fluent Python.


Stepan
12.09.2018
07:01:44
Я все читаю, продолжайте пожалуйста

Алексей
12.09.2018
07:01:50
Вопросы 1 и 2 мне кажется можно объединить в тему python packaging и читать мануалы и ресурсы по ней. Вкратце - импорт может добавить пакеты из PYTHONPATH. Популяция pythonpath зависит от того где вы этот импорт запускаете. В общем виде это обычно либы питона и папка запуска скрипта.
Да я бы и продолжил, но вопрос актуальной спецификации языка меня заставил задуматься. Является ли таковой Python Reference Guide? Может ли Python Reference Guide конфликтовать с каким-нибудь PEP?

Stepan
12.09.2018
07:08:41
С гуникорном интересно в этом смысле вышло
Оказалось, что версия 19.8 объявляет параметр для поддержки сислогов, который начинает работать только в 19.9)
Я писал как раз не в стиле ооп
Потому что вопрос, например, а что с интерфейсами, они - то же, что и в джаве, и логика такая же?
В общем, отсутствие общей картины сильно мешает

Алексей
12.09.2018
07:18:20

Stepan
12.09.2018
07:19:08
и что делать=) объявлять класс без реализации с именем "IwotOnInterface.py" =)

Null
12.09.2018
07:19:27

Google

Алексей
12.09.2018
07:20:09

Stepan
12.09.2018
07:21:05
в смысле? - я могу рассказать, зачем могут быть нужны интерфейсы, если надо
надо?
ioc там например