170 похожих чатов

Привет Возможно ли в питоне генерировать всевозможные сочетания типов по словарю? type_tests=[int,bool,float,str,None

,list[bool] ,list[list[bool]]
,list[int] ,list[list[int]]
,list[float] ,list[list[float]]
,list[str] ,list[list[str]]

,set[bool] ,set[set[bool]]
,set[int] ,set[set[int]]
,set[float] ,set[set[float]]
,set[str] ,set[set[str]]

,list[set[bool]] ,set[list[bool]]
,list[set[int]] ,set[list[int]]
,list[set[float]] ,set[list[float]]
,list[set[str]] ,set[list[str]]

,dict[int,int] ,dict[set[list[bool]],int]
,dict[int,str] ,dict[str,dict[int,str]]
,dict[str,int] ,dict[list[set[str]],float]
,dict[int,str] ,dict[int,dict[float,list[str]]]

,tuple[int,bool,float,str,None]
,tuple[list[str],set[dict[list[int],set[str]]]]

,Union[int,bool,float,str,None]
,Union[dict[str,list[int]],list[set[int]]]]

20 ответов

29 просмотров

0_о

А для чего тебе?

️️-ॐ Автор вопроса
Pavel Павлик
А для чего тебе?

для валидатора kwargs ну и для тестирования разных других нужных тул в проекте есть некоторое семейство функций принимающих kwargs, развитие которых требует дофига чего и по этому в них встроена защита перво наперво функция вызывает кастомные ассерты того что в kwargs нет лишних ей параметров и о том что в kwargs все параметры указаны затем она проходит все типы всех параметров и сравнивает с требованиями (да жесткая типизация) затем она проходит по всем значениям и сравнивает их фактические типы с типами требований

️️ ॐ
для валидатора kwargs ну и для тестирования разны...

> в kwargs нет лишних ей параметров и о том что в kwargs все параметры указаны звучит как будто вам не нужен kwargs

️️-ॐ Автор вопроса
Tishka17
> в kwargs нет лишних ей параметров и о том что в ...

есть места где много параметров и их описания варьируются (состав, конкретные типы, опциональнось)

️️-ॐ Автор вопроса
Tishka17
и?

варьируются конфигурацией (которая фактически не доступна на этапе разработке, кроме тестовых вариантов)

️️ ॐ
для валидатора kwargs ну и для тестирования разны...

Как ассерты с типами связаны? isinstance(foo, list[int]) не работает

а как насчет этих типов? list[list[int]] list[list[list[int]]] list[list[list[list[list[list[list[list[list[list[list[list[list[list[list[in]]]]]]]]]]]]]]]

️️-ॐ Автор вопроса
Tishka17
а как насчет этих типов? list[list[int]] list[lis...

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

️️-ॐ Автор вопроса
Tishka17
а как насчет кастомных классов?

в том числе я не вписал их в пример

️️ ॐ
валидатор рекурсивный но в нем есть вроде управляе...

вот тебе задачка def foo(arg: list[int]): ... x: list[str] = [] foo(x) как ты собрался это проверять?

️️-ॐ Автор вопроса
️️ ॐ
types.get_origin() + types.get_args()

и что туда передать?

️️-ॐ Автор вопроса
Tishka17
и что туда передать?

[1,2,3.3] vs list[int] пофейлится на на сравнении третьего елемента грубо говоря там разные версии реализации для обхода значения и спецификации его типа есть def validate_nested_type(value: Any, param_type: Any, param_name: str) -> None: #... if not isinstance(value, typing.get_origin(param_type)): raise ValidationException(f"Type mismatch for parameter '{param_name}'.") #... и она у себя вызывает validate_nested_type себя же только передав типы вытащенные с get_args

️️ ॐ
[1,2,3.3] vs list[int] пофейлится на на сравнении ...

ты мой пример старательно игнорируешь

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта