Skip to main content

Libreria Python asincrona per interagire con PocketBase e SDC, pensata per Windmill

Project description

windmill-sdk

pipeline status coverage report

pre-commit enabled code style: black

Libreria Python asincrona per interagire con sistemi PocketBase e SDC, pensata per l'uso all'interno di Windmill.

✨ Funzionalità

  • Recupero asincrono dei tenant da PocketBase (filtrabile)
  • Interrogazione dei servizi da API SDC con autenticazione automatica
  • Compatibilità futura con Directus tramite interfaccia unificata
  • Supporto alla validazione con Pydantic
  • Invio opzionale di notifiche su Slack in caso di errore

📦 Installazione

pip install windmill-sdk
# oppure
poetry add windmill-sdk

⚙️ Requisiti

  • Python 3.10+
  • httpx, pydantic, pytest, respx, pytest-asyncio

🚀 Esempio d’uso

import asyncio
from windmill_sdk.clients.pocketbase import PocketBaseClient
from windmill_sdk.clients.sdc import SDCClient

async def main():
    pb = PocketBaseClient("https://pb.example.com", "admin", "password")
    await pb.authenticate()
    tenants = await pb.list_tenants(filters={"identifier": "oc-pnrr-1"})
    await pb.close()

    for tenant in tenants:
        sdc = SDCClient(str(tenant.production_url), "sdc_user", "sdc_pass")
        services = await sdc.list_services()
        await sdc.close()
        for service in services:
            print(service.name)

asyncio.run(main())

✅ Test

pytest

📁 Struttura del progetto

windmill_sdk/
├── clients/
│   ├── pocketbase.py
│   ├── sdc.py
│   ├── directus.py
│   └── base_client.py
├── models.py
├── notifiers/
│   └── slack.py

🧪 Esecuzione dei test

Per eseguire la suite di test e controllare che tutto funzioni correttamente:

pytest

Assicurati di avere le dipendenze installate:

pip install -r requirements-dev.txt

✅ Verifica della copertura

Per eseguire i test e generare un report di copertura del codice:

pytest --cov=windmill_sdk --cov-report=term-missing

Questo comando:

  • Esegue tutti i test
  • Mostra a terminale le righe di codice non coperte
  • Usa il modulo windmill_sdk come riferimento per il calcolo della copertura

Puoi anche generare un report HTML navigabile:

pytest --cov=windmill_sdk --cov-report=html

Il report sarà disponibile nella cartella htmlcov/index.html.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

windmill_sdk-0.0.9.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

windmill_sdk-0.0.9-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file windmill_sdk-0.0.9.tar.gz.

File metadata

  • Download URL: windmill_sdk-0.0.9.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.0 Darwin/24.4.0

File hashes

Hashes for windmill_sdk-0.0.9.tar.gz
Algorithm Hash digest
SHA256 070df0a188075583ce93c8506a5601f1a255e5b56b6da5b3a7a712daf58d4a3c
MD5 95ea018d17c530416cc9ffec25eb9d9c
BLAKE2b-256 1650b2f539a08b8ec8e679f09d1efa55ce7f95a3373a5dc1a685e98100dc0ecf

See more details on using hashes here.

File details

Details for the file windmill_sdk-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: windmill_sdk-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.0 Darwin/24.4.0

File hashes

Hashes for windmill_sdk-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 f7715a2392b28c997caf76e9d6143f2bd3fc01006ce3765ef4a29e1e39412e66
MD5 5cdfb8651fb3de4251684e177bbab465
BLAKE2b-256 7d2204abe4c6c276a256d99512770597cf614bcd0b5419454df158e02d72695c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page