darwinpython, а если почитать свой код?
if msg is None:
Значит, код ниже выполнится только если msg - None. И в коде ниже ты обращаешься к msg.author.mention. Которого не может существовать, потому что msg - None.
От себя добавлю - ряд функций WinAPI для работы с файлами позволяет указать 64битный размер файла (или смещение внутри файла) как два 32битных целых (младшие и старшие 4 байта).
mkone112, интерпретатор питона вообще игнорирует type hints при работе, если только код явно не использует reflection чтобы их просмотреть. Собственно, даже runtime checkable протоколы в итоге содержат пачку if, проверяющих наличие нужных методов и полей в объекте.
Так что вариантов-то особо и нет, учитывая что дженерики нельзя быстро проверить через isinstance(). Вместо этого придётся разбирать параметры дженерика и проверять всё по отдельности, что абсолютно не универсально и очень муторно.
mkone112, почитай внимательно примеры по ссылке. Оно позволяет зарегистрировать разные варианты одной функции в зависимости от типа её первого аргумента. Затем вызываешь "корневую" функцию, и она уже вызовет правильный вариант в зависимости от фактически переданного типа. Довольно ограниченно, но уже полезно.
Если это тебе категорически не подходит (например, нужно позарез чтобы были разные вторые или еще какие аргументы), то тут только один совет. Цепочку ifов обычно можно отрефакторить в список/словарь функций.
InnsmouthFisherman, да что угодно, хоть бы отладочный print(). Элементарную отладку проведи! Я навскидку могу назвать три точки отказа: onClicked() не вызывается когда надо; она вызывается, но условие в if не выполняется; условие в if выполняется, но вызов setText() не даёт эффекта. Тебе нужно понять, с какой из этих трёх проблем ты имеешь дело. А уж как, отладочными принтами, или пошаговой отладкой в твоей среде разработки, или ещё как, дело десятое.
Тааааак. Значит, description - это было не присваивание переменной, а именованный параметр?
Ну ты вообще хоть что-то в питоне понимаешь, или только копипастишь готовый код по кусочкам?
В общем, учи основы языка. Сначала находишь все нужные значения, в т.ч. score_row, а потом уже конструируешь свой Embed.
даник, ну так учись, что тут еще скажешь. И вообще, тебе точно нужно peewee? Для того функционала, который я тут вижу, достаточного голого sqlite3. Реализуй нужное на нём?
Всё-таки чтобы пользоваться ORM-библиотеками типа peewee, нужно иметь представление о том, что они делают под капотом.
novihcok, какая версия питона используется? Если убунта старая, там может быть вообще питон 2.7 по умолчанию - а в нём imput() ведёт себя не так.
И да, в системе может быть установлено более одного интерпретатора питона разных версий.
mkone112, ну гипотетически ты можешь проанализировать вызывающий байткод, посчитать количество STORE_FAST после UNPACK_EX, и вернуть нужное количество значений. Но мороки будет немеряно, так как слишком много вариантов вызова твоей функции существует.
mkone112, значит, распаковка - не решение. Нужно подойти к решению проблемы с другой стороны.
Если тебе нужен метод, который возвращает разное число значений в зависимости от способа вызова - значит, это должно быть несколько методов. Скажем, приватная реализация, которая возвращает всё, и несколько публичных оберток, которые вызывают реализацию и возвращают только нужное.
Ну или не париться, возвращать namedtuple(), и пусть вызывающий код делает с ним что хочет.
if msg is None:
Значит, код ниже выполнится только если msg - None. И в коде ниже ты обращаешься к msg.author.mention. Которого не может существовать, потому что msg - None.