Skip to main content

Source fichier

Lit des fichiers depuis n'importe quelle connexion storage (Local, SFTP, FTP, S3, GCS, Azure). Le format est choisi sur la brick : une même connexion peut servir plusieurs formats. Cette brick unifiée remplace les anciennes bricks CSV / JSON / Excel / Parquet / XML Import.

La brick n'a pas de port d'entrée et produit une sortie out avec les données extraites. La connexion se choisit dans le panneau de configuration, voir Créer une connexion.

Paramètres communs​

ParamètreTypeRequisDescription
connection_idStringOuiConnexion storage utilisée.
file_formatEnumOuicsv, json, excel, parquet, xml, pdf, flat (texte brut).
file_selection_modeEnumNonpattern (glob, défaut) ou manual (sélection explicite).
file_patternStringOui (mode pattern)Motif glob : *.csv, data_*.csv, ledger_*.parquet…
selected_filesArrayOui (mode manuel)Fichiers choisis explicitement dans le navigateur de fichiers.
processing_modeEnumNonunified (concaténer tous les fichiers, défaut) ou iterate (traiter chaque fichier séparément).
iterate_stop_on_errorBooleanNonEn mode itération : arrêter au premier fichier en erreur (défaut : continuer).

Les options spécifiques au format s'affichent selon le file_format choisi ; détail par format ci-dessous.

CSV​

Lecture via pandas.read_csv.

ParamètreDéfautDescription
encodingutf-8utf-8, utf-16, latin1, iso-8859-1, cp1252, ascii.
delimiter,Séparateur : virgule, point-virgule, tabulation, pipe ou espace.
headertrueLa première ligne contient les noms de colonnes.
quotechar"Caractère de citation (" ou ').
decimal.Séparateur décimal (. ou ,).
skip_rows0Nombre de lignes à ignorer au début du fichier.

JSON​

Lecture via pandas.read_json.

ParamètreDéfautDescription
encodingutf-8Encodage du fichier.
json_orientrecordsOrientation des données : records, index, columns, values, split, table.
json_linesfalseFormat JSON Lines (un objet JSON par ligne).

Excel​

Lecture via pandas.read_excel (moteur openpyxl, fichiers .xlsx).

ParamètreDéfautDescription
sheet_name0Nom de la feuille ou index (0 = première feuille).
headertrueLa première ligne contient les noms de colonnes.
skip_rows0Nombre de lignes à ignorer au début de la feuille.

XML​

Lecture via pandas.read_xml (lxml).

ParamètreDéfautDescription
encodingutf-8Encodage du fichier.
xml_xpath./*Expression XPath désignant les nœuds à convertir en lignes.

Parquet​

Lecture via pandas.read_parquet (pyarrow). Aucun paramètre spécifique : le schéma et la compression sont portés par le fichier lui-même.

PDF​

Lecture via pypdf. Contrairement aux autres formats, un fichier PDF produit une seule ligne : un document ne se met pas naturellement en table. Les colonnes produites servent à décider quoi en faire.

Aucun paramètre. Un PDF n'a pas de schéma de données à interpréter : c'est le document lui-même qui est décrit, donc les colonnes sont les mêmes pour tous les fichiers. Choisir le format PDF suffit à fixer le schéma de sortie, qui est connu sans lire quoi que ce soit — la grille des colonnes de sortie se remplit d'elle-même dans l'éditeur.

ColonneTypeDescription
file_nameStringNom du fichier source.
file_sizeIntegerTaille en octets.
page_countIntegerNombre de pages.
textStringCouche texte extraite (vide sur un document scanné).
text_lengthIntegerLongueur du texte extrait.
is_scannedBooleanVrai quand la couche texte est inexploitable : moins de 50 caractères par page en moyenne.
has_embedded_xmlBooleanVrai quand une facture électronique est attachée au PDF.
embedded_xml_nameStringNom de la pièce jointe trouvée (factur-x.xml…).
contentStringLa matière à traiter : le XML de facture s'il est attaché, sinon le PDF encodé en base64.

Deux natures de PDF, deux traitements​

Un PDF de facture arrive sous deux formes qui n'appellent pas le même travail :

  • PDF hybride (Factur-X, ZUGFeRD, Order-X) : un XML structuré est attaché au document. has_embedded_xml vaut true, content porte le XML — des données exactes, qu'un From XML suffit à exploiter ;
  • PDF scanné ou graphique : is_scanned vaut true et text est vide. content porte alors le document encodé, seule matière restante.

content porte donc toujours ce qu'il y a à traiter, et has_embedded_xml dit laquelle des deux natures on tient.

Un Router sur has_embedded_xml aiguille chaque document vers la bonne branche.

tip

Combine le format PDF avec processing_mode: iterate pour traiter les documents un par un : la mémoire reste bornée même sur un lot volumineux.

Brut / texte plat​

Lecture texte brute, sans parsing.

ParamètreDéfautDescription
encodingutf-8Encodage du fichier.
flat_split_linestruetrue : une ligne du fichier = une ligne du flux (colonne line) ; false : tout le fichier dans une seule cellule (colonne content).

Multi-fichiers : unifié ou itération​

Quand le motif correspond à plusieurs fichiers :

  • Unifié (défaut) : les fichiers sont lus puis concaténés en un seul DataFrame. Les schémas doivent être compatibles entre fichiers : une validation stricte échoue sinon (sauf format brut, mono-colonne par nature) ;
  • Itérer : la séquence aval est exécutée une fois par fichier. Utile pour traiter chaque fichier indépendamment (par exemple, une Écriture fichier en aval reprend alors le nom du fichier source). iterate_stop_on_error contrôle le comportement en cas d'échec sur un fichier.
tip

En mode pattern, le motif par défaut suit le format choisi (*.csv, *.json, *.xlsx, *.parquet, *.xml, *.pdf, * pour le brut).

note

L'aperçu de schéma affiché dans l'éditeur est calculé sur les 5 premières lignes du premier fichier correspondant. En PDF, l'aperçu n'encode pas le document en base64 : seule la forme des colonnes est calculée.