MLRun package enables fully-automated experiment and pipeline tracking and reproducibility, and easy passing of python objects between remote jobs, while not requiring any form of editing to the actual function original code. Simply set the function code in a project and run it, MLRun takes care of the rest.

MLRun uses packagers: classes that perform 2 tasks:

  1. Parsing inputs - automatically cast the runtime's inputs (user's input passed to the function via the inputs parameter of the run method) to the relevant hinted type. (Does not require handling of data items.)

  2. Logging outputs - automatically save, log, and upload the function's returned objects by the provided log hints (user's input passed to the function via the returns parameter of the run method). (Does not require handling of files and artifacts.)


The abstract base class for a packager.


A default packager that handles all types and packs them as pickle files.


A packager manager holds the project's packagers and sends them objects to pack, and data items to unpack.



MLRun comes with the following list of modules, out of the box. All of the packagers listed here use the implementation of DefaultPackager and are available by default at the start of each run.