Lat/Lon to administrative hierarchy lookup with managed datasets.
Project description
cadis
cadis is the single public control layer of the Cadis system.
It orchestrates:
- dataset install and bootstrap lifecycle
- world resolution and runtime execution coordination
- deterministic state to user-facing actions
- SDK + CLI + REST integration surfaces
Install
pip install cadis
Quick Start (CLI)
cadis lookup 41.8785708032352 12.505896501941912
Typical flow:
- If the country dataset is already installed, Cadis prints
Region: ...immediately. - If the dataset is missing but supported, Cadis offers to download it and retries the lookup after install.
- Sea and offshore results are shown directly in human-readable form.
Quick Start (SDK)
from cadis import CadisSDK
sdk = CadisSDK()
out = sdk.lookup(25.0330, 121.5654)
print(out["execution"]["lookup_status"])
Interaction Modes
- CLI guide:
docs/cli.md - SDK guide:
docs/sdk.md - Docker/REST guide:
docs/rest.md - Deployment guide:
docs/deployment.md - CI/CD examples:
docs/cicd-examples.md - Stable release manifest:
releases/stable.json - Stable manifest updater:
scripts/update_stable_release_manifest.py
Core APIs
lookup(lat, lon)lookup_many(points=[{"id": "...", "lat": ..., "lon": ...}])bootstrap(iso2, ...)reinstall(iso2, ...)info()CadisSDKCadisRemoteSDK
Dataset Lockdown
By default, Cadis serves lookups from any installed dataset in the cache folder.
To restrict serving to a subset of installed country datasets, set:
export CADIS_ALLOWED_ISO2=TW,JP
When enabled, Cadis fails lookups outside the allowlist with state.dataset.status = "blocked" and refuses bootstrap/reinstall for those countries.
Hierarchy Repair Model
Cadis treats dataset artifacts as read-only facts and performs lookup-time interpretation only. Polygon evidence remains the primary source for administrative hierarchy results.
When polygon evidence is missing an intermediate administrative level, Cadis may
use the dataset hierarchy.json layer to complete the chain. Repair is
capability-driven:
- Datasets with explicit branch identity metadata are repaired only when the candidate belongs to the same branch/path as the polygon evidence.
- Older datasets without branch identity metadata remain supported through the guarded legacy repair path.
- Name-based fallback is only used when no branch evidence can be established and the name resolves to exactly one feature in the dataset.
Cadis does not mutate datasets during repair. Invalid or cross-branch repair candidates are rejected instead of overriding polygon-derived evidence.
Architecture
cadis (public control layer)
-> world resolution (`cadis.world`)
-> dataset install/provisioning (`cadis.cdn`)
-> dataset bootstrap/lookup runtime (`cadis.runtime`)
-> deterministic structural engine (`cadis.core`)
-> remote REST surface (`cadisd`)
ISO Code Policy
Cadis uses ISO 3166-1 alpha-2 codes as technical identifiers.
These codes are interpreted strictly according to the ISO 3166 standard and are used solely for data partitioning and administrative dataset selection.
Cadis does not interpret ISO codes as political statements or sovereignty declarations.
Supported ISO 3166-1 Entities
| ISO2 | Name | Dataset ID | Package Size (tar.gz) | Unpacked Size | Release Date (UTC) |
|---|---|---|---|---|---|
| TW | Taiwan | tw.admin | 1.8 MB | 2.0 MB | 2026-04-05 |
| JP | Japan | jp.admin | 20.4 MB | 21.4 MB | 2026-04-05 |
| GB | United Kingdom | gb.admin | 4.8 MB | 5.2 MB | 2026-04-05 |
| IT | Italy | it.admin | 22.9 MB | 26.0 MB | 2026-04-05 |
| KR | South Korea | kr.admin | 2.4 MB | 3.6 MB | 2026-04-05 |
| SE | Sweden | se.admin | 0.2 MB | 0.3 MB | 2026-04-05 |
| NO | Norway | no.admin | 0.1 MB | 0.3 MB | 2026-04-05 |
| DK | Denmark | dk.admin | 0.1 MB | 0.2 MB | 2026-04-05 |
| BE | Belgium | be.admin | 2.5 MB | 2.8 MB | 2026-04-04 |
| NL | Netherlands | nl.admin | 2.6 MB | 2.8 MB | 2026-04-11 |
| FR | France | fr.admin | 79.6 MB | 93.2 MB | 2026-04-25 |
| DE | Germany | de.admin | 26.4 MB | 30.6 MB | 2026-04-27 |
| ES | Spain | es.admin | 11.3 MB | 14.7 MB | 2026-04-27 |
| PT | Portugal | pt.admin | 5.5 MB | 6.8 MB | 2026-04-27 |
| FI | Finland | fi.admin | 0.9 MB | 1.1 MB | 2026-04-27 |
| US | United States | us.admin | 30.0 MB | 41.5 MB | 2026-04-27 |
Additional ISO 3166-1 entity datasets will be published as they become available.
The us.admin dataset also covers supported U.S. territory extracts in the published source set. Cadis routes Puerto Rico (PR) and U.S. Virgin Islands (VI) lookups through the US dataset package.
License
Cadis source code is licensed under Apache License 2.0. See LICENSE.
The bundled file cadis/world/data/ne.global.v0.1.0.cgd is transformed from Natural Earth data. Natural Earth states that its raster and vector data on the site are public domain and that no permission is needed to use it. See cadis/world/data/CGD_SPEC.md and THIRD_PARTY_NOTICES.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cadis-0.6.8.tar.gz.
File metadata
- Download URL: cadis-0.6.8.tar.gz
- Upload date:
- Size: 9.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b74321ef5b7dacad119927cae12f6052afc5ac706280d4c31eb738b3a2c381a
|
|
| MD5 |
ef3337ee07f49b590d9907deb12e48b8
|
|
| BLAKE2b-256 |
74f32bea8f42d3e1720c8c7ec155c23cadb13e324058649d07eb41c85e3a494d
|
File details
Details for the file cadis-0.6.8-py3-none-any.whl.
File metadata
- Download URL: cadis-0.6.8-py3-none-any.whl
- Upload date:
- Size: 9.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cfda5f07e7012fd8c201ee15819f55fa9b93726bc6d41a4528dd722097afe4f
|
|
| MD5 |
23a67c12a10a967cd7dd7ebe65291660
|
|
| BLAKE2b-256 |
1af558c3d5fa1504668666033df0982f3eddb8b5404bdf84b83e9fb8ae071bd4
|