mexa


Namemexa JSON
Version 0.6 PyPI version JSON
download
home_pagehttps://github.com/fitorec/mexa-py
SummaryValidador y Generador de campos para tramites mexicanos
upload_time2023-04-11 14:47:22
maintainer
docs_urlNone
author@Fitorec - Miguel Angel Marcial Martinez
requires_python
licenseMIT
keywords rfc curp nss clabe
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1>
<span style="color:green">M</span>ex<span style="color:red">a</span> -
<small>Mexican Power</small>
</h1>


#### Generador y Verificador de campos.

__Mexa__ es un validador y generador de diferentes campos, utiles para la tramitología mexicana:

### Listado de campos:

 - **CURP**: Clave Única de Registro de Población.
 - **Nss**: Número de Seguro Social.
 - **RFC**: Registro Federal de Contribuyentes(física y moral).
 - **Tel**: Télefonos con lada de México.

### Instalación.


El paquete esta disponible en **pypi** (__<https://pypi.org/project/mexa/>__), para puedes instalarlo desde `pip`:

```
# Instalación de Mexa.
pip install mexa
```


### Uso:



```python
from mexa import fake, validate, Nss, Curp, generate


# ------------------------- fake --------------------------------------------
## Fake generando campos aleatorios.
#
nss = fake('nss') # Valor valido por ejemplo `48979152914`
curp = fake('curp') # Valor valido por ejemplo `AAMR740524HOCBRN08`

# ------------------------- validate ------------------------------------------
## Validación de datos
if validate('nss', nss): # Esto debe valer True por lo tanto mostrará el nss generado
    print(nss)

if validate('curp', curp): # Esto debe valer True
    print(curp)

## EXPERIMENTAL. #####
# Devuelve true si:
#  - El curp es valido
#  - Con el  valor del campo nombre, es viable formar el CURP recibido.
data = {"nombre" : "MIGUEL ANGEL"}
if validate('curp', value = "BAUM690216HMSLRG18", match = data):
    print(curp)

# ------------------------- generate ------------------------------------------
#
# Puede generar un curp tomando en consideración los datos que ingrese.
curp_str = generate('curp', data)
print('curp generada a partir del nombre', curp_str) # por ejemplo: ZUVM471127HOCTJG03
# Los datos restantes los genera de forma aleatoria, en este sentido es parecida a fake.
# Pero... en la medida que agregue datos el CURP generado es predictivo, ejemplo:
data = {
    "nombre" : "Juan Manuel",
    "primer_ap": "Lopéz",
    "segundo_ap": "Lopéz",
    "f_nacimiento": "780609", # 9 de junio del 1978
    "sexo": "H", # H: hombre, M: Mujer,
    "entidad_federativa": "SP" # San Luis Potosí
}
curp_str = generate('curp', data) # resultado: LOLJ780609HSPPPN09
print('curp generado con todos los datos recibidos', curp_str)

nss_data = {
    "region_imss" : "72",
    "folio_imss" : "0804",
    "f_nacimiento": "56",
    "f_afiliacion": "79",
}
nss_str = generate('nss', nss_data) # resultado: 72795608040
print('NSS generado con todos los datos recibidos', nss_str)

# ------------------------- Manejo de errores ---------------------------------

# Un caso de error en donde el año de afiliación/nacimiento
if not validate('nss', '12345678901'):
    print('NSS Errores: ', Nss.errors)

# De forma similar probamos con un valor invalido para el curp
if not validate('curp', '--invalido--'):
    print('CURP Errores: ', Curp.errors)
#

#
```


# Número de seguro social Nss

El numero de seguro social de México se conforma de 11 dígitos:

## Formato.

El **Nss** esta conformado de las siguientes partes:


![Formato img](https://raw.githubusercontent.com/gist/fitorec/82a3e27fae3bab709a07c19c71c3a8d4/raw/0e545684368cbe536e001e3d7e8a1fe015036748/nss_checksum.svg)

### Diez digitos de información.

 - 2 Dígitos Región IMSS.
 - 2 Dígitos Año afiliación al Seguro Social.
 - 2 Dígitos Año de nacimiento.
 - 4 Folio IMSS.

### Un digito verificador (el último)

En la onceava posición y ultima posición se encuentra el dígito permite validar los diez dígitos previos, previniendo errores de captura pues la simple alteración de un digito en la cadena de diez digitos genera un cambio en el dígito verificador.

Este digito es creado por medio de una implementación del **algoritmo Luhn**.


> Nota: para mayores informes consultar la definición del algoritmo en wikipedia:
> :point_right:  <https://es.wikipedia.org/wiki/Algoritmo_de_Luhn>




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/fitorec/mexa-py",
    "name": "mexa",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "RFC,CURP,NSS,Clabe",
    "author": "@Fitorec - Miguel Angel Marcial Martinez",
    "author_email": "fitorec@mundosica.com",
    "download_url": "https://files.pythonhosted.org/packages/d5/26/3b36daae4248797f9e92c73dbbf25d73da8dcef46c38068647389b87b8df/mexa-0.6.tar.gz",
    "platform": null,
    "description": "<h1>\n<span style=\"color:green\">M</span>ex<span style=\"color:red\">a</span> -\n<small>Mexican Power</small>\n</h1>\n\n\n#### Generador y Verificador de campos.\n\n__Mexa__ es un validador y generador de diferentes campos, utiles para la tramitolog\u00eda mexicana:\n\n### Listado de campos:\n\n - **CURP**: Clave \u00danica de Registro de Poblaci\u00f3n.\n - **Nss**: N\u00famero de Seguro Social.\n - **RFC**: Registro Federal de Contribuyentes(f\u00edsica y moral).\n - **Tel**: T\u00e9lefonos con lada de M\u00e9xico.\n\n### Instalaci\u00f3n.\n\n\nEl paquete esta disponible en **pypi** (__<https://pypi.org/project/mexa/>__), para puedes instalarlo desde `pip`:\n\n```\n# Instalaci\u00f3n de Mexa.\npip install mexa\n```\n\n\n### Uso:\n\n\n\n```python\nfrom mexa import fake, validate, Nss, Curp, generate\n\n\n# ------------------------- fake --------------------------------------------\n## Fake generando campos aleatorios.\n#\nnss = fake('nss') # Valor valido por ejemplo `48979152914`\ncurp = fake('curp') # Valor valido por ejemplo `AAMR740524HOCBRN08`\n\n# ------------------------- validate ------------------------------------------\n## Validaci\u00f3n de datos\nif validate('nss', nss): # Esto debe valer True por lo tanto mostrar\u00e1 el nss generado\n    print(nss)\n\nif validate('curp', curp): # Esto debe valer True\n    print(curp)\n\n## EXPERIMENTAL. #####\n# Devuelve true si:\n#  - El curp es valido\n#  - Con el  valor del campo nombre, es viable formar el CURP recibido.\ndata = {\"nombre\" : \"MIGUEL ANGEL\"}\nif validate('curp', value = \"BAUM690216HMSLRG18\", match = data):\n    print(curp)\n\n# ------------------------- generate ------------------------------------------\n#\n# Puede generar un curp tomando en consideraci\u00f3n los datos que ingrese.\ncurp_str = generate('curp', data)\nprint('curp generada a partir del nombre', curp_str) # por ejemplo: ZUVM471127HOCTJG03\n# Los datos restantes los genera de forma aleatoria, en este sentido es parecida a fake.\n# Pero... en la medida que agregue datos el CURP generado es predictivo, ejemplo:\ndata = {\n    \"nombre\" : \"Juan Manuel\",\n    \"primer_ap\": \"Lop\u00e9z\",\n    \"segundo_ap\": \"Lop\u00e9z\",\n    \"f_nacimiento\": \"780609\", # 9 de junio del 1978\n    \"sexo\": \"H\", # H: hombre, M: Mujer,\n    \"entidad_federativa\": \"SP\" # San Luis Potos\u00ed\n}\ncurp_str = generate('curp', data) # resultado: LOLJ780609HSPPPN09\nprint('curp generado con todos los datos recibidos', curp_str)\n\nnss_data = {\n    \"region_imss\" : \"72\",\n    \"folio_imss\" : \"0804\",\n    \"f_nacimiento\": \"56\",\n    \"f_afiliacion\": \"79\",\n}\nnss_str = generate('nss', nss_data) # resultado: 72795608040\nprint('NSS generado con todos los datos recibidos', nss_str)\n\n# ------------------------- Manejo de errores ---------------------------------\n\n# Un caso de error en donde el a\u00f1o de afiliaci\u00f3n/nacimiento\nif not validate('nss', '12345678901'):\n    print('NSS Errores: ', Nss.errors)\n\n# De forma similar probamos con un valor invalido para el curp\nif not validate('curp', '--invalido--'):\n    print('CURP Errores: ', Curp.errors)\n#\n\n#\n```\n\n\n# N\u00famero de seguro social Nss\n\nEl numero de seguro social de M\u00e9xico se conforma de 11 d\u00edgitos:\n\n## Formato.\n\nEl **Nss** esta conformado de las siguientes partes:\n\n\n![Formato img](https://raw.githubusercontent.com/gist/fitorec/82a3e27fae3bab709a07c19c71c3a8d4/raw/0e545684368cbe536e001e3d7e8a1fe015036748/nss_checksum.svg)\n\n### Diez digitos de informaci\u00f3n.\n\n - 2 D\u00edgitos Regi\u00f3n IMSS.\n - 2 D\u00edgitos A\u00f1o afiliaci\u00f3n al Seguro Social.\n - 2 D\u00edgitos A\u00f1o de nacimiento.\n - 4 Folio IMSS.\n\n### Un digito verificador (el \u00faltimo)\n\nEn la onceava posici\u00f3n y ultima posici\u00f3n se encuentra el d\u00edgito permite validar los diez d\u00edgitos previos, previniendo errores de captura pues la simple alteraci\u00f3n de un digito en la cadena de diez digitos genera un cambio en el d\u00edgito verificador.\n\nEste digito es creado por medio de una implementaci\u00f3n del **algoritmo Luhn**.\n\n\n> Nota: para mayores informes consultar la definici\u00f3n del algoritmo en wikipedia:\n> :point_right:  <https://es.wikipedia.org/wiki/Algoritmo_de_Luhn>\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Validador y Generador de campos para tramites mexicanos",
    "version": "0.6",
    "split_keywords": [
        "rfc",
        "curp",
        "nss",
        "clabe"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5263b36daae4248797f9e92c73dbbf25d73da8dcef46c38068647389b87b8df",
                "md5": "a00e1b75f25b3e8cb26a4d011c1a43d3",
                "sha256": "9b906224740b75f7c33c34d7fd244436d4b1bd2d94daee31ea14f24ada15fd03"
            },
            "downloads": -1,
            "filename": "mexa-0.6.tar.gz",
            "has_sig": false,
            "md5_digest": "a00e1b75f25b3e8cb26a4d011c1a43d3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 12641,
            "upload_time": "2023-04-11T14:47:22",
            "upload_time_iso_8601": "2023-04-11T14:47:22.449585Z",
            "url": "https://files.pythonhosted.org/packages/d5/26/3b36daae4248797f9e92c73dbbf25d73da8dcef46c38068647389b87b8df/mexa-0.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-11 14:47:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "fitorec",
    "github_project": "mexa-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mexa"
}
        
Elapsed time: 0.06559s