这个项目能做什么
## 什么是它
`liege` 是一个用于比利时列日开放数据平台发布的开放数据集的异步 Python 客户端。它封装了平台的 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 默认会为依赖项创建一个虚拟环境。
linting 和测试通过 `prek` 框架进行连接,该框架在每次提交时运行检查:
```bash
poetry run prek install
poetry run prek run --all-files
```
测试使用 pytest,快照测试由 syrupy 处理:
```bash
poetry run pytest
poetry run pytest --snapshot-update
```
提供了 Dev Container 配置,因此可以直接在 Visual Studio Code 或 GitHub CodeSpace 中启动环境。
## README 中的项目信号
徽章块表明该项目处于实验阶段,正在维护中,提交活跃,已在 GitHub 上发布版本,在 PyPI 上分发并提供下载统计信息,构建和类型工作流状态,代码覆盖率报告以及 OpenSSF Scorecard 徽章。项目还在单独的 CONTRIBUTING.md 中记录了贡献指南,并根据 MIT 许可证发布(版权 2022–2026 Klaas Schoute)。
## 适用性
这是一个小型、单一目的的 API 客户端库:当您需要在异步 Python 应用程序中使用列日的开放数据(目前仅限停车相关数据)时非常有用,并且可以作为包装同一 ODP 平台其他数据集的模板。它既不是数据存储,也不是服务器或最终用户应用程序。
评论
0 评分人数达到10人后显示
登录后参与讨论。