MLRun package enable fully automated experiment and pipeline tracking and reproducibility, easy passing 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, MLRun will take care of the dirty work.

MLRun is using packagers - classes that are performing 2 tasks:

  1. Parsing inputs - automatically cast runtime’s inputs (user’s input passed to the function via the inputs parameter of the run method) to the relevant hinted type - no need to handle data items.

  2. Logging outputs - automatically save, log and upload function’s returned objects by the provided log hints (user’s input passed to the function via the returns parameter of the run method) - no need to handle files and artifacts.

To know more about packagers, see an example and how to write your own custom packager, click here (coming soon).


The abstract base class for a packager.


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


A packager manager is holding the project's packagers and sending them objects to pack and data items to unpack.



Below is a list of all the modules including the packagers MLRun comes with out of the box. All of the packagers here use the implementation of DefaultPackager and are available by default at the start of each run.