No project description provided
Project description
Core-Validator
ErrorSchema
Use core_validator.ErrorSchema if you don't know which format you're gonna use.
Quick Start
DTO
class CommentDto(BaseModel):
comment: str
post_id: int
owner_id: int
Add error source (error context)
class Source(BaseModel):
local: str
DTO Validator
@dataclasses.dataclass()
class CommentValidator(Validator[ErrorSchema[Source]]):
dto: CommentDto
@validate
async def test1(self):
post_ids = list(range(1, 10))
if self.dto.post_id not in post_ids:
self.context.add_error(
ErrorSchema(
code=ErrorCodeEnum.not_found.value,
message="Id doen't not exists",
detail=f"Post with id={self.dto.post_id} not found",
source=Source(
local="data/post_id",
),
)
)
@validate
async def test2(self):
owner_ids = list(range(1, 10))
if self.dto.owner_id not in owner_ids:
self.context.add_error(
ErrorSchema(
code=ErrorCodeEnum.not_found.value,
message="Id doen't not exists",
detail=f"User with id={self.dto.post_id} not found",
source=Source(
local="data/owner_id",
),
)
)
Use
async def function():
validator = CommentValidator(...)
errors = await validator.errors()
# or
await validator.validate() # raise ValidationError
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
core_validator-0.0.1.tar.gz
(5.4 kB
view hashes)
Built Distribution
Close
Hashes for core_validator-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a81ab0f91cee75138df6117881bc763fc98d00367b3e355b50cdc2ee43cfacd2 |
|
MD5 | 45f6cd7806fe31985375d15c2efbf5f0 |
|
BLAKE2b-256 | a450127d3cf65898318f64f3f0cd8180efffbe248729da89268df9388a7fe150 |