verifica-es 🇪🇸
Librería ultraligera (cero dependencias externas en su núcleo), herramienta de línea de comandos (CLI) y API REST de alta velocidad para la validación y verificación de documentos y formatos oficiales de España.
✨ Características
- ⚡ Zero Dependencies: La librería base utiliza únicamente la biblioteca estándar de Python (ultrarrápida y sin vulnerabilidades externas).
- 🪪 Documentos de Identidad: Validación oficial de DNI, NIE y CIF (AEAT con reglas de control por tipo de entidad jurídica).
- 🏦 Bancario & Contacto: Validación de IBAN español (módulo 97) y números de teléfono fijos y móviles.
- 📍 Geografía: Validación de Códigos Postales con resolución automática de la provincia correspondiente (de 01 a 52).
- 🚗 Vehículos: Validación de Matrículas (sistema moderno europeo y formato histórico provincial).
- 🔍 Auto-detección: Función unificada para detectar automáticamente si un identificador es DNI, NIE o CIF.
- 💻 CLI Integrada: Comando de consola
verifica-eslisto para usar en scripts o terminal. - 🚀 API REST lista para producción: Servidor FastAPI modular incluido.
📦 Instalación
Como librería de Python (Zero dependencies):
pip install verifica-es
Con soporte para la API REST (FastAPI + Uvicorn):
pip install "verifica-es[api]"
🚀 Uso en Python
import verifica_es as ves
# 1. Documentos de Identidad
ves.verificar_dni("12345678Z") # -> True
ves.verificar_nie("X1234567L") # -> True
ves.verificar_cif("B86660149") # -> True (Sociedad Limitada)
ves.verificar_cif("P2807900B") # -> True (Organismo con control de letra)
# Detección automática
ves.verificar_documento_identidad("B86660149")
# -> {'tipo': 'CIF', 'valido': True}
# 2. Códigos Postales y Provincias
ves.verificar_codigo_postal("35001") # -> True
ves.obtener_provincia_codigo_postal("35001")
# -> 'Las Palmas'
ves.obtener_provincia_codigo_postal("28013")
# -> 'Madrid'
# 3. Bancario y Contacto
ves.verificar_iban("ES9121000418450200051332") # -> True
ves.verificar_telefono("+34 612 34 56 78") # -> True
# 4. Matrículas de Vehículos
ves.verificar_matricula("1234BBB") # -> True (Formato moderno)
ves.verificar_matricula("GC-1234-AB") # -> True (Formato clásico)
🖥️ Uso desde la Terminal (CLI)
Una vez instalada la librería, dispones del comando verifica-es:
# Validar DNI / NIE / CIF
verifica-es dni 12345678Z
verifica-es nie X1234567L
verifica-es cif B86660149
# Auto-detectar tipo de documento
verifica-es doc B86660149
# [VALIDO] 'B86660149' [Tipo detectado: CIF]
# Validar Código Postal (muestra la provincia)
verifica-es cp 35001
# [VALIDO] '35001' (Provincia: Las Palmas)
# Validar Matrícula
verifica-es matricula 1234BBB
# Validar IBAN o Teléfono
verifica-es iban ES9121000418450200051332
verifica-es telefono 612345678
🌐 Uso como API REST (FastAPI)
Para arrancar el servidor localmente con recarga en vivo:
uvicorn app.main:app --reload
Accede a la documentación interactiva Swagger UI en:
http://localhost:8000/docs
Endpoints disponibles:
GET /api/validar-dni?dni=...GET /api/validar-nie?nie=...GET /api/validar-cif?cif=...GET /api/validar-documento?documento=...GET /api/validar-iban?iban=...GET /api/validar-telefono?telefono=...GET /api/validar-codigo-postal?cp=...GET /api/validar-matricula?matricula=...
🧪 Pruebas Automatizadas
Ejecutar la suite completa de 36 tests con pytest:
pytest
📄 Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Desarrollado con ❤️ por Alejandro Tacoronte González.
Release files for verifica-es 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| verifica_es-1.1.2.tar.gz | 19.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| verifica_es-1.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.3 kB
Release files / verifica_es-1.1.2.tar.gz
| Download URL | verifica_es-1.1.2.tar.gz |
|---|---|
| Size | 19.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7851cccbd431e6a51a9a5e16ffa8f1f22e1341e2a75324a04cfe7b630152a7f
|
|
BLAKE2b-256 checksum How to use checksums |
a70fbeaed0da4d3e2d1581b7801c3dc2092bd2239dfc34a6877079063a16b84e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / verifica_es-1.1.2-py3-none-any.whl
| Download URL | verifica_es-1.1.2-py3-none-any.whl |
|---|---|
| Size | 21.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
033c1429a845e20d7d21c4b627f39422080a4c6f8f9b9778b98f27a415b42461
|
|
BLAKE2b-256 checksum How to use checksums |
5e1dd0ea3d98ad5ab8f1a558ed453ddaf738543f263d4c1f58096f8b920ac82d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|