dilicom_parser package

Subpackages

Module contents

dilicom_parser

Package racine exposant les principaux symboles publics.

Il expose ici les classes utilitaires fréquemment importées par les utilisateurs et les tests (ex: DistributorParser).

class dilicom_parser.DistributorParser(distributor_list)

Bases : object

Classe de service pour le parsing des fichiers reçus de Dilicom. Cette classe est responsable de :

  • Lire les fichiers depuis un répertoire spécifié.

  • Déterminer le type de fichier en fonction de son en-tête.

  • Extraire les données pertinentes en fonction du type de fichier.

  • Stocker les données extraites dans des structures de données appropriées.

Attributs :
  • directory : Path - Le répertoire où les fichiers sont stockés.

  • data : Optional[pd.DataFrame] - Les données extraites du fichier.

  • file_path : Optional[Path] - Le chemin complet du fichier en cours de traitement.

  • filename : str - Le nom du fichier en cours de traitement.

  • distributor_data : Optional[DistributorData] - Les données du distributeur extraites.

Méthodes :
  • __init__() : Initialise les attributs de la classe et crée le répertoire s’il n’existe pas

  • parse()Parse les fichiers de type “distributor” et extrait les données

    (combine _transform_data_to_dataframe() et _df_to_distributor_data()).

  • _transform_data_to_dataframe() : transforme la donnée texte en un DataFrame pandas.

  • _df_to_distributor_data() : Convertit un DataFrame en une instance de DistributorData.

parse()

Parse les fichiers de type “distributor” et extrait les données.

Paramètres:

None

Renvoie:

Liste des données parsées

Type renvoyé:

list[DistributorData]

class dilicom_parser.ParsersRegistry(config_path=None)

Bases : object

Registre centralisé pour accéder aux parsers du package.

get_config(type_name)

Récupère la configuration pour un type.

Paramètres:

type_name (str) – Nom du type

Type renvoyé:

ParserConfig

Renvoie:

Configuration du type

Lève:

KeyError – Si le type n’existe pas

get_header_start()

Liste le contenu de l’en-tête pour tous les types disponibles.

Type renvoyé:

list[str]

Renvoie:

Contenu de l’en-tête pour tous les types

get_headers_and_types()

Retourne un dictionnaire {header_content: type_name} pour tous les types configurés.

Type renvoyé:

dict[str, str]

Renvoie:

Dictionnaire mappant le contenu d’en-tête au nom du type

get_module(type_name)

Récupère le module de parser complet.

Paramètres:

type_name (str) – Nom du type

Type renvoyé:

Any

Renvoie:

Module importé

Lève:

ImportError – Si le module ne peut pas être importé

get_parser(type_name)

Récupère le callable de parsing pour un type donné.

Paramètres:

type_name (str) – Nom du type (ex : « distributor », « eancom »)

Type renvoyé:

Callable[..., Any]

Renvoie:

Fonction ou classe de parsing

Lève:
  • KeyError – Si le type n’existe pas dans la configuration

  • ImportError – Si le module ou le callable ne peut pas être importé

list_types()

Liste tous les types disponibles.

Type renvoyé:

list[str]

dilicom_parser.get_registry()

Retourne l’instance globale du registre (singleton).

Type renvoyé:

ParsersRegistry

Renvoie:

Instance ParsersRegistry