57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
# tests/export_station_data_full.py
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
import sys
|
|
from contextlib import closing
|
|
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parents[3]
|
|
if str(PROJECT_ROOT) not in sys.path:
|
|
sys.path.insert(0, str(PROJECT_ROOT))
|
|
|
|
from meteo.config import InfluxSettings
|
|
from meteo.influx_client import create_influx_client
|
|
from meteo.station_config import default_station_config
|
|
from meteo.export import export_station_data
|
|
|
|
|
|
def main() -> None:
|
|
"""
|
|
Exporte l'historique complet de la station météo vers un fichier CSV.
|
|
|
|
On utilise `start=0`, ce qui signifie "depuis le début des données"
|
|
(en pratique depuis l'epoch, donc tout ce que le bucket contient).
|
|
"""
|
|
settings = InfluxSettings.from_env()
|
|
station_config = default_station_config()
|
|
|
|
print("Configuration InfluxDB :")
|
|
print(f" URL : {settings.url}")
|
|
print(f" Org : {settings.org}")
|
|
print(f" Bucket : {settings.bucket}")
|
|
print()
|
|
|
|
print("⚠ Attention : un export complet peut produire un fichier volumineux "
|
|
"et prendre un certain temps si l'historique est long.")
|
|
print()
|
|
|
|
with closing(create_influx_client(settings)) as client:
|
|
print("→ Export de l'historique complet…")
|
|
output_path = export_station_data(
|
|
client=client,
|
|
bucket=settings.bucket,
|
|
config=station_config,
|
|
start="0", # depuis le début des données
|
|
stop=None, # jusqu'à maintenant
|
|
output_path="data/weather_raw_full.csv",
|
|
file_format="csv", # vous pouvez mettre "parquet" si vous préférez
|
|
)
|
|
|
|
print()
|
|
print(f"✔ Export terminé : {output_path}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|