Size: a a a

2021 March 27

RP

Roman Pertsev in Asterisker-ы
Art
Коллеги, а вы со старым Panoramisk (версии 1.3 от 18 года) работаете или через гит свежий ставите?
Там куча коммитов с того времени было, парочка моих даже есть, так что нет смысла использовать старую версию без особой надобности.
источник

A

Art in Asterisker-ы
Roman Pertsev
Там куча коммитов с того времени было, парочка моих даже есть, так что нет смысла использовать старую версию без особой надобности.
Там смотрю интересный пример как ловить события появился:
https://github.com/gawel/panoramisk/blob/master/examples/event_listener_modern.py
источник

A

Art in Asterisker-ы
Только вот с ним не совсем понятно как использовать send_action параллельно.
источник

A

Art in Asterisker-ы
Как я понимаю данный пример может только ловить события
источник

RP

Roman Pertsev in Asterisker-ы
Поймал нужное событие, обработал, и сделал send_action, проблема в чем?
источник

A

Art in Asterisker-ы
В конкретно том примере ami_callback выполняется постоянно и не передает управление. Видимо из-за этого run_forever=True
источник

RP

Roman Pertsev in Asterisker-ы
Он и в обычном случае не отдает управление если его запускать как слушателя событий. run_forever я добавил что бы не писать это

manager.connect() try: manager.loop.run_forever() except KeyboardInterrupt: manager.loop.close()
источник

A

Art in Asterisker-ы
А в примерах к функции send_action вот такие примеры приводят:
To retrieve answer in a coroutine::

           manager = Manager()
           resp = await manager.send_action({'Action': 'Status'})

       With a callback::

           manager = Manager()
           future = manager.send_action({'Action': 'Status'})
           future.add_done_callback(handle_status_response)
Опять таки не совсем понятно как это использовать и что за переменная handle_status_response
источник

A

Art in Asterisker-ы
Roman Pertsev
Он и в обычном случае не отдает управление если его запускать как слушателя событий. run_forever я добавил что бы не писать это

manager.connect() try: manager.loop.run_forever() except KeyboardInterrupt: manager.loop.close()
А как в таком случае правильнее делать, если нужно одновременно и ловить события и отправлять команды?
источник

A

Art in Asterisker-ы
или прям в ami_callback при отлове нужного хендлера запускать выполнение нужной команды?
источник

RP

Roman Pertsev in Asterisker-ы
Art
или прям в ami_callback при отлове нужного хендлера запускать выполнение нужной команды?
Конечно
источник

A

Art in Asterisker-ы
Roman Pertsev
Конечно
использование % на сколько знаю считается устаревшим методом для форматирования строк. Плохо читается имхо
источник

RP

Roman Pertsev in Asterisker-ы
Art
использование % на сколько знаю считается устаревшим методом для форматирования строк. Плохо читается имхо
Это дело вкуса, библиотека писалась когда еще не было f строк
источник

RP

Roman Pertsev in Asterisker-ы
Вернее даже изначальные примеры писались для обратной совместимости с версиями где f строки не поддерживаются
источник

A

Art in Asterisker-ы
Roman Pertsev
Вернее даже изначальные примеры писались для обратной совместимости с версиями где f строки не поддерживаются
Я же не как притензию, просто много где читал об этом что format и f-string лучше использовать чем %
источник

A

Art in Asterisker-ы
источник

A

Art in Asterisker-ы
Roman Pertsev
Конечно
Все равно не могу разобратся что за переменная такая handle_status_response
в примере:
With a callback::
           manager = Manager()
           future = manager.send_action({'Action': 'Status'})
           future.add_done_callback(handle_status_response)
источник

A

Art in Asterisker-ы
нигде в исходном коде нет ее
источник

A

Art in Asterisker-ы
асинхронность сложновато дается((
источник

RP

Roman Pertsev in Asterisker-ы
В папке example есть все примеры
источник