EN
Copied
Modules

Trier

Objectif

Réordonner les lignes produites par une étape antérieure du pipeline selon une colonne choisie, en ordre croissant ou décroissant, et tronquer éventuellement le résultat aux N premières lignes. Sort est interne au pipeline (voir /docs/fr/concepts/pipeline-orchestration) : il consomme la sortie du nœud prédécesseur et émet les mêmes colonnes dans un nouvel ordre. Un usage courant : ordonner une liste fraîchement scrapée par completeness décroissant et garder les 200 premières avant de transmettre le résultat à une étape de recherche d'emails ou de prospection. Sort n'ajoute, ne retire ni ne réécrit jamais de colonnes — la troncature est le seul changement de contenu qu'il puisse appliquer.

Entrées

La configuration est attachée au nœud de pipeline. Il n'y a pas de corps de requête autonome.

Champ Type Requis Défaut Description
sort_by chaîne (enum) oui completeness Colonne servant de clé de tri.
direction "asc" | "desc" oui desc Sens du tri.
top_n entier | null non null Garder uniquement les top_n premières lignes après tri. Min 1.

Valeurs acceptées pour sort_by :

Valeur Signification
completeness Taux global de remplissage des champs d'enrichissement d'une ligne.
note Note en étoiles de l'établissement (Google Maps).
nb_avis Nombre d'avis sur l'établissement.
email_quality Score de qualité de l'email extrait (personnel > rôle).

top_n doit être un entier positif ou null. Une valeur null conserve toutes les lignes.

Sorties

Même schéma que le nœud prédécesseur — sort est déclaré passthrough dans le graphe du pipeline. Le nœud aval voit les mêmes colonnes qu'il aurait vues sans l'étape de tri, simplement dans un ordre différent et éventuellement avec moins de lignes.

Propriété Comportement
Colonnes Identiques à l'entrée, octet pour octet.
Ordre des lignes Déterminé par sort_by et direction.
Nombre de lignes min(input_count, top_n) si top_n est défini, sinon égal à l'entrée.
Type de pipeline Identique à la source amont (résolu transitivement à travers sort/filter).

Cycle de vie

Cycle de vie de job standard — voir /docs/fr/concepts/jobs-lifecycle. Une étape de tri est créée automatiquement par le runner de pipeline lorsque le prédécesseur atteint done, et est traitée comme une étape structurelle de pipeline plutôt que comme une action facturable.

Pipeline

Propriété Valeur
Catégorie process
Pipelinable oui
Needs aucun (accepte toute entrée)
Produces aucun (sortie passthrough)
Type d'entrée pipeline any_pois
Type de sortie pipeline passthrough

Comme le type de sortie est passthrough, le type effectif en aval est hérité du prédécesseur non-passthrough le plus proche. Un tri placé après scrap expose le même contrat aval que scrap exposerait seul.

Endpoints

Sort n'a pas d'endpoint REST public — il est interne au pipeline (voir /docs/fr/concepts/pipeline-orchestration) et créé exclusivement par le runner de pipeline lorsque le nœud prédécesseur termine, via l'aide interne create_pipeline_internal_job(job_type="sort", …).

Pour utiliser sort, le définir comme un nœud dans un pipeline créé via l'API pipelines :

Méthode Chemin Rôle
POST /api/pipelines Créer un pipeline contenant un nœud sort.
GET /api/pipelines/{id} Inspecter la configuration et les statuts.

Une entrée de nœud pour sort ressemble à :

{
  "type": "sort",
  "config": {
    "sort_by": "completeness",
    "direction": "desc",
    "top_n": 200
  }
}

Le runner lit config à l'exécution et émet le CSV trié dans le répertoire de job du nœud.

Limites

Limites globales — voir /docs/fr/concepts/limits. Sort n'est pas facturé (coût quota 0), tourne dans le pool parallèle standard, et sa taille d'entrée maximale est bornée par la sortie du prédécesseur, pas par sort lui-même.

Erreurs

Condition Résultat
sort_by référence une colonne inconnue Le nœud passe à failed ; les nœuds aval restent pending.
direction n'est pas asc ou desc Le nœud passe à failed avec une erreur de validation.
top_n vaut 0 ou est négatif Rejeté à la création du pipeline ; l'API renvoie 400.
Entrée vide Le nœud termine en done avec un CSV de sortie vide.
Prédécesseur n'ayant pas atteint done Sort reste pending ; il n'est jamais planifié tant que le parent n'a pas fini.

Et après