CSV to Polars
Le module CSVToPolars convertit des fichiers CSV (locaux ou depuis une URL) en DataFrames Polars, en détectant automatiquement le séparateur.
Fonctionnalités
Chargement depuis une URL ou un fichier local, avec gestion des erreurs réseau.
Détection automatique du séparateur (csv.Sniffer), avec fallback sur le point-virgule.
Optimisations : troncature des lignes malformées et suppression des lignes vides.
Usage
La classe CSVToPolars
est utilisée dans :
la fonction
_update_horaires_lieux_depuis_gl
du module database_processor, pour charger les CSV désignés par les variablesCSV_URL_PISCINES
,CSV_URL_MAIRIES
etCSV_URL_MEDIATHEQUES
.la fonction
setup_execution
du module setup_processor, pour charger le csv désigné par la varialbeCSV_URL_HORAIRES
Modules
- class src.smart_watch.utils.CSVToPolars.CSVToPolars(source: str, separator: str = 'auto', has_header: bool = True)[source]
Bases :
object
- __init__(source: str, separator: str = 'auto', has_header: bool = True)[source]
Initialise une instance de la classe pour charger et traiter un fichier CSV avec Polars.
- Paramètres:
- df
DataFrame Polars résultant du chargement du CSV.
- Type:
pl.DataFrame | None
- _detect_separator(sample: str) str [source]
Détecte le séparateur de colonnes dans un échantillon de texte CSV.
Utilise la classe csv.Sniffer pour analyser l’échantillon et déterminer le séparateur utilisé. Si la détection échoue, le séparateur par défaut “;” est utilisé.
- _download_to_temp_file(url: str) Path [source]
Télécharge un fichier CSV depuis une URL et le sauvegarde dans un fichier temporaire.
Cette méthode effectue une requête HTTP GET vers l’URL spécifiée, vérifie le succès de la réponse, puis écrit le contenu du fichier CSV dans un fichier temporaire sur le disque. Le chemin vers ce fichier temporaire est ensuite retourné.
- _process_local_file(file_path: Path, cleanup_temp: bool = False) DataFrame [source]
Traite un fichier CSV local et le convertit en DataFrame Polars. Est appelé par _load_from_url et _load_from_path.
Cette méthode détecte automatiquement le séparateur si nécessaire, lit le fichier CSV en utilisant Polars, et effectue si nécessaire un nettoyage du fichier temporaire après traitement.
- Paramètres:
file_path (Path) – Chemin vers le fichier CSV à traiter.
cleanup_temp (bool, optionnel) – Indique si le fichier temporaire doit être supprimé après traitement. Défaut à False.
- Renvoie:
DataFrame Polars contenant les données du fichier CSV.
- Type renvoyé:
pl.DataFrame
Note
Le séparateur est détecté automatiquement si self.separator vaut « auto ».
Les lignes entièrement vides sont filtrées du DataFrame résultant.
- _load_from_url() DataFrame [source]
Charge un fichier CSV depuis une URL et le convertit en DataFrame Polars.
Cette méthode télécharge le fichier CSV depuis l’URL spécifiée dans self.source, le sauvegarde dans un fichier temporaire, puis le traite pour le convertir en un DataFrame Polars. Le fichier temporaire est supprimé après le traitement.
- Renvoie:
Le DataFrame Polars résultant du fichier CSV téléchargé.
- Type renvoyé:
pl.DataFrame
- _load_from_path() DataFrame [source]
Charge un fichier CSV local et le convertit en DataFrame Polars.
Cette méthode vérifie l’existence du fichier CSV à partir du chemin spécifié dans self.source. Si le fichier existe, il est traité et converti en DataFrame Polars via la méthode _process_local_file. Si le fichier n’est pas trouvé, une exception FileNotFoundError est levée.
- Renvoie:
Le contenu du fichier CSV sous forme de DataFrame Polars.
- Type renvoyé:
pl.DataFrame
- Lève:
FileNotFoundError – Si le fichier CSV local n’est pas trouvé au chemin spécifié.
- load_csv() DataFrame [source]
Charge un fichier CSV en tant que DataFrame Polars.
Cette méthode vérifie si la source du fichier CSV est une URL ou un chemin local, puis charge le fichier en conséquence. Elle lève une exception si aucune source n’est spécifiée. Un message d’information est enregistré après le chargement du fichier.
- Renvoie:
Le DataFrame Polars contenant les données du fichier CSV.
- Type renvoyé:
pl.DataFrame
- Lève:
ValueError – Si aucune source de fichier CSV n’a été spécifiée.