mexa package¶
Submodules¶
mexa.CurpField¶
Clase encargada del CURP
- class mexa.CurpField.CurpField[fuente]¶
Bases:
FieldInterface
CurpField, clase encargada de administrar el CURP, el cual lo representamos como:
>>> # ⌐------------------------------ id_nombre: 1ras letras 1er ap, 2do ap y nombre >>> # | ⌐----------------------- fecha_nacimiento: 6 digitos en orden AAMMDD >>> # | | ⌐------------------ sexo: un carácter el cual puede ser H ó M >>> # | | | ⌐-------------- entidad_federativa: codigo de 2 caracteres >>> # | | | | ⌐---------- consonantes_internas: 1er ap, 2d ap y nombre >>> # | | | | | ⌐----- homoclave: Evita duplicidades >>> # | | | | | | ⌐-- checksum: Digito verificador de integridad >>> # | | | | | | | >>> # NNNN AAMMDD S EN CCC H C >>> # 0123 012345 0 01 012 0 0
- static check_fecha(fecha_str, homo_serial)[fuente]¶
Revisa si existe algún error en el en formato fecha AAMMDD
- Parámetros:
fecha_str (str) – Fecha en 6 digitos en formato AAMMDD
- Devuelve:
devuelve el código de error o None en caso de no existir error.
- Tipo del valor devuelto:
CodeError/None
- static checksum(curp: str) int [fuente]¶
Calcula el checksum del CURP.
- Parámetros:
curp (str) – El curp sobre al cual se calcula el checksum.
- Devuelve:
el valor del checksum.
- Tipo del valor devuelto:
int
- errorMsgs = {100: 'Valor en formato inválido', 101: 'El sexo debe ser H o M, valor invalido: {}', 102: 'Mes incorrecto', 103: 'La cantidad de días que supera a los del mes indicado.', 104: 'El codigo de entidad federativa({}) es inválido.', 105: 'Carácter ({}) invalido en la segunda parte del nombre.', 106: 'Suma de validación incorrecta ({}).', 201: 'La primer letra del nombre de pila debe ir en la posición 4', 202: 'La primer consonante interna del nombre de pila debe ir en la posición 16', 203: 'La primer letra del primer apellido debe ir en la posición 1', 204: 'La primer vocal interna del primer apellido debe ir en la posición 2', 205: 'La primer consonante interna del primer apellido debe ir en la posición 11', 206: 'La primer letra del segundo apellido debe ir en la posición 3', 207: 'La primer consonante interna del segundo apellido debe ir en la posición 15', 208: 'Las fecha del Curp con el valor recibido({}) a validar', 209: 'El sexo del CURP no coincide con el valor recibido({}) a validar', 210: 'La entidad federativa del Curp no coincide con el valor recibido({})'}¶
- static find_match_error(match: dict)[fuente]¶
Busca errores a partir del match proporcionado.
- Parámetros:
match (dict) – Diccionario de datos el cual puede contener los valores de nombre, primer_ap, segundo_ap, fecha_nacimiento, sexo y entidad_federativa
- static find_match_error_nombre(nombre: str, curp: str) str [fuente]¶
Valida si el curp para el nombre el curp es correcto
- Parámetros:
nombre (str) – Nombre a validar
curp – CURP a validar.
- Devuelve:
True si encontró algun error/False en caso contrario
- Tipo del valor devuelto:
bool
- static find_match_error_primer_ap(primer_ap: str, curp: str) bool [fuente]¶
Valida si para el primer apellido el curp es correcto
- Parámetros:
primer_ap (str) – El valor del primer apellido.
curp (str) – El valor del CURP.
- Devuelve:
True si existe(n) error(es)/ False caso contrario
- Tipo del valor devuelto:
bool
- static find_match_error_segundo_ap(segundo_ap: str, curp: str) bool [fuente]¶
Valida si para el primer apellido el curp es correcto
- Parámetros:
segundo_ap (str) – Valor del segundo apellido.
curp (str) – Valor del CURP
- Devuelve:
True si existe(n) error(es)/ False caso contrario
- Tipo del valor devuelto:
bool
- static gen_consonantes_nombre(data)[fuente]¶
Genera la segunda parte parte del nombre
- Parámetros:
data (dict) – diccionario de datos a utilizar.
- Devuelve:
la segunda parte del nombre, en formato de 3 consonantes.
- Tipo del valor devuelto:
str
- static gen_entidad_federativa(data: dict) str [fuente]¶
Genera la entidad federativa, en caso de ya venir uno devuelve esta.
- Parámetros:
data (dict) – Diccionario de datos de parametros definidos por el usuario
- Devuelve:
La entidad_federativa un código de 2 carácteres
- Tipo del valor devuelto:
str
- static gen_fecha_nacimiento(data: dict) str [fuente]¶
Genera/Busca la fecha de nacimiento
- Parámetros:
data (dic) – Diccionario que puede contener el valor de fecha_nacimiento
- Devuelve:
Una fecha de nacimiento valida en forma de 6 digítos AAMMDD
- Tipo del valor devuelto:
str
- static gen_id_nombre(data)[fuente]¶
Genera la parte del nombre, los primeros 4 dígitos,
- Parámetros:
data (dict) – diccionario de datos a utilizar.
- Devuelve:
Genera el id del nombre un str de 4 carácteres.
- Tipo del valor devuelto:
str
- static gen_sexo(data: dict) str [fuente]¶
Genera el sexo, en caso de ya venir uno devuelve este normalizado.
- Parámetros:
data (dict) – Diccionario de datos de parametros definidos por el usuario
- Devuelve:
El sexo un caracter que puede ser H ó M
- Tipo del valor devuelto:
str
mexa.CurpUtils¶
Módulo que contiene un conjunto de utilerías diseñadas para darle soporte a la Clase: CurpField
- class mexa.CurpUtils.CurpTools[fuente]¶
Bases:
object
Clase que modela el CURP
- static anio(last2_digits: str, homo_serial: str) int [fuente]¶
Devuelve al año, agregando los primeros digitos, esto si la parte de la homoclave que genera la serialización para evitar curps repetidos Si es mayor a A entonces nacio despues del año 2000
- Parámetros:
last2_digits (str) – Los dos ultimos digitos del año.
homo_serial (str) – Valor de la homoclave
last2_digits:str –
homo_serial:str –
- Devuelve:
El año obtenido.
- Tipo del valor devuelto:
int
Example:
>>> CurpTools.anio("20", "0") # 1920 >>> CurpTools.anio("20", "A") # 2020
- static estado_to_2chars(edo)[fuente]¶
Recibe el estado devuelve el código del mismo a dos caracteres
- Parámetros:
edo (str) – El nombre del estado
- Devuelve:
El codigo del estado
- Tipo del valor devuelto:
str
- static fecha_to_6digits(fecha) str [fuente]¶
Recibe una fecha y la normaliza a formato AAMMDD
- Parámetros:
fecha – La fecha
- Devuelve:
La fecha en formato AAMMDD
- Tipo del valor devuelto:
str
- static limpiar_mal_palabra(palabra: str) str [fuente]¶
Transforma una «mala palabra».
- Parámetros:
palabra (str) – Palabra a buscar si es «mala palabra».
palabra:str –
- Devuelve:
la palabra original en caso de ser «mala» la limpia.
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.limpiar_mal_palabra("CACA") # "CXCA" >>> CurpTools.limpiar_mal_palabra("HOLA") # "HOLA" (sin cambio) >>> CurpTools.limpiar_mal_palabra("PITO") # "PXTO"
- static nombre_de_pila(nombre: str) str [fuente]¶
Devuelve el nombre de pila, en donde si el primer nombre es María o José devolverá el segundo nombre.
- Parámetros:
nombre (str) – Nombre del que se sacará el nombre de pila
nombre:str –
- Devuelve:
Nombre de pila
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.nombre_de_pila("JOSE ANGEL") # "ANGEL" >>> CurpTools.nombre_de_pila("MA. FERNANDA") # "FERNANDA" >>> CurpTools.nombre_de_pila("JUAN ANGEL") # "JUAN" >>> CurpTools.nombre_de_pila("J. DEL CIELO") # "CIELO"
- static primer_consonante_interna(palabra)[fuente]¶
Devuelve el valor de la primer consonante interna en palabra
- Parámetros:
palabra (str) – palabra con la que se van a trabajar.
- Devuelve:
El valor de la primer consonante.
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.primer_consonante_interna('JOEL') # L >>> CurpTools.primer_consonante_interna('TIO') # X (No se encontró)
- static primer_letra(palabra: str) str [fuente]¶
Devuelve la primer letra de la palabra recibida.
- Parámetros:
palabra (str) – La parabra en la que se extrae el primer caracter.
palabra – str:
- Devuelve:
la primer letra en caso que la cadena es vacia regresa X
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.primer_letra('JOEL') # J >>> CurpTools.primer_letra('Miguel') # M
- static primer_vocal_interna(palabra: str) str [fuente]¶
Devuelve la primer vocal de parabra
- Parámetros:
palabra (str) – La palabra sobre en cual se buscará la primer vocal.
palabra:str –
- Devuelve:
La primer vocal interna encontrada, Si no encuentra devuelve X
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.primer_vocal_interna('OLLA') # A >>> CurpTools.primer_vocal_interna('ELY') # X (no encontró)
- static quitar_conjunciones(s)[fuente]¶
Cuando el nombre o los apellidos son compuestos y tienen proposiciones, contracciones o conjunciones, se deben eliminar esas palabras son eliminadas.
- Parámetros:
s (str) – string el cual se le quitaran las conjunciones.
- Devuelve:
El texto de entrada sin contracciones, conjunciones, etc..
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.quitar_conjunciones("DE LA CRUZ") # "CRUZ" >>> CurpTools.quitar_conjunciones("DEL CUELLO DI ANGEL") # "CUELLO ANGEL"
- class mexa.CurpUtils.Rand[fuente]¶
Bases:
object
Devuelve aleatoriamente diferentes elementos
- static consonante()[fuente]¶
Devuelve una consonante de manera aleatoria.
- Devuelve:
s ∈ ALPHABET) ^ (s ∉ VOWELS)
- Tipo del valor devuelto:
str
Example:
>>> Rand.consonante() # M (por ejemplo)
- static digito()[fuente]¶
Regresa un valor aleatorio entre 0 a 9
- Devuelve:
i ∈ (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
- Tipo del valor devuelto:
int
Example:
>>> Rand.digito() # 3 (por ejemplo)
- static estado()[fuente]¶
Devuelve el código de un estado de forma aleatoria
- Devuelve:
s ∈ ESTADOS_CODIGOS
- Tipo del valor devuelto:
str
Example:
>>> Rand.estado() # "MN" ("Michoacán de Ocampo",por ejemplo)
- static fecha() str [fuente]¶
Devuelve una fecha aleatoria en formato de 6 carácteres.
- Devuelve:
AAMMDD
- Tipo del valor devuelto:
str
Example:
>>> Rand.fecha() # "200229" ("29/feb/2020", por ejemplo)
mexa.ErrorMsgs¶
Contiene todos los mensajes de error
mexa.Estados¶
Entidades de la República Mexicana y su código ISO
mexa.NssField¶
Clase encargada del Nss
- class mexa.NssField.NssField[fuente]¶
Bases:
FieldInterface
Clase que modela el Nss
- static anios(data=None)[fuente]¶
Devuelve un arreglo con los años de nacimiento y afiliacion
- Parámetros:
data (dic) – Los datos el cual puede contener fecha_nacimiento y f_afiliacion de existir deberán ser tomados en cuenta estos valores.
- Devuelve:
Arreglo ordenado de la forma [fecha_nacimiento, f_afiliacion]
- errorMsgs = {100: 'El valor debe tener una longitud de 11 carácteres númericos', 101: 'El año de afiliación no puede ser menor que el de nacimiento', 102: 'Suma de validación incorrecta({})'}¶
mexa.core¶
Se encarga de implementar funciones para el nucleo de la aplicacion.
- class mexa.core.FieldInterface[fuente]¶
Bases:
object
Forza a que la función que la implemente sobre-escriba los metodos vacios
- classmethod add_error(code=100, value=None)[fuente]¶
Agrega el mensaje de error y devuelve siempre False
- errorMsgs = {}¶
- errors = []¶
- class mexa.core.Partes(regex: str)[fuente]¶
Bases:
object
Se encarga de dividir el valor en partes
- get(index: str) str | None [fuente]¶
Devuelve un grupo dentro de la expresión regular
- Parámetros:
index (int) – el indice del grupo a devolver.
- Devuelve:
El grupo en cuestion ó None en caso de error
- Tipo del valor devuelto:
str/None
mexa.data_ladas¶
Contiene las ladas de México, infomración extraida del PDF de ladas, para mayores detalles revisar documentación.
Module contents¶
Mexa validador y generador de campos
- class mexa.CurpTools[fuente]¶
Bases:
object
Clase que modela el CURP
- static anio(last2_digits: str, homo_serial: str) int [fuente]¶
Devuelve al año, agregando los primeros digitos, esto si la parte de la homoclave que genera la serialización para evitar curps repetidos Si es mayor a A entonces nacio despues del año 2000
- Parámetros:
last2_digits (str) – Los dos ultimos digitos del año.
homo_serial (str) – Valor de la homoclave
last2_digits:str –
homo_serial:str –
- Devuelve:
El año obtenido.
- Tipo del valor devuelto:
int
Example:
>>> CurpTools.anio("20", "0") # 1920 >>> CurpTools.anio("20", "A") # 2020
- static estado_to_2chars(edo)[fuente]¶
Recibe el estado devuelve el código del mismo a dos caracteres
- Parámetros:
edo (str) – El nombre del estado
- Devuelve:
El codigo del estado
- Tipo del valor devuelto:
str
- static fecha_to_6digits(fecha) str [fuente]¶
Recibe una fecha y la normaliza a formato AAMMDD
- Parámetros:
fecha – La fecha
- Devuelve:
La fecha en formato AAMMDD
- Tipo del valor devuelto:
str
- static limpiar_mal_palabra(palabra: str) str [fuente]¶
Transforma una «mala palabra».
- Parámetros:
palabra (str) – Palabra a buscar si es «mala palabra».
palabra:str –
- Devuelve:
la palabra original en caso de ser «mala» la limpia.
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.limpiar_mal_palabra("CACA") # "CXCA" >>> CurpTools.limpiar_mal_palabra("HOLA") # "HOLA" (sin cambio) >>> CurpTools.limpiar_mal_palabra("PITO") # "PXTO"
- static nombre_de_pila(nombre: str) str [fuente]¶
Devuelve el nombre de pila, en donde si el primer nombre es María o José devolverá el segundo nombre.
- Parámetros:
nombre (str) – Nombre del que se sacará el nombre de pila
nombre:str –
- Devuelve:
Nombre de pila
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.nombre_de_pila("JOSE ANGEL") # "ANGEL" >>> CurpTools.nombre_de_pila("MA. FERNANDA") # "FERNANDA" >>> CurpTools.nombre_de_pila("JUAN ANGEL") # "JUAN" >>> CurpTools.nombre_de_pila("J. DEL CIELO") # "CIELO"
- static primer_consonante_interna(palabra)[fuente]¶
Devuelve el valor de la primer consonante interna en palabra
- Parámetros:
palabra (str) – palabra con la que se van a trabajar.
- Devuelve:
El valor de la primer consonante.
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.primer_consonante_interna('JOEL') # L >>> CurpTools.primer_consonante_interna('TIO') # X (No se encontró)
- static primer_letra(palabra: str) str [fuente]¶
Devuelve la primer letra de la palabra recibida.
- Parámetros:
palabra (str) – La parabra en la que se extrae el primer caracter.
palabra – str:
- Devuelve:
la primer letra en caso que la cadena es vacia regresa X
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.primer_letra('JOEL') # J >>> CurpTools.primer_letra('Miguel') # M
- static primer_vocal_interna(palabra: str) str [fuente]¶
Devuelve la primer vocal de parabra
- Parámetros:
palabra (str) – La palabra sobre en cual se buscará la primer vocal.
palabra:str –
- Devuelve:
La primer vocal interna encontrada, Si no encuentra devuelve X
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.primer_vocal_interna('OLLA') # A >>> CurpTools.primer_vocal_interna('ELY') # X (no encontró)
- static quitar_conjunciones(s)[fuente]¶
Cuando el nombre o los apellidos son compuestos y tienen proposiciones, contracciones o conjunciones, se deben eliminar esas palabras son eliminadas.
- Parámetros:
s (str) – string el cual se le quitaran las conjunciones.
- Devuelve:
El texto de entrada sin contracciones, conjunciones, etc..
- Tipo del valor devuelto:
str
Example:
>>> CurpTools.quitar_conjunciones("DE LA CRUZ") # "CRUZ" >>> CurpTools.quitar_conjunciones("DEL CUELLO DI ANGEL") # "CUELLO ANGEL"