منصوبے کے بارے میں
## یہ کیا ہے
`liege` بیلجیم کے Liège کے Open Data Platform کے شائع کردہ اوپن ڈیٹا سیٹس کے لیے ایک asynchronous Python کلائنٹ ہے۔ یہ پلیٹ فارم کی API کو ریپ (wrap) کرتا ہے تاکہ Python کوڈ — جو عام طور پر ایک async event loop کے اندر ہوتا ہے — خام HTTP درخواستوں اور JSON پارسنگ کے بجائے ٹائپڈ آبجیکٹس کے طور پر ریکارڈز حاصل کر سکے۔
یہ پیکیج اصل میں صرف پارکنگ ڈیٹا حاصل کرنے کے لیے لکھا گیا تھا، لیکن README میں ذکر ہے کہ کوڈ بیس اس طرح ترتیب دیا گیا ہے کہ اسی پلیٹ فارم سے اضافی ڈیٹا سیٹس آسانی سے شامل کیے جا سکتے ہیں۔
## انسٹالیشن
```bash
pip install liege
```
## کور کیے گئے ڈیٹا سیٹس
README میں دو ڈیٹا سیٹس کی دستاویزات موجود ہیں:
- **Disabled parking spaces / Stationnement PMR** — 1062 مقامات۔
- **Garages / Les parkings voitures hors voirie** — 32 مقامات۔
ہر ڈیٹا سیٹ کو ایک `limit` پیرامیٹر (ڈیفالٹ 10) کے ساتھ queried کیا جاتا ہے جو کنٹرول کرتا ہے کہ کتنے نتائج واپس کیے جائیں۔
### معذور پارکنگ کے فیلڈز
`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).
## استعمال کی مثال
کلائنٹ کو ایک async context manager کے طور پر ڈیزائن کیا گیا ہے:
```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 استعمال کرتے ہیں، جبکہ snapshot ٹیسٹ 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 کلائنٹ لائبریری ہے: یہ تب مفید ہے جب آپ کو ایک async Python ایپلی کیشن کے اندر Liège اوپن ڈیٹا (فی الحال پارکنگ سے متعلق) کی ضرورت ہو، اور اسی ODP پلیٹ فارم سے دیگر ڈیٹا سیٹس کو ریپ کرنے کے لیے ایک ٹیمپلیٹ کے طور پر مفید ہے۔ یہ کوئی ڈیٹا اسٹور، سرور، یا اینڈ-یوزر ایپلی کیشن نہیں ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.