• Инициализация Flask'a в классе?

    @antonksa
    Зёма Подушкин, там много специфики, я сам неоднократно отстреливал себе ноги и прочие конечности. В вашем случае вы напоролись на то, что декоратор фласка не подразумевает подобное его использование. Я бы на вашем месте открыл его исходники и почитал, попытавшись разобраться как это работает. В свое время я очень много читал исходники изучая как мыслят люди, которые создали все эти популярные инструменты, как они все выстраивают, как компонуют, какие паттерны используют, как пишут тесты и т.д.
  • Как можно делать много запросов в минуту как можно быстрее?

    @antonksa
    Воу-воу, палехче, во-первых причем здесь многоядерные процессоры если у человека 1% load CPU потому что все торчит в system space ожидая пока приедет ответ на TCP запрос. Ему надо запустить побольше тредов, идеально создавать по треду на каждый запрос, убивать тред после ответа, нужен оркестратор тредов, который будет мерять загрузку процессора и держать количество одновременных запросов на уровне скажем 80% CPU. Aiohttp не вариант, это не для начинающих. Во-вторых отправлять человека учить Го из питонячей ветки, да еще и написав бред из 4-х пунктов как минимум невежливо. Ну а ответ "я вам точно не скажу, идите погуглите" это вообще феерично.
  • Инициализация Flask'a в классе?

    @antonksa
    В класс выделяют сущности, имеющие собственные особенности. Не знаю чем вас не устраивает то, что у вас функции уже в одном модуле. А в try/except можно обернуть первую вызывающую функцию в цепочке. Меня сильно смущает куча статичных методов, это говорит о том, что вы не понимаете что делаете.

    Ошибка же однозначная, и каждый раз читая вопросы я не могу понять, откуда вы (вопрошающие) берете свои выводы. Вот вы пишете "Я так понимаю, оно просит инициализацию класса" при том, что перевод на русский текста ошибки звучит: "event_handler () отсутствует 1 обязательный позиционный аргумент: 'self'".

    Это значит что при вызове функции в нее не были переданы обязательные позиционные аргументы.
    Почему?
    Потому что вы используете магию питона, но не думаете при этом.
    Вот вы использовали декоратор, вас не удивляет то, что фласк потом использует этот метод для исполнения его при запросах? Декоратор делает эту магию.

    При компиляции файла питон выполняет декоратор (который является функцией) передавая декоратору как аргумент декорируемую функцию. Фласк регистрирует функцию как хендлер запроса при таком-то раутинге (урле). Только после того как это уже произошло питон создает экземпляр класса Bot и что-то там в нем дергает. Фласк ничего не знает о том, что event_handler это функция класса и тем более не подозревает, что вы желаете чтобы он вам туда пропихнул экземпляр бота, тем паче который ему неоткуда взять.

    Вам необходимо переписать это так, если вам так сильно хочется иметь класс:
    class Bot:
        ...
    
    bot = Bot()
    
    @app.route("/", methods=['POST', 'GET'])
    def event_handler() -> str:
        try:
            return bot.handle_event()
        except VkBotExceptions as e:
            raise RuntimeError("Fuck!")
    
    if __name__ == '__main__':
      bot.start()
  • Зачем существует rollback()?

    @antonksa
    Тупорылейший вопрос. Так себе аргумент, потому что "обе операции откатятся". И что? Не будет зарегистрирован штраф? Не будет проведен платеж? Не будет сохранена запись о приеме врача? Не будет сохранена запись о назначенных лекарствах?
  • Почему сервер на Docker не справляется с aiohttp запросами?

    @antonksa
    kkolorid, поможет в диагностировании "чего"? Вам уже написали ответ, библиотека кривая, с синхронными вызовами в асинхронном коде. Это как автомобиль с квадратными колесами или почта России с одним сотрудником и очередью из 500 получателей китайского ширпотреба с Али. Я бы на вашем месте отметил ответ Максим как решение и забыл/забил. Надеюсь Вы не хотите чтобы мы вам эту либу переписывать тут в комментах начали?
  • Как сделать при debug = false?

    @antonksa
    Сергей Горностаев, вот не соглашусь. Я стараюсь "не" не использовать. Лично я плохо это читаю, в таком случае я лучше напишу "is False" потому что это намного однозначнее. Но это мои личные заморочки, хоть и выросшие из опыта программирования с 1994 года.
  • Как сделать при debug = false?

    @antonksa
    Dr. Bacon, ой да ладно, я поначалу тоже так делал, не надо пугать человека, это больше вопрос перфекционизма.
  • Как запустить cURL асинхронно asyncio python?

    @antonksa
    AlexBoss, это удобно пока не выскочит непредусмотренный эксцепшн и вся логика не сфейлится, что в asyncio происходит с печальной регулярностью. Aiohttp хотя бы Светлов писал, понимая что он делает.
  • Как установить redis-py?

    @antonksa
    Вы предлагаете использовать pip, а я, как видите, пользуюсь pipenv.


    И что, разве имя пакета от этого зависит? А в целом, спасибо что читаете то, что вам отвечают. После ваших комментариев и комментариев похожих на вас, тратить свое время жмакая клавиатуру ради помощи не пойми кому вообще пропадает. Желаю удачно и долго помучиться.
  • Как сделать замену букв в слове?

    @antonksa
    Так контент менеджеры из документации этот вопрос и сгенерили. Я сомневаюсь, что мог возникнуть человек с такой тупорылой задачей.
  • Не могу найти ошибку в программе, хотя она работает?

    @antonksa
    Елена Юровская,
    И вообще, не отнимайте моё время, пожалуйста.

    Хочется просто на %$# послать после таких заявлений.
  • Pycharm выполнение файла остановилось из-за перегрузки пк. Как можно его возобновить без перезапуска?

    @antonksa
    Лажа, так не бывает. И при чем здесь ЦП, хоть 386 бы стоял, неделю бы выполнялось, но в итоге выполнилось. Зависнуть может только из-за бесконечного цикла. Нужно проверять код. Возможны слишком глубокие рекурсии.
  • Как в django-summernote проверить на пустоту?

    @antonksa
    На сервере проверку делать обязательно ВСЕГДА. Представьте что у вас нет клиента. Представьте, что вы поставляете услуги сторонним юзерам, которые могут передать что угодно, любую белиберду с любыми ошибками. Это одно из правил разработки хорошего бекенда.
  • Как создать интернет-магазин(Система: Общепит. Доставка еды)?

    @antonksa
    Антон Р., Судя по "техническому заданию" это именно то, чего ожидает ТС.
  • Как правильно вычесть месяц из datetime.now()?

    @antonksa
    Андрей Шубин, С ними все нормально, просто в них НЕ 30 дней.
  • Как правильно вычесть месяц из datetime.now()?

    @antonksa
    >>> from datetime import date
    >>> from dateutil.relativedelta import relativedelta
    >>> one_month = date.today() + relativedelta(months=-1)
    >>> one_month
    datetime.date(2019, 10, 16)


    Отлично, маэстро!
  • Как правильно вычесть месяц из datetime.now()?

    @antonksa
    Senior Workaround Developer по ходу не знает про январь, февраль, март, май, июль и так далее.
  • Python-ограничений действительно медленно?

    @antonksa
    Думаю стоит пригласить эксперта. Желательно со святой водой и экспресс-тестом на наркотики.
  • Куда вставить таймер Python чтобы работало?

    @antonksa
    Срапи, это пять. Скарпи у ТС это четыре с плюсом. Ребят, вам так лень переключить раскладку? Задолбали со своими англицизмами.

    Что до сабжа, то во-первых, если Дарья верно скопировала разметку, то у нее тред создается прямо при компиляции класса, это что-то новенькое в программировании. Во-вторых, как было верно указано в комментах (а в каких кстати комментах, т.к. я вижу один комент, в котором _ ссылается на другие коменты... в прочем не важно, сбой в матрице), так вот Scrapy только грузит HTML и уж тем более он не исполняет JS. Это отдельная большая тема, и очень больная, если прям действительно так хочется, то нужно гуглить Selenium.