
Pavel
13.02.2017
17:31:31
Как лутц завещал
жаль, что старика никто не слушает. stdlib 3.5
# grep -r "except Exception[: ]" * | wc -l
576

Константин
13.02.2017
17:35:45
Коллеги по Apscheduler сможете проконсультировать?

Suren
13.02.2017
17:49:26
привет
а как сделать, чтобы подключенный модуль не сыпал логи? ставлю
logging.basicConfig(level=logging.WARNING), однако все равно сыпется с подключенного модуля с уровнем INFO
пробовал logging.getLogger('yr.utils').setLevel=30, все равно сыпет

Google

Suren
13.02.2017
17:50:39
в сурсах в модуле логгер объявляют так log = logging.getLogger(__name__)

Ivan
13.02.2017
17:53:03
А если в вызывающем модуле этот log явно переопределить? Точнее его уровень болтливости. Ну просто взять его как атрибут вызываемого модуля.

Suren
13.02.2017
17:53:14
как?

Ivan
13.02.2017
17:54:08
Кто болтает?

Denis
13.02.2017
17:54:14
module.log = unittest.Mock()

Suren
13.02.2017
17:54:26

Константин
13.02.2017
17:56:06
До компа доберусь кину пример

Suren
13.02.2017
17:56:27

Ivan
13.02.2017
18:07:14
как-то странно, насколько я понял вот это, то импортирующий модуль опеределяет уровень логгера в целом. а проверь уровень своего логгера после его создания?
https://docs.python.org/3/howto/logging.html#logging-from-multiple-modules

Suren
13.02.2017
18:11:51
с этим разобрался. сначала подключаю модуль, а потом уже ставлю логгер бэйсикконфиг. но как у конкретного модуля сменить уровень?

Google

Suren
13.02.2017
18:14:54
>>> logging.getLogger().level
30
но как обратиться к логгеру конкретного модуля

Ivan
13.02.2017
18:16:52
У меня была как-то такая проблема, что urllib рассказывал все свои подробности, коих дофига, как-то я это тогда победил, но вот сейчас вспомнить не могу. Просто я по-старинке все логирую python some_module.py > some_module.log 2>&1
так и не смог себя к логгеру приучить

Suren
13.02.2017
18:17:15
так неправильно

Ivan
13.02.2017
18:17:27
я знаю :)

Suren
13.02.2017
18:18:49
вот и шо делать с этим модулем я ума не приложу
АААА Я СМОГ

Константин
13.02.2017
18:29:29
А что это?

Ivan
13.02.2017
18:30:23
мне интересно. но интереснее почему он базарил инфо когда его вызывающий сказал ворнинг надо. завтра поэкспериментирую, интересно стало

Suren
13.02.2017
18:40:43
А что это?
как изменять уровень логгинга
или ты не про это?

Константин
13.02.2017
19:18:23
я просто не разобрался до конца какой вопрос вы решали
помогите вкурить апс плиз
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
job=scheduler.add_job(timed_send, 'interval', seconds=5)
scheduler.reschedule_job(job.id,None,'interval',seconds=20)
scheduler.start()
вот код он работает в части решедла конкретно строка scheduler.reschedule_job(job.id,None,'interval',seconds=20)
а вот эта строка нет если ей заменить вышеуказанную job.reschedule(None,'interval',seconds=20)
не могу разобраться с параметрами которые ей передать

Ivan
13.02.2017
19:48:57
Так сложно с наскока, если не работал с таким, но я бы глянул код, один из плюсов интерпретируемости питона возможность без лютых танцев с бубном посмотреть как оно работает.

Suren
13.02.2017
19:55:37
продолжая вопрос с логгером (и еще и шедулером)
в нем аж в трех местах надо отключать логгер (как отрубить одной строчкой глобально найти не смог)
>>> from apscheduler.schedulers.background import BackgroundScheduler
>>> import logging
>>> logging.basicConfig(format=u'%(filename)s [LINE:%(lineno)d]#%(levelname)-8s [%(asctime)s] %(message)s', level=logging.INFO)
>>>
>>> logging.getLogger('apscheduler.scheduler').setLevel('WARNING')
>>> logging.getLogger('apscheduler.schedulers').setLevel('WARNING')
>>> logging.getLogger('apscheduler.executors').setLevel('WARNING')
>>>

Константин
13.02.2017
19:58:07
судя по документации можно

Google

