Об этом проекте

## Что это такое `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. Это не хранилище данных, не сервер и не конечное пользовательское приложение.