ru_python_beginners | Unsorted

Telegram-канал ru_python_beginners - Python beginners

14447

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981

Subscribe to a channel

Python beginners

Я сталкивался, что тайп игноры часто взрывают mypy

Читать полностью…

Python beginners

Вот когда у тебя там их десятки, и логика допустимости пар выразима только логикой, то тогда пизда.

Читать полностью…

Python beginners

Вообще сколько вариаций пар типов там у тебя?

Читать полностью…

Python beginners

Сейчас подумал, твою проблему можно в теории решить, если ты добавишь ещё один Generic тип, чисто по сути контейнер для пары аргументов и тогда из него можно будет достать и X и Y, принимать правда придется его в аргументах инициализатора

Читать полностью…

Python beginners

Но опять же допускаю случаи, где нельзя. Вот например conditional types очень хочется

Читать полностью…

Python beginners

Знаю как это сложно)

Читать полностью…

Python beginners

Я сейчас работаю над фреймворками. Пришел к такой технике, что надо придерживаться парадигмы gradual typing в питоне, когда у тебя есть уровень пользовательский, и внутренний. На внутренней реализации юзаем какие угодно типы, покрываем их тайпхинтами, на уровне интерфейса с пользовательской частью врем тайпчекеру используя cast и делаем типизированный интерфейс. Но этот подход работает если тебе нужна динамика для реализации всяких DSL, синтаксических сахаров и подобного. В моем случае подход сработал идеально, потому что пишу библиотеку для фабрик и DI.

Читать полностью…

Python beginners

ему уже занесли его аннотейт

Читать полностью…

Python beginners

Иронично что выглядит реально элегантно. Я бы использовал хз

Читать полностью…

Python beginners

у меня много динамики никакой тайпчекинг тут не поможет

Читать полностью…

Python beginners

извратился и написал type: ignore

Читать полностью…

Python beginners

Грустна, но соглашусь

Читать полностью…

Python beginners

Другого варианта нет. В тайпинге питона нет conditional types

Читать полностью…

Python beginners

@dataclasses.dataclass
class Var[X: (int, str), Y: (str, int)]:
x: X
y: Y

if typing.TYPE_CHECKING:

@typing.overload
def __init__(self, x: int, y: str) -> None: ...
@typing.overload
def __init__(self, x: str, y: int) -> None: ...
def __init__(self, x: int | str, y: str | int) -> None: ...




🙂

Читать полностью…

Python beginners

Какая сейчас самая нормальная либа для ТГ ботов?

Читать полностью…

Python beginners

Или забить, юзер этот код все равно не видит.

Читать полностью…

Python beginners

Ну на две можно и перегрузку написать

Читать полностью…

Python beginners

Но тут на самом деле получается почти тоже самое как и перегрузки лепить

Читать полностью…

Python beginners

Ну вот у меня квери билдер сейчас и само собранное квери будет обрабатываться пользовательским кодом

Читать полностью…

Python beginners

Но у меня пока получилось везде извернуться

Читать полностью…

Python beginners

Но это не всегда получается

Читать полностью…

Python beginners

Нет, здесь я указываю не метаданные, а уточняю типы для создания. Не вижу ничего плохого

Читать полностью…

Python beginners

Похоже на идеи тианголо с typing.Doc в сигнатуре функций

Читать полностью…

Python beginners

Если нужен только поллинг, можно самому запросы писать

Читать полностью…

Python beginners

Ну у тебя это может иметь последствия на дерево тайпчекинг модуля. Иногда игноры его сильно ломают

Читать полностью…

Python beginners

Но по моему опыту это ещё хуже чем перегрузки написать

Читать полностью…

Python beginners

Ну можешь разве что извратиться и попробовать написать плагин mypy

Читать полностью…

Python beginners

Только перегрузки инита

Читать полностью…

Python beginners

не то, чтобы критично откусывает от производительности, но все равно как будто неприятно.

Читать полностью…

Python beginners

ну то есть ты добавляешь бесполезную проверку, и на каждый вызов проверяешь возвращаемое значение.

Читать полностью…
Subscribe to a channel