Size: a a a

2020 June 22

IM

Innokenty Min in PiterPy Meetup
Если на коленке, то можно добавить
mail.switch_to.window(mail.window_handles[1])

и все работает.
источник

AS

Alex Surnov in PiterPy Meetup
Innokenty Min
Если на коленке, то можно добавить
mail.switch_to.window(mail.window_handles[1])

и все работает.
да спасибо уже понял
источник

AS

Alex Surnov in PiterPy Meetup
Innokenty Min
Если на коленке, то можно добавить
mail.switch_to.window(mail.window_handles[1])

и все работает.
теперь проблема у меня что не могу кнопку "нажать" )
источник

IM

Innokenty Min in PiterPy Meetup
Alex Surnov
теперь проблема у меня что не могу кнопку "нажать" )
Когда возился с Селениумом решал вот так:
button = mail.find_element_by_css_selector('.passp-form-button')
mail.execute_script("arguments[0].click();", button)
источник

AS

Alex Surnov in PiterPy Meetup
Innokenty Min
Когда возился с Селениумом решал вот так:
button = mail.find_element_by_css_selector('.passp-form-button')
mail.execute_script("arguments[0].click();", button)
это для yandex сгодится?
источник

IM

Innokenty Min in PiterPy Meetup
Alex Surnov
это для yandex сгодится?
Да, почему нет)
источник

AS

Alex Surnov in PiterPy Meetup
Innokenty Min
Да, почему нет)
что-то не то он выдает )
источник

IM

Innokenty Min in PiterPy Meetup
Кажется, надо просто подтвердить регистрацию - пишут же что отправили код на ящик
источник

AS

Alex Surnov in PiterPy Meetup
Innokenty Min
Кажется, надо просто подтвердить регистрацию - пишут же что отправили код на ящик
по идее должны потребовать пароль
источник

AS

Alex Surnov in PiterPy Meetup
Innokenty Min
Кажется, надо просто подтвердить регистрацию - пишут же что отправили код на ящик
кнопка не регистрации должна быть а чтобы был ввод пароля
источник

IM

Innokenty Min in PiterPy Meetup
судя по тому, что написано, учетка еще не заверифицирована - написано "для завершения регистрации". Надо сначала закончить регистрацию, а потом можно будет входить с паролем.
источник

AS

Alex Surnov in PiterPy Meetup
Innokenty Min
судя по тому, что написано, учетка еще не заверифицирована - написано "для завершения регистрации". Надо сначала закончить регистрацию, а потом можно будет входить с паролем.
это как?. Просто я в нее руками уже входил
источник
2020 June 23

DB

Dima Boger in PiterPy Meetup
У кого-нибудь есть предположения или мысли почему celery ушли от class-based task? Мне хочется чуть больше типизированости получить и немного почистить код от декораторов, поэтому я хочу попробовать использовать вместо функций классы:
class MagicTask(Task):
   autoretry_for = (TypeError,)
   retry_kwargs = {'max_retries': 5}
   
   def run(self, *args, **kwargs):
       make_magic(**kwargs)


Но у них очень стрёмный механизм регистрации:
class MagicTask(Task):
   ...
MagicTask = celery_app.register(MagicTask())


И выглядит так, будто бы они пытались сломать их в 4 версии, чтобы люди ими не пользовались: https://github.com/celery/celery/issues/3744
источник

DB

Dima Boger in PiterPy Meetup
Из этого делаю вывод, что они почему-то не хотят, чтобы люди писали class-based таски — в доке про них пол абзаца. Есть идеи почему так?
источник

AK

Alex 🌼 Karpinsky in PiterPy Meetup
Dima Boger
Из этого делаю вывод, что они почему-то не хотят, чтобы люди писали class-based таски — в доке про них пол абзаца. Есть идеи почему так?
Потому что это нужно для 1% тасков? )
источник

DB

Dima Boger in PiterPy Meetup
Alex 🌼 Karpinsky
Потому что это нужно для 1% тасков? )
А что это за 1%? Сложные таски, когда хочется много вспомогательных функций собрать в одном классе?
источник

AK

Alex 🌼 Karpinsky in PiterPy Meetup
Dima Boger
А что это за 1%? Сложные таски, когда хочется много вспомогательных функций собрать в одном классе?
У нас в одном месте только классы для тасков используются, для композиции под разные стораджи. И я тоже помню, что пытались сделать по-честному, о в итоге плюнули и сделали так ))

@_task
def backup_files_to_s3(uuids):
   bt = S3BackupTask()
   bt.backup_files(uuids)
источник

DB

Dima Boger in PiterPy Meetup
Alex 🌼 Karpinsky
У нас в одном месте только классы для тасков используются, для композиции под разные стораджи. И я тоже помню, что пытались сделать по-честному, о в итоге плюнули и сделали так ))

@_task
def backup_files_to_s3(uuids):
   bt = S3BackupTask()
   bt.backup_files(uuids)
источник

DB

Dima Boger in PiterPy Meetup
ну ладно-ладно, буду использовать функции :(

эх, не нравятся мне эти параметризируемые декораторы...
источник

С

Саша in PiterPy Meetup
Dima Boger
У кого-нибудь есть предположения или мысли почему celery ушли от class-based task? Мне хочется чуть больше типизированости получить и немного почистить код от декораторов, поэтому я хочу попробовать использовать вместо функций классы:
class MagicTask(Task):
   autoretry_for = (TypeError,)
   retry_kwargs = {'max_retries': 5}
   
   def run(self, *args, **kwargs):
       make_magic(**kwargs)


Но у них очень стрёмный механизм регистрации:
class MagicTask(Task):
   ...
MagicTask = celery_app.register(MagicTask())


И выглядит так, будто бы они пытались сломать их в 4 версии, чтобы люди ими не пользовались: https://github.com/celery/celery/issues/3744
Да в роде все с классами тоже неплохо работало.  Внутри декоратора как раз и создается класс, а потом регистрируется в app https://github.com/celery/celery/blob/master/celery/app/base.py#L444. Правда каким то очень лютым способом )

А чем плох механизм регистрации ?
Dramatiq чем то не подошел или просто пробуешь celery?
источник