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ètre | Type | Requis | Description |
|---|---|---|---|
connection_id | String | Oui | Connexion storage utilisée. |
file_format | Enum | Oui | csv, json, excel, parquet, xml, pdf, flat (texte brut). |
file_selection_mode | Enum | Non | pattern (glob, défaut) ou manual (sélection explicite). |
file_pattern | String | Oui (mode pattern) | Motif glob : *.csv, data_*.csv, ledger_*.parquet… |
selected_files | Array | Oui (mode manuel) | Fichiers choisis explicitement dans le navigateur de fichiers. |
processing_mode | Enum | Non | unified (concaténer tous les fichiers, défaut) ou iterate (traiter chaque fichier séparément). |
iterate_stop_on_error | Boolean | Non | En 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ètre | Défaut | Description |
|---|---|---|
encoding | utf-8 | utf-8, utf-16, latin1, iso-8859-1, cp1252, ascii. |
delimiter | , | Séparateur : virgule, point-virgule, tabulation, pipe ou espace. |
header | true | La première ligne contient les noms de colonnes. |
quotechar | " | Caractère de citation (" ou '). |
decimal | . | Séparateur décimal (. ou ,). |
skip_rows | 0 | Nombre de lignes à ignorer au début du fichier. |
JSON
Lecture via pandas.read_json.
| Paramètre | Défaut | Description |
|---|---|---|
encoding | utf-8 | Encodage du fichier. |
json_orient | records | Orientation des données : records, index, columns, values, split, table. |
json_lines | false | Format JSON Lines (un objet JSON par ligne). |
Excel
Lecture via pandas.read_excel (moteur openpyxl, fichiers .xlsx).
| Paramètre | Défaut | Description |
|---|---|---|
sheet_name | 0 | Nom de la feuille ou index (0 = première feuille). |
header | true | La première ligne contient les noms de colonnes. |
skip_rows | 0 | Nombre de lignes à ignorer au début de la feuille. |
XML
Lecture via pandas.read_xml (lxml).
| Paramètre | Défaut | Description |
|---|---|---|
encoding | utf-8 | Encodage 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.
| Colonne | Type | Description |
|---|---|---|
file_name | String | Nom du fichier source. |
file_size | Integer | Taille en octets. |
page_count | Integer | Nombre de pages. |
text | String | Couche texte extraite (vide sur un document scanné). |
text_length | Integer | Longueur du texte extrait. |
is_scanned | Boolean | Vrai quand la couche texte est inexploitable : moins de 50 caractères par page en moyenne. |
has_embedded_xml | Boolean | Vrai quand une facture électronique est attachée au PDF. |
embedded_xml_name | String | Nom de la pièce jointe trouvée (factur-x.xml…). |
content | String | La 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_xmlvauttrue,contentporte le XML — des données exactes, qu'un From XML suffit à exploiter ; - PDF scanné ou graphique :
is_scannedvauttrueettextest vide.contentporte 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.
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ètre | Défaut | Description |
|---|---|---|
encoding | utf-8 | Encodage du fichier. |
flat_split_lines | true | true : 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_errorcontrôle le comportement en cas d'échec sur un fichier.
En mode pattern, le motif par défaut suit le format choisi (*.csv, *.json,
*.xlsx, *.parquet, *.xml, *.pdf, * pour le brut).
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.