Pull to refresh
13
0
Даниил Данилкин @daniel-daniels

Python Software Developer

Send message

Так полагаю, речь в статье об асимптотической сложности в первую очередь, а не в разнице реализаций на чистом Питоне и на С (на всякий случай поясню, что под реализацией на С имею ввиду реализацию, собственно, NumPy \кеп).

Tl;DR отсутствие проверяемого атрибута - штатная ситуация. Property он или нет, сути не меняет

Ответ в первом абзаце https://www.python.org/dev/peps/pep-0622/#id60

А можно забыть её изменить, или же не уследить за каким-нибудь джуниором, и в итоге получаем баг в проекте, который мог бы быть отловлен через mypy, но не будет отловлен, потому что у разработчиков Pydantic тараканы.

+1


Очень мешают заявления разработчиков, что это не баг, а фича. Висел бы issue с лейблом ...

Дайте, пожалуста, ссылку, может получится поучаствовать.

Определение вида signup_ts: datetime = None вполне используемо, если при отсутствии явного значения при создании модели требуется вытащить его из соседних полей.


Но есть маленькое "но" с которым я полностью согласен: в документации ничего такого не происходит, что не есть правильно. Особенно не правильно поведение из коробки, при котором значение по умолчанию будет взято без валидации. К счастью, это можно изменить через конфигурацию модели.


Своим предыдущем комментарием я хотел напомнить, что такие разногласия — результат столкновения идеологии типов и банальной утилитарности, а также о том, что в мире Питона есть ещё много нерешённых вопросов на данную тему. Так что говорить о "тараканах в головах разработчиков Pydantic" — лишнее. В конце концов никто не мешает законтрибутить в этот хороший проект.

Не всё так просто, т.к. в настоящее время тайпинг Питона плохо отражает то, что происходит в рантайме. Особенно это касается интерпретации "значений по умолчанию", объявленных в теле класса. К примеру, "dataclasses" и "attr" имеют особые объявления полей с использованием семантики "значения по умолчанию" и функции field. Есть ещё descriptor protocol, хитрые инициализации аттрибутов экземпляра итд.


Есть по данной теме обсуждение на гитхабе, где Гвидо посоветовал использовать плагины для mypy для разрешения подобных ситуаций.

У меня падает с urllib3.exceptions.ReadTimeoutError, у других может с другой ошибкой. Так или иначе, они все будут связанны с urllib3, т.к. она pip-ом используется для скачивания пакетов

Тут на хабре была статья, где описывался судебный прецендент, который подтверждает позицию РКН

Единственное, что похожее нашёл у них на сайте, вот эта страница секция Подать заявку о разблокировке интернет-ресурса

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity