Sobre el proyecto
## Qué es
`liege` es un cliente asíncrono de Python para los conjuntos de datos abiertos publicados por la Open Data Platform de Lieja, Bélgica. Envuelve la API de la plataforma para que el código Python —normalmente dentro de un bucle de eventos asíncrono— pueda obtener registros como objetos tipados en lugar de gestionar solicitudes HTTP brutas y el análisis de JSON.
El paquete fue escrito originalmente solo para recuperar datos de aparcamiento, pero el README señala que la base de código está estructurada de manera que se puedan añadir fácilmente conjuntos de datos adicionales de la misma plataforma.
## Instalación
```bash
pip install liege
```
## Conjuntos de datos cubiertos
Dos conjuntos de datos están documentados en el README:
- **Plazas de aparcamiento para personas con movilidad reducida / Stationnement PMR** — 1062 ubicaciones.
- **Garajes / Les parkings voitures hors voirie** — 32 ubicaciones.
Cada conjunto de datos se consulta con un parámetro `limit` (por defecto 10) que controla cuántos resultados se devuelven.
### Campos de aparcamiento para personas con movilidad reducida
`spot_id` (int), `number` (int), `address` (str), `municipality` (str), `city` (str), `status` (str), `longitude` (float), `latitude` (float), `created_at` (datetime), `updated_at` (datetime).
### Campos de garajes
`name` (string), `capacity` (int), `charging_stations` (int), `address` (string), `municipality` (string), `city` (string), `provider` (string), `schedule` (string), `longitude` (float), `latitude` (float), `created_at` (datetime), `updated_at` (datetime).
## Ejemplo de uso
El cliente está diseñado como un gestor de contexto asíncrono:
```python
import asyncio
from liege import ODPLiege
async def main() -> None:
async with ODPLiege() as client:
garages = await client.garages(limit=10)
disabled_parkings = await client.disabled_parkings(limit=10)
print(garages)
print(disabled_parkings)
asyncio.run(main())
```
## Caso de uso documentado
El README cita NIPKaart.nl, un sitio web que mapea plazas de aparcamiento para personas con movilidad reducida utilizando datos aportados por usuarios y municipios. Opera principalmente en los Países Bajos, pero ha manifestado planes para procesar datos del extranjero, que es donde encaja este cliente.
## Configuración de desarrollo
El proyecto utiliza Poetry para la gestión de dependencias y requiere Python 3.12+ junto con el propio Poetry. Después de clonar:
```bash
poetry install
```
Poetry crea un entorno virtual para las dependencias por defecto.
El linting y las pruebas están integrados a través del framework `prek`, que ejecuta comprobaciones en cada commit:
```bash
poetry run prek install
poetry run prek run --all-files
```
Las pruebas utilizan pytest, y las pruebas de snapshot son gestionadas por syrupy:
```bash
poetry run pytest
poetry run pytest --snapshot-update
```
Se proporciona una configuración de Dev Container, por lo que el entorno puede iniciarse directamente en Visual Studio Code o como un GitHub CodeSpace.
## Señales del proyecto en el README
El bloque de insignias indica una etapa de proyecto experimental, mantenimiento continuo, actividad de commits activa, versiones publicadas en GitHub, distribución en PyPI con estadísticas de descarga, estado del flujo de trabajo de construcción y tipado, informes de cobertura de código y una insignia de OpenSSF Scorecard. El proyecto también documenta las pautas de contribución en un archivo CONTRIBUTING.md independiente y se publica bajo la Licencia MIT (copyright 2022–2026 Klaas Schoute).
## Encaje
Esta es una biblioteca de cliente API pequeña y de propósito único: útil cuando se necesitan datos abiertos de Lieja (actualmente relacionados con el aparcamiento) dentro de una aplicación Python asíncrona, y útil como plantilla para envolver otros conjuntos de datos de la misma plataforma ODP. No es un almacén de datos, un servidor ni una aplicación para el usuario final.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.