TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #397 · 12 ное.

Использование Pydantic сегодня стало нормой, и это правильно. Но иногда на ревью вижу, что используют его не всегда корректно. Например, метод BaseModel.model_dump() по умолчанию не преобразует стандартные типы, такие как datetime, UUID или Decimal, в простой сериализуемый для JSON вид. Тогда пишут кастмоный сериализатор для этих типов чтобы функция json.dump() не падала с ошибкой. import uuid from datetime import datetime from decimal import Decimal from uuid import UUID from pydantic import BaseModel class MyModel(BaseModel): id: UUID date: datetime value: Decimal obj = MyModel( id=uuid.uuid4(), date=datetime.now(), value='1.23' ) print(obj.model_dump()) # не подходит для json.dump # { # 'id': UUID('4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1'), # 'date': datetime.datetime(2025, 12, 12, 12, 12, 12, 111111), # 'value': Decimal('1.23') # } # добавляем свой кастомный сериализатор json.dumps(obj.model_dump(), cls=MySerializer) # { # 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1', # 'date': '2025-12-12T12:12:12.111111', # 'value': '1.23' # } В данном случае класс MySerializer обрабатывает datetime, UUID и Decimal. Например так: class MySerializer(json.JSONEncoder): def default(self, o): if isinstance(o, Decimal): return str(o) elif isinstance(o, datetime): return o.isoformat() elif isinstance(o, UUID): return str(o) return super().default(o) Специально для тех, кто всё еще так делает - в этом нет необходимости! Pydantic может это сделать сам, просто нужно добавить параметр mode="json". json.dumps(obj.model_dump(mode="json")) # { # 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1', # 'date': '2012-12-12T12:12:12.111111', # 'value': '1.23' # } #pydantic#libs

Резултати

Пронајдени 1 слични објави

Пребарај: #covenants

当前筛选 #covenants清除筛选
English Law Report

@enlawreport · Post #1110 · 05.04.2023 г., 12:52

🤝 Тут меня подписчик попросил рассказать о covenants. Я лучше объясню covenants в сравнительной перспективе с warranties и representations. 📍Covenants обычно используется для описания формальных обязательств, которые стороны принимают на себя в контракте. Это могут быть как действия, так и воздержание от действий. Например, продавец может согласиться передать товар покупателю, а покупатель может согласиться оплатить товар. Нарушение covenant может привести к ответственности за нарушение контракта. 📍Warranties, с другой стороны, это более конкретные гарантии, которые дается в контракте относительно определенных фактов или условий. Например, продавец может дать гарантию, что товар соответствует определенным стандартам или что он не имеет скрытых дефектов. Если эти гарантии не выполняются, покупатель может иметь право на компенсацию за убытки, понесенные в результате нарушения гарантий. 📍Representations, наконец, это заявления, которые делаются в контракте относительно определенных фактов или условий, но они не обязательно должны приводить к определенным юридическим последствиям. Например, продавец может заявлять, что он имеет право продавать товар, но это заявление не является гарантией или обязательством продавца перед покупателем. Если заявление оказывается ложным и приводит к убыткиям для покупателя, то покупатель может иметь право на компенсацию за убытки, но для этого ему нужно будет доказать, что он полагался на это заявление и что оно было ложным. ☝️Таким образом, можно сказать, что основное различие между covenants, warranties и representations заключается в том, что covenants - это формальные обязательства сторон контракта, warranties - это конкретные гарантии относительно определенных фактов или условий, которые могут привести к юридическим последствиям, если они не выполняются, а representations - это заявления о фактах или условиях, которые могут привести к юридическим последствиям, если они оказываются ложными и если они были представлены важными для заключения контракта. #Englishlaw, #EnglishLawReport, #covenants, #warranties, #representations