AIDGE IN SPACE
Banc d'essai de compression d'image apprise pour l'embarqué
Chargement...
Recherche...
Aucune correspondance
Référence de la classe aidge_in_space.jobs.JobStore

Accès à la base des jobs d'entraînement (une connexion par opération). Plus de détails...

Fonctions membres publiques

 __init__ (self, str|Path|None db_path=None)
 Ouvre (et crée si besoin) la base.
Path job_dir (self, int job_id)
 Dossier d'un job (config.yaml, train.log) ; non créé.
int submit (self, dict config)
 Insère un job en file d'attente.
Job get (self, int job_id)
 Lit un job.
list[Job] list_jobs (self, int|None limit=200, Iterable[str]|None statuses=None)
 Liste les jobs du plus récent au plus ancien.
Job|None claim_next (self, str worker)
 Prend atomiquement le plus ancien job en attente et le passe en cours.
None heartbeat (self, int job_id)
 Met à jour le battement de cœur d'un job en cours (sans effet sinon).
None set_ckpt_path (self, int job_id, str path)
 Enregistre le chemin du checkpoint d'un job.
None reset_progress (self, int job_id, int step)
 Efface les métriques de pas supérieur à step et remet last_step.
None log_metrics (self, int job_id, int step, str kind, dict data)
 Consigne une ligne de métriques et avance last_step.
list[dict] metrics (self, int job_id, str|None kind=None)
 Métriques d'un job triées par pas (la ligne la plus récente par (kind, pas)).
str cancel (self, int job_id)
 Annule un job en attente ou demande l'annulation d'un job en cours.
bool cancel_requested (self, int job_id)
 Indique si l'annulation d'un job a été demandée.
None finish (self, int job_id, str status, str|None error=None)
 Fixe le statut final d'un job en cours.
None requeue (self, int job_id)
 Remet en file un job en échec, annulé ou interrompu (même id : reprise du checkpoint).
list[int] recover_orphans (self, float stale_after_s=60.0)
 Passe en interrompus les jobs en cours dont le battement de cœur est périmé.
None worker_heartbeat (self, str name, int|None job_id=None)
 Enregistre ou met à jour la présence d'un worker.
bool worker_alive (self, float max_age_s=30.0)
 Indique si un worker a donné signe de vie récemment.

Attributs publics

 path = Path(db_path) if db_path is not None else Path(config.RUNS_DIR) / DB_NAME
 Chemin de la base SQLite.

Fonctions membres protégées

sqlite3.Connection _connect (self)
 Ouvre une connexion neuve (mode autocommit, accès par nom de colonne).
 _read (self)
 Contexte de lecture : connexion fermée à la sortie.
 _write (self)
 Contexte d'écriture : transaction BEGIN IMMEDIATE validée (ou annulée sur exception).
None _init_schema (self)
 Crée le schéma si la base est neuve et amorce l'AUTOINCREMENT sur les checkpoints existants.

Fonctions membres protégées statiques

sqlite3.Row _require (sqlite3.Connection con, int job_id)
 Lit le statut et le drapeau d'annulation d'un job, ou lève KeyError.

Description détaillée

Accès à la base des jobs d'entraînement (une connexion par opération).

Documentation des constructeurs et destructeur

◆ __init__()

aidge_in_space.jobs.JobStore.__init__ ( self,
str | Path | None db_path = None )

Ouvre (et crée si besoin) la base.

