autocommit 13-07-2024-10-27

This commit is contained in:
Jasen Qin 2024-07-13 10:27:54 +10:00
parent 2709da5594
commit 7eb6f8f5e8
3 changed files with 19 additions and 18 deletions

2
py-kivy/poetry.lock generated
View File

@ -2308,4 +2308,4 @@ files = [
[metadata]
lock-version = "2.0"
python-versions = "^3.12"
content-hash = "210871253d8b131828bd0a0fe119fcb8486fd5ffd0b10caafbdab7a8eb6533f3"
content-hash = "e206ba057f9668e090364cc695646a317f0896de3d81b60e05450b7498324d84"

View File

@ -2,31 +2,31 @@ from pydantic import BaseModel, Field, EmailStr, validator
from typing import List, Optional
from datetime import datetime
from bson import ObjectId
from pydantic import ConfigDict
from typing import Any, ClassVar
class PyObjectId(ObjectId):
@classmethod
def __get_validators__(cls):
yield cls.validate
@classmethod
def validate(cls, v):
if not ObjectId.is_valid(v):
raise ValueError("Invalid objectid")
return ObjectId(v)
@classmethod
def __modify_schema__(cls, field_schema):
field_schema.update(type="string")
def __get_pydantic_core_schema__(
cls, _source_type: Any, _handler: Any
) -> Any:
from pydantic_core import core_schema
return core_schema.json_or_python_schema(
python_schema=core_schema.is_instance_schema(ObjectId),
json_schema=core_schema.StringSchema(),
serialization=core_schema.to_string_ser_schema(),
)
class MongoBaseModel(BaseModel):
id: Optional[PyObjectId] = Field(default_factory=PyObjectId, alias="_id")
id: PyObjectId = Field(default_factory=PyObjectId, alias="_id")
class Config:
allow_population_by_field_name = True
arbitrary_types_allowed = True
model_config = ConfigDict(
populate_by_name=True,
arbitrary_types_allowed=True,
json_encoders={ObjectId: str}
)
class Item(MongoBaseModel):

View File

@ -16,6 +16,7 @@ pytest = "^8.2.2"
python-jose = "^3.3.0"
passlib = "^1.7.4"
pydantic = "^2.8.2"
[tool.poetry.group.dev.dependencies]
ipykernel = "^6.29.5"