cvlac-json
Convierte la página pública del CvLAC de un investigador (Minciencias, Colombia) en un único documento JSON: perfil, formación, experiencia, producción bibliográfica en el esquema de obras de ImpactU, proyectos, eventos, tesis dirigidas y todas las demás secciones.
- Sin dependencias: solo la biblioteca estándar de Python (3.10 o superior).
- Agrega los identificadores ROR de las instituciones de la experiencia y de las tesis.
- Con una clave de apis.colav.co, agrega los identificadores Scienti (
COD_RH-COD_PRODUCTO,-COD_PROYECTO,-COD_EVENTO) de las entradas que coinciden.
Instalación
pip install cvlac-json
Uso en la terminal
cvlac-json 0000026549 # escribe cvlac_0000026549.json
cvlac-json 26549 -o zapata.json # los ceros a la izquierda se agregan solos
cvlac-json 0000026549 --save-html cv.html # guarda también la página descargada
cvlac-json 0000026549 --html cv.html # analiza una página guardada, sin descargar
cvlac-json 0000026549 -o - # JSON por la salida estándar
cvlac-json 0000026549 --scienti off --ror off # solo la página pública, sin otras APIs
| Opción | Efecto |
|---|---|
--scienti auto (por defecto) |
Si hay clave de apis.colav.co, agrega los ids Scienti de las entradas que coinciden. |
--scienti full |
Además agrega los registros de Scienti que no están en la página (origin: "scienti"). |
--scienti off |
No consulta Scienti. |
--institution, --model-year |
Volcado de Scienti (udea, univalle, uec, unaula) y año del modelo. |
--apikey CLAVE |
Clave de apis.colav.co para esta ejecución. |
--ror auto / off |
Consulta o no el registro ROR. |
La clave de apis.colav.co se toma, en este orden, de --apikey, de la variable de entorno COLAV_APIKEY o del archivo ~/.config/colav/apikey. Nunca se imprime. Para no dejarla en el historial de la terminal, use --apikey "$(cat archivo)".
Uso como biblioteca
from cvlac_json import extract
data = extract("0000026549", scienti="off") # descarga y analiza la página
print(data["profile"]["Nombre"], len(data["works"]))
html = open("cv.html", encoding="latin-1").read()
data = extract("0000026549", html=html, ror=False) # página guardada
Esquema del JSON
El esquema completo, campo por campo, está en docs/cvlac_json_esquema.md y en versión navegable en docs/cvlac_json_esquema.html.
Desarrollo
git clone https://github.com/restrepo/cvlac-json.git
cd cvlac-json
python -m pip install -e ".[dev]"
python -m pytest
ruff check . && ruff format --check .
Las pruebas no usan la red: corren sobre una página sintética (tests/fixtures/cvlac_sintetico.html) con una persona ficticia y la misma estructura HTML del CvLAC.
Cómo publicar una versión nueva en PyPI: PUBLISHING.md.
Avisos
- La página del CvLAC es pública, pero contiene datos personales (nombre, nacionalidad, sexo). Úselos de acuerdo con la normativa de protección de datos que aplique.
- Sea moderado con el servidor de Minciencias: haga una pausa de uno o dos segundos entre CV cuando procese muchos.
- Las afiliaciones de las obras son inferidas de la experiencia (dónde trabajaba la persona ese año); el CvLAC no las declara.
Licencia
Metadata
Release files for cvlac-json 0.1.0
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 |
|---|---|---|---|---|
| cvlac_json-0.1.0.tar.gz | 49.6 kB | With provenance | Details for cvlac_json-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cvlac_json-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for cvlac_json-0.1.0-py3-none-any.whl |
Total release size: 77.2 kB
Release files / cvlac_json-0.1.0.tar.gz
| Download URL | cvlac_json-0.1.0.tar.gz |
|---|---|
| Size | 49.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4100faa57654814fe3fe5760d46f86a97e5acfae87741378757a8d2243f560a0
|
|
BLAKE2b-256 checksum How to use checksums |
2f603c25d54ed5ab017ef9bce0029b153ddc4ee1b8eabf4d309636da910f5ff4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.
Transparency logRelease files / cvlac_json-0.1.0-py3-none-any.whl
| Download URL | cvlac_json-0.1.0-py3-none-any.whl |
|---|---|
| Size | 27.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5beacdb4dbc83a19c42bb4d6252187863dc15aafbdf3ed2a1e866a85977e99fe
|
|
BLAKE2b-256 checksum How to use checksums |
fd45b34c8318930b22343baf73088996980e4cf35f1b53ec244d896393f70721
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.
Transparency logSecurity for cvlac-json 0.1.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for cvlac_json-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.
Transparency logA 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.