Paramètres
db_pathChemin de la base ; None : config.RUNS_DIR / DB_NAME (lu à l'appel).
Exceptions
RuntimeErrorSi la base a un schéma plus récent que SCHEMA_VERSION.

Documentation des fonctions membres

◆ _connect()

sqlite3.Connection aidge_in_space.jobs.JobStore._connect ( self)
protected

Ouvre une connexion neuve (mode autocommit, accès par nom de colonne).

Renvoie
La connexion, à fermer par l'appelant.

◆ _init_schema()

None aidge_in_space.jobs.JobStore._init_schema ( self)
protected

Crée le schéma si la base est neuve et amorce l'AUTOINCREMENT sur les checkpoints existants.

Exceptions
RuntimeErrorSi user_version dépasse SCHEMA_VERSION.

◆ _read()

aidge_in_space.jobs.JobStore._read ( self)
protected

Contexte de lecture : connexion fermée à la sortie.

Renvoie
Un générateur de connexion.

◆ _require()

sqlite3.Row aidge_in_space.jobs.JobStore._require ( sqlite3.Connection con,
int job_id )
staticprotected

Lit le statut et le drapeau d'annulation d'un job, ou lève KeyError.

Paramètres
conConnexion ouverte.
job_idIdentifiant du job.
Renvoie
Ligne (id, status, cancel_requested).
Exceptions
KeyErrorSi le job est inconnu.

◆ _write()

aidge_in_space.jobs.JobStore._write ( self)
protected

Contexte d'écriture : transaction BEGIN IMMEDIATE validée (ou annulée sur exception).

Renvoie
Un générateur de connexion.

◆ cancel()

str aidge_in_space.jobs.JobStore.cancel ( self,
int job_id )

Annule un job en attente ou demande l'annulation d'un job en cours.

Paramètres
job_idIdentifiant du job.
Renvoie
"cancelled" (job en attente) ou "cancel_requested" (job en cours).
Exceptions
ValueErrorSi le job est déjà dans un statut final.
KeyErrorSi le job est inconnu.

◆ cancel_requested()

bool aidge_in_space.jobs.JobStore.cancel_requested ( self,
int job_id )

Indique si l'annulation d'un job a été demandée.

Paramètres
job_idIdentifiant du job.
Renvoie
Vrai si cancel_requested vaut 1.
Exceptions
KeyErrorSi le job est inconnu.

◆ claim_next()

Job | None aidge_in_space.jobs.JobStore.claim_next ( self,
str worker )

Prend atomiquement le plus ancien job en attente et le passe en cours.

Paramètres
workerNom du worker.
Renvoie
Le job pris, ou None si la file est vide.

◆ finish()

None aidge_in_space.jobs.JobStore.finish ( self,
int job_id,
str status,
str | None error = None )

Fixe le statut final d'un job en cours.

Paramètres
job_idIdentifiant du job.
statusStatut final, parmi FINAL_STATUSES.
errorMessage d'erreur éventuel (tronqué à 4 000 caractères).
Exceptions
ValueErrorSi status n'est pas final ou si le job n'est pas en cours.
KeyErrorSi le job est inconnu.

◆ get()

Job aidge_in_space.jobs.JobStore.get ( self,
int job_id )

Lit un job.

Paramètres
job_idIdentifiant du job.
Renvoie
Le Job.
Exceptions
KeyErrorSi le job est inconnu.

◆ heartbeat()

None aidge_in_space.jobs.JobStore.heartbeat ( self,
int job_id )

Met à jour le battement de cœur d'un job en cours (sans effet sinon).

Paramètres
job_idIdentifiant du job.
Exceptions
KeyErrorSi le job est inconnu.

◆ job_dir()

Path aidge_in_space.jobs.JobStore.job_dir ( self,
int job_id )

Dossier d'un job (config.yaml, train.log) ; non créé.

Paramètres
job_idIdentifiant du job.
Renvoie
Chemin RUNS_DIR/<id>.

◆ list_jobs()

list[Job] aidge_in_space.jobs.JobStore.list_jobs ( self,
int | None limit = 200,
Iterable[str] | None statuses = None )

Liste les jobs du plus récent au plus ancien.

Paramètres
limitNombre maximal de jobs ; None pour ne pas limiter.
statusesStatuts à garder (parmi STATUSES) ; None pour tous.
Renvoie
Les jobs, id décroissant.
Exceptions
ValueErrorSi un statut est inconnu.

◆ log_metrics()

None aidge_in_space.jobs.JobStore.log_metrics ( self,
int job_id,
int step,
str kind,
dict data )

Consigne une ligne de métriques et avance last_step.

Paramètres
job_idIdentifiant du job.
stepPas d'entraînement.
kind"train" ou "eval".
dataValeurs (JSON-sérialisables).
Exceptions
ValueErrorSi kind est invalide.
KeyErrorSi le job est inconnu.

◆ metrics()

list[dict] aidge_in_space.jobs.JobStore.metrics ( self,
int job_id,
str | None kind = None )

Métriques d'un job triées par pas (la ligne la plus récente par (kind, pas)).

Paramètres
job_idIdentifiant du job.
kindFiltre "train" ou "eval" ; None : les deux.
Renvoie
Dictionnaires {"step", "kind", "created_at", **data}.
Exceptions
KeyErrorSi le job est inconnu.

◆ recover_orphans()

list[int] aidge_in_space.jobs.JobStore.recover_orphans ( self,
float stale_after_s = 60.0 )

Passe en interrompus les jobs en cours dont le battement de cœur est périmé.

Paramètres
stale_after_sÂge maximal du battement de cœur, en secondes.
Renvoie
Les identifiants des jobs récupérés.

◆ requeue()

None aidge_in_space.jobs.JobStore.requeue ( self,
int job_id )

Remet en file un job en échec, annulé ou interrompu (même id : reprise du checkpoint).

Paramètres
job_idIdentifiant du job.
Exceptions
ValueErrorSi le job est en attente, en cours ou terminé.
KeyErrorSi le job est inconnu.

◆ reset_progress()

None aidge_in_space.jobs.JobStore.reset_progress ( self,
int job_id,
int step )

Efface les métriques de pas supérieur à step et remet last_step.

Paramètres
job_idIdentifiant du job.
stepPas de départ (0 ou pas du checkpoint repris).
Exceptions
KeyErrorSi le job est inconnu.

◆ set_ckpt_path()

None aidge_in_space.jobs.JobStore.set_ckpt_path ( self,
int job_id,
str path )

Enregistre le chemin du checkpoint d'un job.

Paramètres
job_idIdentifiant du job.
pathChemin du checkpoint.
Exceptions
KeyErrorSi le job est inconnu.

◆ submit()

int aidge_in_space.jobs.JobStore.submit ( self,
dict config )

Insère un job en file d'attente.

Paramètres
configTrainConfig.to_dict() ; clés name, author, in_ch, N, lmbda, steps obligatoires.
Renvoie
L'identifiant du job.
Exceptions
ValueErrorClé absente ou mal typée, nom vide, steps < 1, config non sérialisable en JSON.

◆ worker_alive()

bool aidge_in_space.jobs.JobStore.worker_alive ( self,
float max_age_s = 30.0 )

Indique si un worker a donné signe de vie récemment.

Paramètres
max_age_sÂge maximal du dernier signe de vie, en secondes.
Renvoie
Vrai si au moins un worker est vivant.

◆ worker_heartbeat()

None aidge_in_space.jobs.JobStore.worker_heartbeat ( self,
str name,
int | None job_id = None )

Enregistre ou met à jour la présence d'un worker.

Paramètres
nameNom du worker.
job_idJob en cours, ou None.

La documentation de cette classe a été générée à partir du fichier suivant :
  • jobs.py