# CLABE
[](https://github.com/cuenca-mx/clabe-python/actions?query=workflow%3Atest)
[](https://codecov.io/gh/cuenca-mx/clabe-python)
[](https://pypi.org/project/clabe/)
[](https://pepy.tech/project/clabe)
Librería para validar y calcular un número CLABE basado en
https://es.wikipedia.org/wiki/CLABE
## Requerimientos
Python 3.8 o superior.
## Instalación
Se puede instalar desde Pypi usando
```
pip install clabe
```
## Pruebas
Para ejecutar las pruebas
```
$ make test
```
## Uso básico
### Como tipo personalizado en un modelo de Pydantic
```python
from pydantic import BaseModel, ValidationError
from clabe import Clabe
class Account(BaseModel):
id: str
clabe: Clabe
account = Account(id='123', clabe='723010123456789019')
print(account)
"""
id='123' clabe='723010123456789019'
"""
try:
account = Account(id='321', clabe='000000000000000011')
except ValidationError as exc:
print(exc)
"""
1 validation error for Account
clabe
código de banco no es válido [type=clabe.bank_code, input_value='000000000000000011', input_type=str]
"""
```
### Obtener el dígito de control de un número CLABE
```python
import clabe
clabe.compute_control_digit('00200000000000000')
```
### Para validar si un número CLABE es válido
```python
import clabe
clabe.validate_clabe('002000000000000008')
```
### Para obtener el banco a partir de 3 dígitos
```python
import clabe
clabe.get_bank_name('002')
```
### Para generar nuevo válido CLABES
```python
import clabe
clabe.generate_new_clabes(10, '002123456')
```
## Agregar un nuevo banco
A partir de la versión **2.0.0**, el paquete ha sido actualizado para utilizar **Pydantic v2**, lo que implica que las versiones anteriores ya no recibirán soporte ni actualizaciones.
No obstante, en versiones anteriores hemos agregado una función que permite añadir bancos adicionales a la lista sin necesidad de crear un PR. Esto es útil para quienes aún utilicen versiones anteriores. Sin embargo, a partir de la versión 2, continuaremos manteniendo y actualizando la lista oficial de bancos mediante PRs en el repositorio.
### Cómo agregar un banco
Para agregar un banco, llama a la función `add_bank` pasando el código de Banxico y el nombre del banco como parámetros.
```python
import clabe
clabe.add_bank('12345', 'New Bank')
```
### Cómo eliminar un banco
De manera similar, puedes eliminar un banco llamando a la función remove_bank con el código del banco que deseas eliminar.
```python
import clabe
clabe.remove_bank('12345')
```
**Nota**: Aunque estas funciones están disponibles para un uso más flexible, recomendamos utilizar siempre la lista oficial de bancos actualizada en la versión 2+.
Raw data
{
"_id": null,
"home_page": "https://github.com/cuenca-mx/clabe",
"name": "clabe",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Cuenca",
"author_email": "dev@cuenca.com",
"download_url": "https://files.pythonhosted.org/packages/20/fc/bd5d4bf0f3b0b9092bacd68f2563b1e76d3be9f5d7fbee4e23578dadaf89/clabe-2.1.0.tar.gz",
"platform": null,
"description": "# CLABE\n\n[](https://github.com/cuenca-mx/clabe-python/actions?query=workflow%3Atest)\n[](https://codecov.io/gh/cuenca-mx/clabe-python)\n[](https://pypi.org/project/clabe/)\n[](https://pepy.tech/project/clabe)\n\nLibrer\u00eda para validar y calcular un n\u00famero CLABE basado en\nhttps://es.wikipedia.org/wiki/CLABE\n\n## Requerimientos\n\nPython 3.8 o superior.\n\n## Instalaci\u00f3n\n\nSe puede instalar desde Pypi usando\n\n```\npip install clabe\n```\n\n## Pruebas\n\nPara ejecutar las pruebas\n\n```\n$ make test\n```\n\n## Uso b\u00e1sico\n\n### Como tipo personalizado en un modelo de Pydantic\n\n```python\nfrom pydantic import BaseModel, ValidationError\n\nfrom clabe import Clabe\n\n\nclass Account(BaseModel):\n id: str\n clabe: Clabe\n\n\naccount = Account(id='123', clabe='723010123456789019')\nprint(account)\n\"\"\"\nid='123' clabe='723010123456789019'\n\"\"\"\n\ntry:\n account = Account(id='321', clabe='000000000000000011')\nexcept ValidationError as exc:\n print(exc)\n\"\"\"\n1 validation error for Account\nclabe\n c\u00f3digo de banco no es v\u00e1lido [type=clabe.bank_code, input_value='000000000000000011', input_type=str]\n\"\"\"\n```\n\n### Obtener el d\u00edgito de control de un n\u00famero CLABE\n\n```python\nimport clabe\nclabe.compute_control_digit('00200000000000000')\n```\n\n### Para validar si un n\u00famero CLABE es v\u00e1lido\n\n```python\nimport clabe\nclabe.validate_clabe('002000000000000008')\n```\n\n### Para obtener el banco a partir de 3 d\u00edgitos\n\n```python\nimport clabe\nclabe.get_bank_name('002')\n```\n\n### Para generar nuevo v\u00e1lido CLABES\n\n```python\nimport clabe\nclabe.generate_new_clabes(10, '002123456')\n```\n\n## Agregar un nuevo banco\n\nA partir de la versi\u00f3n **2.0.0**, el paquete ha sido actualizado para utilizar **Pydantic v2**, lo que implica que las versiones anteriores ya no recibir\u00e1n soporte ni actualizaciones.\n\nNo obstante, en versiones anteriores hemos agregado una funci\u00f3n que permite a\u00f1adir bancos adicionales a la lista sin necesidad de crear un PR. Esto es \u00fatil para quienes a\u00fan utilicen versiones anteriores. Sin embargo, a partir de la versi\u00f3n 2, continuaremos manteniendo y actualizando la lista oficial de bancos mediante PRs en el repositorio.\n\n### C\u00f3mo agregar un banco\n\nPara agregar un banco, llama a la funci\u00f3n `add_bank` pasando el c\u00f3digo de Banxico y el nombre del banco como par\u00e1metros.\n\n```python\nimport clabe\nclabe.add_bank('12345', 'New Bank')\n```\n\n###\u00a0C\u00f3mo eliminar un banco\n\nDe manera similar, puedes eliminar un banco llamando a la funci\u00f3n remove_bank con el c\u00f3digo del banco que deseas eliminar.\n\n```python\nimport clabe\nclabe.remove_bank('12345')\n```\n\n**Nota**: Aunque estas funciones est\u00e1n disponibles para un uso m\u00e1s flexible, recomendamos utilizar siempre la lista oficial de bancos actualizada en la versi\u00f3n 2+.\n",
"bugtrack_url": null,
"license": null,
"summary": "Validate and generate the control digit of a CLABE in Mexico",
"version": "2.1.0",
"project_urls": {
"Homepage": "https://github.com/cuenca-mx/clabe"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2206fe377e9177f44e2fa013dbbb9e3cc19ff7fb5f9aaa7628852998378a64e1",
"md5": "322a35c73023fa0b0f60e998dbee314d",
"sha256": "3f568c83f056ef2f513a2c44cf7ef5f110292c265049152d348a3853eb4e9bfd"
},
"downloads": -1,
"filename": "clabe-2.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "322a35c73023fa0b0f60e998dbee314d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 9703,
"upload_time": "2025-02-26T19:38:45",
"upload_time_iso_8601": "2025-02-26T19:38:45.928594Z",
"url": "https://files.pythonhosted.org/packages/22/06/fe377e9177f44e2fa013dbbb9e3cc19ff7fb5f9aaa7628852998378a64e1/clabe-2.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "20fcbd5d4bf0f3b0b9092bacd68f2563b1e76d3be9f5d7fbee4e23578dadaf89",
"md5": "b6797b4416188cd6cb750fbd0e3f101b",
"sha256": "18e96c17d7886e7d4a942d9293cf19810b20579f8e4bfcd85c175c70fe204ab9"
},
"downloads": -1,
"filename": "clabe-2.1.0.tar.gz",
"has_sig": false,
"md5_digest": "b6797b4416188cd6cb750fbd0e3f101b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 8450,
"upload_time": "2025-02-26T19:38:47",
"upload_time_iso_8601": "2025-02-26T19:38:47.704519Z",
"url": "https://files.pythonhosted.org/packages/20/fc/bd5d4bf0f3b0b9092bacd68f2563b1e76d3be9f5d7fbee4e23578dadaf89/clabe-2.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-26 19:38:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cuenca-mx",
"github_project": "clabe",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pydantic",
"specs": [
[
"==",
"2.10.3"
]
]
}
],
"lcname": "clabe"
}