Skip to main content

Bibliothèque et CLI Python pour récupérer des informations météo et des données de prévision.

Project description

meteocast

meteocast est une bibliothèque et une CLI Python pour récupérer des informations météo et des données de prévision.

  • 🖥️ CLI : consultez la météo depuis votre terminal.
  • 🐍 Bibliothèque : intégrez la récupération de données dans votre code Python.

ℹ️ État du projet : la récupération réelle est branchée sur Open-Meteo (gratuit, sans clé API). L'accès aux sources passe par une abstraction (meteocast.providers) prévue pour brancher d'autres fournisseurs — de météo courante et/ou de prévision — via l'option --source (CLI) ou l'argument source= (bibliothèque).


Utiliser la CLI

Depuis PyPI

Le plus simple, sans rien installer de permanent, avec uv :

uvx meteocast forecast Lausanne

uvx télécharge meteocast dans un environnement éphémère et l'exécute.

Pour l'installer durablement comme outil isolé :

uv tool install meteocast     # via uv
# ou
pipx install meteocast        # via pipx

La commande meteocast est alors disponible partout :

$ meteocast --help
Usage: meteocast [OPTIONS] COMMAND [ARGS]...

  Récupère des informations météo et des prévisions.

Commands:
  current   Affiche la météo courante pour une localité.
  forecast  Affiche la prévision sur plusieurs jours pour une localité.

$ meteocast forecast Lausanne --days 5
Prévision sur 5 jours pour Lausanne, Suisse
  2026-07-05 : 14.0  26.0 °C  Ciel dégagé
  ...

# Choisir explicitement la source (par défaut : open-meteo)
$ meteocast current Lausanne --source open-meteo

Depuis un registre privé JFrog Artifactory

Si meteocast est publié sur votre Artifactory interne, pointez l'installeur vers l'index privé et fournissez vos identifiants :

# uv
uv tool install \
  --index "https://<host>/artifactory/api/pypi/<repo>/simple/" \
  meteocast

# pipx
pipx install \
  --index-url "https://<user>:<token>@<host>/artifactory/api/pypi/<repo>/simple/" \
  meteocast

Utiliser la bibliothèque

Depuis PyPI

Ajoutez meteocast à votre projet :

uv add meteocast
# ou
pip install meteocast

Puis, dans votre code :

from meteocast import get_current, get_forecast

# Météo courante
weather = get_current("Lausanne")
print(weather.location, weather.temperature_c, weather.description)

# Prévision sur 5 jours (min / max par jour)
forecast = get_forecast("Lausanne", days=5)
for day in forecast.daily:
    print(day.date, day.temperature_min_c, day.temperature_max_c, day.description)

# Choisir une source explicitement
forecast = get_forecast("Lausanne", days=5, source="open-meteo")

Depuis un registre privé JFrog Artifactory

Décommentez et renseignez le bloc [[tool.uv.index]] dans pyproject.toml :

[[tool.uv.index]]
name = "artifactory"
url = "https://<host>/artifactory/api/pypi/<repo>/simple/"

Exportez les identifiants, puis synchronisez :

export UV_INDEX_ARTIFACTORY_USERNAME="<user>"
export UV_INDEX_ARTIFACTORY_PASSWORD="<token>"
uv add meteocast

Avec pip, sans uv :

pip install \
  --extra-index-url "https://<user>:<token>@<host>/artifactory/api/pypi/<repo>/simple/" \
  meteocast

L'import Python est ensuite identique à l'exemple ci-dessus.


Développement

Prérequis : uv (Python ≥ 3.11 est installé automatiquement au besoin).

uv sync                       # crée .venv/ et installe deps + outils de dev
uv run meteocast --help       # lance la CLI en local
uv run ruff check .           # lint
uv run ruff format .          # formatage
uv run pytest                 # tests

Publier une version

Sur PyPI (automatisé)

La publication est automatique via GitHub Actions (.github/workflows/release.yml) en Trusted Publishing (OIDC, sans token) :

  1. Enregistrer le publisher du dépôt sur https://pypi.org/manage/account/publishing/ (nom du projet meteocast, workflow release.yml).
  2. Mettre à jour __version__ dans src/meteocast/__init__.py.
  3. Taguer et pousser :
    git tag v0.1.0
    git push origin v0.1.0
    
    Le workflow lint, teste, build (uv build) et publie (uv publish).

Publication manuelle si besoin :

uv build          # génère dist/*.whl et dist/*.tar.gz
uv publish        # nécessite un token PyPI (UV_PUBLISH_TOKEN)

Sur un registre privé JFrog Artifactory

uv build
uv publish \
  --publish-url "https://<host>/artifactory/api/pypi/<repo>/" \
  --token "$UV_PUBLISH_TOKEN"

(ou --username <user> --password <token>). Une étape équivalente commentée est prête dans release.yml pour automatiser cette publication.

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

meteocast-0.2.0.tar.gz (17.7 kB view details)

Uploaded Source

Built Distribution

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

meteocast-0.2.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file meteocast-0.2.0.tar.gz.

File metadata

  • Download URL: meteocast-0.2.0.tar.gz
  • Upload date:
  • Size: 17.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for meteocast-0.2.0.tar.gz
Algorithm Hash digest
SHA256 813c6aeb15713d6a04b4aa6517630710ff813b45f411b395f543421d90d5426e
MD5 796735e834e3b27e466a782512db7445
BLAKE2b-256 be742785ce995407448fc52bbcb2892a119a2d4c0cb8c4a3101f76fd81f23747

See more details on using hashes here.

File details

Details for the file meteocast-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: meteocast-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for meteocast-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ac5e7770205c5aac5ee86788ee8ae3864f33e2d6288567d67eb2ba51fe88d28
MD5 6bb0029b6e7392321144522d21c41115
BLAKE2b-256 ec08d9f57701afc4ed2e3da04f17523225a1cda3dc58c80634a430b353f8e6d3

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