[Feat](Exports) Minor features for export generation
Context
Needed some features to generate the exports (needed for the cpp export refactor) :
- Now possible to generate a label tensor into the
generate_main_cpp()function for result verification at runtime. - Add a
copy_folder()function and add asymlinkargument to create symbolic links instead of simple file copy (help with dev process). - Add a function to remove the optional inputs from the
order_inputslist so that they are not exported. - The
ExportNodeclass now holds astatic_foldersvariable acting as the existingstatic_filesvariable but for whole folders. - Change the
kernels_to_copyexport node system as the old system had some limitations. Indeed, it was not possible to chose a destination path different from the source path. Also the copied kernel would be automatically included in the fwd file, sometime leading to unused includes. The new system is based on a list of dict holding, for each kernel file, the source and destination paths as well as a boolean to indicate if the kernel needs to be included in the forward file.
Modified files
-
code_generation.py- Addcopy_folder()function andsymlinkoption. -
export_registry.py- Addstatic_folder: list of folders to export. -
scheduler_export.py- Calls thecopy_folder()function to export thestatic_folders. Also changetest_modetodev_modefor more clarity. If thedev_modeis enabled, the copied files will be symbolic links to help with development. -
generate_main.py- Add label export. -
main.jinja- Add label export and change default folder for inputs/labels toROOT/data. -
main_compare.jinja- Change default folder for inputs/labels toROOT/data. -
export_utils.py- Addremove_optional_inputs()to remove the optional inputs of the graph before export.