electrolyt.run
==============

.. py:module:: electrolyt.run


Attributes
----------

.. autoapisummary::

   electrolyt.run.logger
   electrolyt.run.STATUS


Classes
-------

.. autoapisummary::

   electrolyt.run.ElectrolytJob
   electrolyt.run.ElectrolytJobFactory


Module Contents
---------------

.. py:data:: logger

.. py:data:: STATUS

.. py:class:: ElectrolytJob(uid: str, data: e3.anod.action.Action, notify_end: collections.abc.Callable, spec_repo: e3.anod.loader.AnodSpecRepository, sandbox: e3.anod.sandbox.SandBox, store: e3.store.backends.base.Store, force_status: e3.anod.status.ReturnValue = STATUS.unknown, dry_run: bool = False)

   Bases: :py:obj:`e3.job.Job`


   An electrolyt Job.

   :ivar sandbox: The sandbox where to run the electrolyt job.
   :vartype sandbox: e3.anod.sandbox.SandBox
   :ivar force_status: Set the status of the job.
   :vartype force_status: e3.anod.status.ReturnValue
   :ivar dry_run: If True report kind of action without execution.
   :vartype dry_run: bool
   :ivar store: The store backend for accessing source and binary
       packages.
   :vartype store: e3.store.backends.base.Store


   .. py:attribute:: __status


   .. py:attribute:: sandbox


   .. py:attribute:: spec_repo


   .. py:attribute:: dry_run
      :value: False



   .. py:attribute:: store


   .. py:method:: run() -> None


   .. py:property:: status
      :type: e3.anod.status.ReturnValue


      See Job.status' description.



   .. py:method:: run_anod_primitive(primitive: str) -> None

      Run an anod primitive after setting up the sandbox.



   .. py:method:: do_build() -> None

      Run anod build primitive.



   .. py:method:: do_install() -> None

      Run anod install primitive.



   .. py:method:: do_test() -> None

      Run anod test primitive.



   .. py:method:: do_checkout() -> None

      Get sources from vcs to sandbox vcs_dir.



   .. py:method:: do_createsource() -> None

      Prepare src from vcs to cache using sourcebuilders.



   .. py:method:: do_getsource() -> None

      action_item from an intermediate node.

      This action should return success status so do_install
      source can procede.



   .. py:method:: do_installsource() -> None

      Install the source from tmp/cache to build_space/src.



   .. py:method:: do_uploadbinarycomponent() -> None

      Upload a binary component.



   .. py:method:: do_uploadsource() -> None

      Upload a binary component.



   .. py:method:: do_root() -> None

      Express the final result of the exec.



.. py:class:: ElectrolytJobFactory(sandbox: e3.anod.sandbox.SandBox, asr: e3.anod.loader.AnodSpecRepository, store: e3.store.backends.base.Store, dry_run: bool = False)

   .. py:attribute:: job_status
      :type:  dict[str, e3.anod.status.ReturnValue]


   .. py:attribute:: sandbox


   .. py:attribute:: asr


   .. py:attribute:: dry_run
      :value: False



   .. py:attribute:: store


   .. py:method:: get_job(uid: str, data: e3.anod.action.Action, predecessors: frozenset[str], notify_end: collections.abc.Callable) -> ElectrolytJob


   .. py:method:: collect(job: e3.job.Job) -> Literal[False]

      Return False as the job is never requeued.



   .. py:method:: run(action_list: e3.collection.dag.DAG) -> None


