• Как решить disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'str' object has no attribute 'astimezone'?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Перестаньте спамить создавая новые вопросы. Вам задали разумные вопросы в прошлом вопросе, вы не отвечая на них плодите новый.

    Проблема решается отключением перехвата ошибок на уровне библиотеки и чтением полного трейса ошибки.
    Написано
  • Как запустить несколько ботов в докере?

    fenrir1121
    @fenrir1121
    Paymir121,
    Пока отрабатываю вариант, что запускаю n процессов, с вечным ожиданием изменений общей переменой
    Для отдельных процессов не существует общих переменных. Новый процесс содержит свое пространство памяти.
    Для общения необходимо использовать очереди, каналы или иной вид взаимодействий.
    Написано
  • Как работает запуск корутин в asyncio?

    fenrir1121
    @fenrir1121
    3FANG,
    Мы переходим в функцию sleep(), там она стопится, т.е. входит в состояние ожидания результата, контроль выполнения возвращается в функцию waste_time()
    . Сразу нет. Мы не возвращаемся в waste_time.
    Смотрите, все что делает await - проверяет выполнение и не дает выполняться последующему коду, пока объект сопрограммы не будет завершен.

    Давайте рассмотрим в каком порядке выполняется ваш код:
    1) Создаем 10 тасок, затем заходим во второй цикл, печатаем слово "старт" и затем натыкаемся на await
    2) Теперь пока он не вернет значение. мы переходим к другой задаче в цикле событий
    3) Мы попадаем в случайную таску, печатаем Start work..., затем натыкаемся на await, теперь пока он не вернет значение. мы переходим к другой задаче в цикле событий
    ...
    12) Как только в каждой задаче завершается выполнение sleep печатается End work!, а объект сопрограммы помечается как завершенный. Отмечу, он все еще существует, просто помечен что он завершен и может вернуть результат (в твоем случае None).

    13) Тут нам могло повезти и если первой выполнялась первая же задача она могла бы напечатать "финиш" до того как прошли все End work!
    14) Дальше цикл проходит еще по 9 задачам, но await task ничего не делает, потому что весь код в них уже ранее выполнился, а сами они ничего не возвращают.

    Попробуй вот такую модернизацию, может так станет понятнее
    async def waste_time(i):
        print(f"Start {i} work...")
        await asyncio.sleep(2)
        print(f"End {i} work!")
        return i  // затем попробуй убрать этот return
    
    async def main():
        tasks = []
        for i in range(1, 10):
            task = asyncio.create_task(waste_time(i))
            tasks.append(task)
        
        for task in tasks:
            print('start')
            print(f'task: {await task}')
            print('end')
    Написано
  • Как работает запуск корутин в asyncio?

    fenrir1121
    @fenrir1121
    3FANG,
    Разве он не должен идти в таком порядке
    Нет не должен.
    У тебя создается 10 задач, которые одновременно ожидают 2 секунды, после этого ты заходишь во второй цикл, пишешь старт и ожидаешь пока первая задача завершится. Сразу за ней заканчивают выполнение все остальные задачи и пишут свой текст, после чего ты еще 9 кругов гоняешь цикл с уже выполненными задачами. await отпускает цикл выполнение и позволяет переключиться на другую задачу в цикле, но все задачи уже завершены так что он ничего не делает
    Написано
  • Где найти открытую или спарсить БД туристических (коричневых) знаков, которые стоят повсеместно на дорогах?

    fenrir1121
    @fenrir1121
    Судя по этой статье предположу что их делает руководство подобных мест и единой базы просто нет. Вот компания, которая их делает под заказ, может получится с ними договориться и взять у них имеющиеся наработки.
    Написано
  • При запуске import discord выдает ошибку, как исправить?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Вероятно вы это делали в виртуальной среде. Или за вас ее запускал pycharm
    Написано
  • Как запустить несколько ботов в докере?

    fenrir1121
    @fenrir1121
    Paymir121, она работает до первых вычислительных задач. Потоки в питоне выполняются внутри одного процесса при помощи переключения между ними. Любые операции занимающие много времени заставят другие потоки ожидать освобождения GIL'а. Да этот тот самый случай, когда GIL на что-то влияет.

    У вас бонусом еще намешаны потоки и асинхронщина, так что получается вообще лютый коктейль.
    Написано
  • Как запустить несколько ботов в докере?

    fenrir1121
    @fenrir1121
    Paymir121, текущая логика в репе нормально работать не будет никогда. Вы пытаетесь запускать ботов внутри одного процесса. Мало того что такой запуск не предусмотрен используемой библиотекой, выполнение любых вычислений в одном боте, будет подвешивать всех остальных.
    Как ниже отписано в другом ответе для подобной логики нужен мультипроцессинг, либо боты должны разворачиваться независимо, а над ними должен быть оркестратор. В общем не зачет вашему айти-акселератору, пусть объясняют про потоки, асинхронность и процессы, вы пока пытаетесь зайти в дом через дымоход.
    Написано
  • Примеры коммерческих приложений на Python с GUI на macOS?

    fenrir1121
    @fenrir1121
    Drovosek01, коммерческое приложение - приложение направленное на получение прибыли.

    Сложности с запаковкой, простота взлома, тяжелый вес, низкая скорость и отсутствие возможности сделать нормальный дизайн позволяют максимум делать очень простые утилиты и пускать их в опенсорс.
    Написано
  • Как сделать мультиплеер в ursina engine?

    fenrir1121
    @fenrir1121
    Вопросы "как сделать" здесь не рассматриваются. Как вы пытались сделать и что не получилось?

    Прочитайте документацию, ознакомьтесь с теорией.
    После этого разбейте задачу на технические подзадачи, напишите их реализующий код. Если он будет работать не так, как вы ожидали возвращайтесь с ним сюда.
    Написано
  • Что лучше сейчас использовать для написания discord bot?

    fenrir1121
    @fenrir1121
    nikto_211, если вы судите по звездочкам на гитхабе и контрибьюторам - на вершине только discord.py.

    Судя по вопросам тут и другим профильным чатам у нас pycord почти никто не использует. Именно в русскоязычном сегменте преобладает disnake. В частности у него единственного есть переведенный на русский очень подробный гайд, которым можно в целом закрывать где-то 90% потребностей стандартных ботоделов. И у них единственных есть околоживой сервер с вопросами-ответами. Не англоязычный сервер с русской веткой, а именно отдельный только русскоязычный.

    Так что если рассматривать с точки зрения новичка, я советую выбирать между дискордом и диснейком.
    Написано
  • Проблемы в загрузке кога?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Влад П, в этом случае запишите решение в Ответах и отметьте его решением для других пользователей, которые могут прийти в этот вопрос через поиск.
    Написано
  • Проблемы в загрузке кога?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Визуально проблем не видно. IDE не подсвечивает проблем с отступами или символами в ошибочной кодировке?
    Написано
  • Как изменить inline кнопки при нажатии telebot?

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

    def unpacking_values(value_str: str):
        move, dict_str, set_str, *_ = value_str.split('-')
        all_moves_set = set(set_str)
        values_dicts = [{str(i): dict_str[i - 1] for i in range(1, 10)} for _ in range(10)]
        return move, values_dicts, all_moves_set
    Написано
  • Как проверить и заменить индексы в словаре?

    fenrir1121
    @fenrir1121
    Оставлю тут вариант без апдейта.
    x = {'a': 1, 'b': 2}
    y = {'b': 'hello', 'c': 'world'}
    x = {**x, **y}  // {'a': 1, 'b': 'hello', 'c': 'world'}
    Написано
  • Противоречит ли импортозамещению?

    fenrir1121
    @fenrir1121
    где то подтверждение в каких то списках росреестра увидеть
    Работает принцип белого списка, а не черного. Ну и образ на docker.elastic.co из РФ недоступен, что немного намекает.
    Но вообще вопрос решается с безопасниками. Если в компании таких нет, значит можно, если их, то им и решать. Код же опенсорсный. Забрали себе во внутренний контур и используете.
    Написано
  • Как отправлять почту Python без использования сторонних SMTP?

    fenrir1121
    @fenrir1121
    plx49638, библиотека smtplib, она входит в стандарт.
    Но как вам выше объяснили ни на одну популярную почту вы так письмо не отправите.
    Написано
  • Как передать автора модального окна в view?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    prostovladikxd,
    answer_message = await channel.send(embed=embed, view=modroleView())  # созданное сообщение
    print(answer_message.components) #  объекты созданного сообщения

    Дальше смотрите сами. Вероятно components даже не нужны. Просто сохраняете связку answer_message.id - interaction.author в БД и затем проверяете айдишник сообщения с нажатой кнопкой и он будет вести на автора.
    Написано
  • Как вывести значок профиля в команде userinfo на библиотеке disnake?

    fenrir1121
    @fenrir1121
    Tiubert, в вашем случае список лежит в ctx.author.public_flags, у него есть метод all(), возвращающий список или по нему можно итерироваться.
    Все это описано в документации, ссылку на которую я выше приложил.
    Написано