types
app.common.types
Algunos tipos comunes.
Se crean tipos especiales de variables que se extienden de pydantic, sirven como ejemplo para construir tipos de datos personalizados y ofrecer un validador alterno.
Tipos de datos nuevos en este módulo:
- Latitude
- Longitude
- Coordinates
- Phone
- DefaultFieldList
- DefaultSearchDto
- DefaultDeleteDto
- DefaultMetaDto
Para más información, te recomendamos leer la documentación del Proyecto.
- https://pydantic-docs.helpmanual.io/usage/model_config/
- https://blog.frank-mich.com/creating-a-pydantic-model-for-gis-polygons/
- https://pydantic-docs.helpmanual.io/usage/model_config/#alias-generator
- https://python.astrotech.io/fastapi/pydantic/types-pydantic.html
ExtrictBaseModel
Bases: BaseModel
Esta clase se extiende de BaseModel(pydantic)
y permite definir validaciones extras y restricciones que serán heredadas a las clases, en las cuales se utilice.
Notes
cada clase que se extienda de ExtrictBaseModel
:
- no permite campos extras.
- permite asignar valores por los alias.
- valida la asignación de valores según el tipo de dato.
- es mutable y admite la asignación de elementos.
- el valor de la propiedad de los enums, es asignado a las propiedades, esto puede ser útil si se quiere serializar, utilizando
model.dict()
más tarde. - se eliminan los espacios en blanco iniciales y finales de los strings y bytes.
Examples:
Latitude
Longitude
Coordinates
Email
Phone
DefaultFieldList
Bases: BaseModel
Define una lista de elementos, pero no valida el contenido interno de los mismos.
Notes
para la lista de elmentos:
1 2 3 |
|
cada elemento de la lista debe tener:
1 2 3 |
|
DefaultSearchDto
Bases: ExtrictBaseModel
Una clase para validar ciertos datos de entrada (request body)
Warning
No realiza ninguna validación de los valores ó tipos de datos, dentro del campo filters_, así como de la cantidad de elementos enviados.
Notes
- fields: espera el string
all
ó una lista de elementos (veaseDefaultFieldList
) - limit: un valor entero entre
1
y500
- filters: un objeto (diccionario) con restricciones en los nombres de las llaves:
- minimo 2 caracteres
- maximo 25 caracteres
- solo cadenas de caracteres
DefaultDeleteDto
Bases: ExtrictBaseModel
Valida el id interno de cada objeto de la base datos.
Notes
Las clases en python establecen los guiones bajos como atributos privados, asi que se usa un alias.
https://docs.pydantic.dev/1.10/usage/models/#private-model-attributes