Константин
13.02.2017
19:58:35
http://apscheduler.readthedocs.io/en/latest/userguide.html#modifying-jobs
вот и уперся
причем пишарм подсказывает эту функцию тоесть конструктор есть
а вот как им управлять ума не приложу

Ivan
13.02.2017
20:12:03

Константин
13.02.2017
20:16:21
а вот если вместо этой строки поставить
print(job, dir(job))
что покажет?
timed_send (trigger: interval[0:00:05], pending) ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__unicode__', '_get_run_times', '_jobstore_alias', '_modify', '_scheduler', 'args', 'coalesce', 'executor', 'func', 'func_ref', 'id', 'kwargs', 'max_instances', 'misfire_grace_time', 'modify', 'name', 'next_run_time', 'pause', 'pending', 'remove', 'reschedule', 'resume', 'trigger']

Ivan
13.02.2017
20:17:19
а так?
print(help(job.reschedule))

Константин
13.02.2017
20:18:51
вот смотрите
видите конструктор

Di
13.02.2017
20:19:16
нет, а он есть?

Константин
13.02.2017
20:19:17
только не понимаю как в него правильно параметры передать

Ivan
13.02.2017
20:19:42
help что-нибудь выводит?

Константин
13.02.2017
20:20:08
Help on method reschedule in module apscheduler.job:
reschedule(trigger, **trigger_args) method of apscheduler.job.Job instance
Shortcut for switching the trigger on this job.
.. seealso:: :meth:~apscheduler.schedulers.base.BaseScheduler.reschedule_job
:return Job: this job instance
тоже самое что и подсказки в иде по конструктору
только все равно не понятно

Евгений
13.02.2017
20:22:24
посоветуйте норм сайты-курсы обучения Python типа codeacademy или что-то такое на русском языке для молодняка.

Sasha
13.02.2017
20:23:07

Di
13.02.2017
20:23:39

Евгений
13.02.2017
20:24:00
что-то было

Google

Евгений
13.02.2017
20:24:05
я не помню сайт
мне не для себя. мелкий интересуется.

Di
13.02.2017
20:24:28
hexlet мб
сорри, чот там не вижу питона

Sasha
13.02.2017
20:25:51
Напиши просто в гугле hexlet

Константин
13.02.2017
20:26:15

Sasha
13.02.2017
20:26:15
Не заходя на сайт увидишь

Ivan
13.02.2017
20:26:23
Почему None?
а вот эта строка нет если ей заменить вышеуказанную job.reschedule(None,'interval',seconds=20)

Di
13.02.2017
20:26:57

Ivan
13.02.2017
20:27:02
Что такое self?

Евгений
13.02.2017
20:27:21
текущий объект

Boojum
13.02.2017
20:27:38

Ivan
13.02.2017
20:27:52
Вопрос к автору, капитаны

Di
13.02.2017
20:29:52
кстати, у кого осталась ссылка на тест для джуна? тут недавно постили

Ivan
13.02.2017
20:33:23
#links #tests #junior
сам нашел https://alexbers.com/python_quiz/

Google

Константин
13.02.2017
20:33:55
Колеги сорри за вынос мозга сам допер
хз почему раньше не работало
job.reschedule('interval',seconds=1)

Ivan
13.02.2017
20:35:08
Да ясно почему не работало. Ты плаваешь в ООП, надо более глубоко поизучать.

Sasha
13.02.2017
20:36:06

Di
13.02.2017
20:37:49
О, спасибо!

Евгений
13.02.2017
20:38:07
на hexlet нет Python'а

Di
13.02.2017
20:38:34

Sasha
13.02.2017
20:38:48

Евгений
13.02.2017
20:39:20
а, какая-то песочница. ну в основных не было
спасибо

Di
13.02.2017
20:39:38
Как я понял, это не основной курс

Ivan
13.02.2017
20:43:38
А чем кодкадеми не нравится? Отличный курс молодого бойца. Ничему не учит, но основное представление и минимальные практические навыки дает.

Sasha
13.02.2017
20:44:05

Ivan
13.02.2017
20:44:22
Кодить-то тоже на русском планируется? А документацию читать?
Там английский уровня elementary.

Sasha
13.02.2017
20:44:56

Anna
13.02.2017
20:45:00

Ivan
13.02.2017
20:45:22
Тогда я тоже ищу русские курсы срочно :)

Di
13.02.2017
20:45:41
#вайтивайти

Anna
13.02.2017
20:46:25
нужна картинка про 1с в Берлине срочно
Эта группа больше не существует