11#!/usr/bin/env python3
22# -*- coding: utf-8 -*-
33from datetime import datetime
4- from typing import Optional , Any , Union , Set , Dict
4+ from typing import Any , Union , Set , Dict
55
66from fastapi .encoders import jsonable_encoder
77from pydantic import validate_arguments , BaseModel
88
9- _JsonEncoder = Union [Set [Union [ int , str ]] , Dict [Union [ int , str ] , Any ]]
9+ _JsonEncoder = Union [Set [int | str ], Dict [int | str , Any ]]
1010
1111__all__ = ['ResponseModel' , 'response_base' ]
1212
@@ -18,7 +18,7 @@ class ResponseModel(BaseModel):
1818
1919 code : int = 200
2020 msg : str = 'Success'
21- data : Optional [ Any ] = None
21+ data : Any | None = None
2222
2323 class Config :
2424 json_encoders = {datetime : lambda x : x .strftime ('%Y-%m-%d %H:%M:%S' )}
@@ -31,9 +31,7 @@ def __encode_json(data: Any):
3131
3232 @staticmethod
3333 @validate_arguments
34- def success (
35- * , code : int = 200 , msg : str = 'Success' , data : Optional [Any ] = None , exclude : Optional [_JsonEncoder ] = None
36- ):
34+ def success (* , code : int = 200 , msg : str = 'Success' , data : Any | None = None , exclude : _JsonEncoder | None = None ):
3735 """
3836 请求成功返回通用方法
3937
@@ -48,13 +46,13 @@ def success(
4846
4947 @staticmethod
5048 @validate_arguments
51- def fail (* , code : int = 400 , msg : str = 'Bad Request' , data : Any = None , exclude : Optional [ _JsonEncoder ] = None ):
49+ def fail (* , code : int = 400 , msg : str = 'Bad Request' , data : Any = None , exclude : _JsonEncoder | None = None ):
5250 data = data if data is None else ResponseBase .__encode_json (data )
5351 return ResponseModel (code = code , msg = msg , data = data ).dict (exclude = {'data' : exclude })
5452
5553 @staticmethod
5654 @validate_arguments
57- def response_200 (* , msg : str = 'Success' , data : Optional [ Any ] = None , exclude : Optional [ _JsonEncoder ] = None ):
55+ def response_200 (* , msg : str = 'Success' , data : Any | None = None , exclude : _JsonEncoder | None = None ):
5856 data = data if data is None else ResponseBase .__encode_json (data )
5957 return ResponseModel (code = 200 , msg = msg , data = data ).dict (exclude = {'data' : exclude })
6058
0 commit comments