Saltar a contenido

commons

app.utils.commons

Módulo de Python para validaciones comunes.

validate_email(email)

Utiliza una regex para validar emails, esta función no admite alias.

Parameters:

Name Type Description Default
email str

el string del email a validar

required

Returns:

Type Description
bool

el resultado de la validación ó False en caso de error

Examples:

...
validate_email("user@example.com")

validate_phone_number(phone)

Utiliza una regex para validar números de teléfono.

Parameters:

Name Type Description Default
phone str

el string del teléfono a validar

required

Returns:

Type Description
bool

el resultado de la validación ó False en caso de error

Examples:

...
validate_phone_number("+001234567890")

is_iterable(value)

Valida si el objeto entrante es un tipo de iterador(tuple, list)

Parameters:

Name Type Description Default
value Any

el objeto a validar

required

Returns:

Type Description
bool

el resultado de la validación ó False en caso de error

Examples:

is_iterable(['a', 'b'])

object_to_xml(data, root='root')

Una función recursiva, que intenta convertir un diccionario, en un objeto de tipo XML, en caso de un error, devolverá None.

Parameters:

Name Type Description Default
data Any

el diccionario a ser convertido en un objeto XML

required
root str

un string que define la etiqueta principal del XML, por defecto root

'root'

Returns:

Type Description
str | Any

la representación en formato string de un elemento XML o None en caso de error

Examples:

result = object_to_xml({"hello": "world"})

flatten_list(fat_list)

Permite "aplanar" una lista de elementos de forma eficiente, y con varios niveles de anidamiento.

Notes
  • la lista debe ser de tipo tuple ó list.

Parameters:

Name Type Description Default
fat_list list[Any]

una lista de elementos a aplanar

required

Returns:

Type Description
list[Any]

la lista de elementos "aplanada" ó None en caso de error

Examples:

my_list = [1, 2, 3, [4, 5, 6, [7, 8, 9, [10, [11, [12]]]]]]
result = flatten_list(my_list)

gen_random_number(max_num)

Genera un número aletatorio criptograficamente seguro, utilizando secrets.

Parameters:

Name Type Description Default
max_num int

el valor máximo a tener en cuenta, al momento de generar el número aleatorio

required

Raises:

Type Description
ValueError

en caso de que el valor máximo sea menor que 1

Returns:

Type Description
int

el número aletatorio ó None en caso de error

Examples:

...
gen_random_number(50)

allowed_files(filename, allowed_extensions)

Valida una lista de extensiones de archivos.

Parameters:

Name Type Description Default
filename str

el nombre del archivo a validar

required
allowed_extensions list[str]

la lista de extensiones

required

Returns:

Type Description
Optional[tuple[bool, str]]

una tupla con el resultado de la validación y la extensión del archivo

Examples:

status, ext = allowed_files("/path/to/file.ext", ["txt","csv","zip"])

remove_sp_chars(dirty_str)

Elimina caracteres especiales, acentos, diacríticos y cualquier otra cosa que no esté en el alfabeto inglés (a-z, A-Z, ) de una cadena. Reemplaza los caracteres especiales encontrados por un guión bajo ('').

Parameters:

Name Type Description Default
dirty_str str | list[str]

La cadena ò lista de caracteres a procesar

required

Returns:

Type Description
Optional[str | list[str]]

La cadena ó lista con los caracteres especiales eliminados

Examples:

1
2
3
4
5
remove_sp_chars("Hola, mundo! ¿Cómo estás?")

# ó de la forma

remove_sp_chars(["Hola, mundo!", "¿Cómo estás?"])

create_name_from_email(email)

Genera un nombre a partir de un email. El nombre se genera eliminando cualquier caracter especial antes de '@', y luego capitalizando la primera letra de cada palabra resultante.

Parameters:

Name Type Description Default
email str

el email

required

Returns:

Type Description
Optional[str]

devuelve un nombre derivado del email ó None en caso de error