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.1
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.1.tar.gz | 19.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| verifica_es-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.1 kB
Release files / verifica_es-1.1.1.tar.gz
| Download URL | verifica_es-1.1.1.tar.gz |
|---|---|
| Size | 19.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2e73f982009d43a44598c310bde309f3f355452425589825469dcc543163ed0
|
|
BLAKE2b-256 checksum How to use checksums |
7d34635da91bd914cd3c2ad865bbd715649b3ea2d8032c527242cc0e525017ca
|
| 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.1-py3-none-any.whl
| Download URL | verifica_es-1.1.1-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ff46f2fa4fef7060a9bfad68110c6407260f77ceb917aee71a20c7c4484875a7
|
|
BLAKE2b-256 checksum How to use checksums |
20d6922b00cbff5b8b6838669e6f48b4181bb6da992320937a725ffd7ec5faa9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|