Об этом проекте
## Что это такое
`liege` — это асинхронный Python-клиент для открытых наборов данных, публикуемых Open Data Platform города Льеж, Бельгия. Он оборачивает API платформы, чтобы Python-код (обычно внутри асинхронного цикла событий) мог получать записи в виде типизированных объектов вместо работы с необработанными HTTP-запросами и парсингом JSON.
Пакет изначально был написан только для получения данных о парковках, но в README отмечается, что кодовая база структурирована таким образом, чтобы дополнительные наборы данных с той же платформы можно было легко добавить.
## Установка
```bash
pip install liege
```
## Поддерживаемые наборы данных
В README задокументированы два набора данных:
- **Парковочные места для инвалидов / Stationnement PMR** — 1062 локации.
- **Гаражи / Les parkings voitures hors voirie** — 32 локации.
Каждый набор данных запрашивается с параметром `limit` (по умолчанию 10), который контролирует количество возвращаемых результатов.
### Поля парковок для инвалидов
`spot_id` (int), `number` (int), `address` (str), `municipality` (str), `city` (str), `status` (str), `longitude` (float), `latitude` (float), `created_at` (datetime), `updated_at` (datetime).
### Поля гаражей
`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).
## Пример использования
Клиент спроектирован как асинхронный контекстный менеджер:
```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())
```
## Задокументированный сценарий использования
В README упоминается NIPKaart.nl — веб-сайт, который наносит на карту парковочные места для инвалидов, используя данные, предоставленные пользователями и муниципалитетами. Он работает в основном в Нидерландах, но заявил о планах обрабатывать данные из-за рубежа, где и пригодится данный клиент.
## Настройка разработки
Проект использует Poetry для управления зависимостями и требует Python 3.12+, а также сам Poetry. После клонирования:
```bash
poetry install
```
Poetry по умолчанию создает виртуальное окружение для зависимостей.
Линтинг и тестирование настроены через фреймворк `prek`, который запускает проверки при каждом коммите:
```bash
poetry run prek install
poetry run prek run --all-files
```
Тесты используют pytest, а snapshot-тесты обрабатываются syrupy:
```bash
poetry run pytest
poetry run poetry pytest --snapshot-update
```
Предоставлена конфигурация Dev Container, поэтому среду можно запустить напрямую в Visual Studio Code или как GitHub CodeSpace.
## Сигналы проекта в README
Блок бейджей указывает на экспериментальную стадию проекта, текущую поддержку, активную деятельность по коммитам, опубликованные релизы на GitHub, распространение через PyPI со статистикой загрузок, статус рабочих процессов сборки и типизации, отчеты о покрытии кода и бейдж OpenSSF Scorecard. Проект также документирует правила внесения вклада в отдельном файле CONTRIBUTING.md и выпущен под лицензией MIT (copyright 2022–2026 Klaas Schoute).
## Применимость
Это небольшая узкоспециализированная библиотека API-клиента: она полезна, когда вам нужны открытые данные Льежа (на данный момент связанные с парковкой) внутри асинхронного приложения на Python, а также может служить шаблоном для оборачивания других наборов данных с той же платформы ODP. Это не хранилище данных, не сервер и не конечное пользовательское приложение.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.