autocommit 13-07-2024-10-27
This commit is contained in:
parent
2709da5594
commit
7eb6f8f5e8
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue