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

View File

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