Algorithms

Interface

Input

Algorithm

class comic.eyra.models.Algorithm(*args, **kwargs)[source]

Algorithms group submissions.

Parameters
  • id (UUIDField) – UUID (primary key)

  • created (DateTimeField) – Moment of creation

  • modified (DateTimeField) – Moment of last modification

  • creator_id (ForeignKey) – Created by user

  • name (CharField) – Name of algorithm

  • description (TextField) – Description of this solution in markdown

  • admin_group_id (OneToOneField) – The admin group associated with this algorithm

  • tags (ArrayField) – Tags associated with this algorithm

  • source_code_link (URLField) – Link to the source code

  • paper_link (URLField) – Link to a paper or blog post

Implementation

Job

class comic.eyra.models.Job(*args, **kwargs)[source]

A Job represents a run of an Submission. It keeps track of the status, start & stop times, log (combined stdout and stderr), and output.

Status codes:

PENDING   = 0   # (Job is waiting to start)
STARTED   = 1   # (Job is running)
RETRY     = 2   # (Not used)
FAILURE   = 3   # (Job finished unsuccessfully (exit code not 0))
SUCCESS   = 4   # (Job finished with exit code 0
CANCELLED = 5   # (Not used)
Parameters
  • id (UUIDField) – UUID (primary key)

  • created (DateTimeField) – Moment of creation

  • modified (DateTimeField) – Moment of last modification

  • status (PositiveSmallIntegerField) – Status of the job

  • started (DateTimeField) – Moment job was started

  • stopped (DateTimeField) – Moment job completed (success or fail)

  • log (TextField) – Combined stderr/stdout of the job

  • submission_id (ForeignKey) – Submission being run

  • image (CharField) – Docker image (e.g. eyra/frb-eval:3)

  • output_id (ForeignKey) – Output of the job

JobInput

class comic.eyra.models.JobInput(*args, **kwargs)[source]

Input of a Job, a link between the Input of an Submission and a specific DataFile.

Parameters
  • id (UUIDField) – UUID (primary key)

  • created (DateTimeField) – Moment of creation

  • modified (DateTimeField) – Moment of last modification

  • job_id (ForeignKey) – Job that this input is for

  • name (CharField) – Name of algorithm

  • data_file_id (ForeignKey) – Input DataFile