Metadata-Version: 2.4
Name: dimu
Version: 0.2.1
Summary: Transparent Python client and AI-friendly API for DigitaltMuseum
Author-email: Henrik Blidh <henrik.blidh@nedomkull.com>
Maintainer-email: Henrik Blidh <henrik.blidh@nedomkull.com>
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx<1,>=0.28
Requires-Dist: pydantic<3,>=2.12
Provides-Extra: api
Requires-Dist: fastapi<1,>=0.115; extra == "api"
Requires-Dist: uvicorn<1,>=0.34; extra == "api"
Provides-Extra: docs
Requires-Dist: fastapi<1,>=0.115; extra == "docs"
Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
Requires-Dist: mkdocs-material<10,>=9.6; extra == "docs"
Requires-Dist: mkdocs-static-i18n<2,>=1.3.1; extra == "docs"
Requires-Dist: mkdocstrings[python]<1.1,>=0.29; extra == "docs"
Provides-Extra: test
Requires-Dist: fastapi<1,>=0.115; extra == "test"
Dynamic: license-file

# dimu - Digitalt Museum-klient och FastAPI-proxy

`dimu` är en transparent Python-klient och en valfri FastAPI-proxy för
[DigitaltMuseums publika API](https://store-search.dimu.org/docs). Indata
valideras med Pydantic, men lyckade sök- och objektsvar lämnas orörda.

```python
from dimu import DimuClient, SearchRequest, SearchTerm

with DimuClient() as client:  # använder demo och varnar om DIMU_API_KEY saknas
    response = client.search(SearchRequest(query="Uppsala slott", limit=5))
    response.raise_for_status()
    print(response.json())
```

Installera biblioteket med `pip install dimu`. För HTTP-tjänsten används
`pip install "dimu[api]"` och följande miljövariabler:

```text
DIMU_API_KEY=<valfri produktionsnyckel från DigitaltMuseum>
DIMU_SERVICE_TOKEN=<lång slumpmässig token>
```

Starta sedan tjänsten:

```console
uvicorn dimu.api:app --host 127.0.0.1 --port 8000
```

För en Ubuntu-server med Supervisor, Nginx och Let's Encrypt:

```console
sudo DIMU_SERVICE_TOKEN='byt-mig' DIMU_API_KEY='demo' \
  bash deploy/ubuntu.sh api.example.se admin@example.se
```

En container kan byggas med `docker build -t dimu .` och köras med
`docker run --rm -p 8000:8000 -e DIMU_SERVICE_TOKEN='byt-mig' dimu`.
GitHub Actions publicerar Git-taggen och `latest` till GitHub Container
Registry och skapar en GitHub Release när en Git-tagg pushas. Varje release
innehåller `linux/amd64` och `linux/arm64`.

Den publicerade imagen är publik och kan hämtas utan inloggning:

```console
docker pull ghcr.io/nedomkull-mathematical-modeling/digitaltmuseum-ai:latest
```

Fullständig dokumentation på svenska och norskt bokmål finns i katalogen
`docs/` och byggs med `mkdocs build --strict`. Tester körs med
`python -m unittest discover -s tests -v`.

Programvaran är licensierad under MIT. Metadata och bilder får återanvändas
enligt licensen i respektive post. Paketet är ingen lokal spegel och lagrar
inte DigitaltMuseums data.
