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.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| verifica_es-1.1.2.tar.gz | 19.1 kB | Without provenance | Details for verifica_es-1.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| verifica_es-1.1.2-py3-none-any.whl | Python 3 | none | any | Details for verifica_es-1.1.2-py3-none-any.whl |
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
|
Security for verifica-es 1.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.