Metadata-Version: 2.4
Name: yoro
Version: 0.1.1
Summary: Yoro — Geographic addressing via Hilbert curves (GPS ↔ compact codes). 'Yoro' means 'place' in Manding.
Project-URL: Homepage, https://github.com/Altius-Academy-SNC/yoro
Project-URL: Documentation, https://Altius-Academy-SNC.github.io/yoro
Project-URL: Repository, https://github.com/Altius-Academy-SNC/yoro
Author-email: Paul Guindo <paulguindo@altius-group.ch>
License-Expression: MIT
License-File: LICENSE
Keywords: addressing,africa,geocoding,geospatial,gps,hilbert-curve
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3.10
Provides-Extra: all
Requires-Dist: django>=4.2; extra == 'all'
Requires-Dist: fastapi>=0.100; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.20; extra == 'all'
Provides-Extra: dev
Requires-Dist: httpx; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: django
Requires-Dist: django>=4.2; extra == 'django'
Provides-Extra: docs
Requires-Dist: mkdocs-gen-files; extra == 'docs'
Requires-Dist: mkdocs-literate-nav; extra == 'docs'
Requires-Dist: mkdocs-material; extra == 'docs'
Requires-Dist: mkdocstrings[python]; extra == 'docs'
Provides-Extra: fastapi
Requires-Dist: fastapi>=0.100; extra == 'fastapi'
Requires-Dist: uvicorn[standard]>=0.20; extra == 'fastapi'
Description-Content-Type: text/markdown

# Yoro

Geographic addressing via Hilbert curves — GPS ↔ compact alphanumeric codes.

*"Yoro" means "place" in Manding (West Africa).*

## Install

```bash
pip install yoro              # core only
pip install yoro[django]      # Django/GeoDjango integration
pip install yoro[fastapi]     # FastAPI server
pip install yoro[all]         # everything
```

## Quick start

```python
import yoro

code = yoro.encode(6.8, -5.3, domain="CI")   # "CI-..."
result = yoro.decode(code)                     # {"lat", "lon", "bounds", ...}
nbrs = yoro.neighbors(code)                    # 8 adjacent cells
```

## Django integration

```python
# settings.py
INSTALLED_APPS = [..., "yoro.django"]

# urls.py
urlpatterns = [
    path("api/v1/yoro/", include("yoro.django.urls")),
]
```

## FastAPI server

```bash
yoro serve --port 8000
# or
python -m yoro.fastapi
```

## CLI

```bash
yoro encode 6.8 -5.3 --domain CI
yoro decode CI-4H7A3B
```

## License

MIT — Paul Guindo / Altius Academy SNC.
