Pipeline

Shalom template works around an Object called Pipeline().
Pipeline() essentially Loads everything that needs to be loaded, in order, and pass the data from one loaded thing to the next, and then finally all to the builder, which checks dependencies etc and builds the final output.

buildpipline.py

class Pipeline()
    def __init__(self):
        #-------------------Loads project----------------------
        self.projectLoader = projectLoader()
        self.project = projectLoader.load_project() #Currently config is not in use
        self.projectName = self.project["name"]        
        #-------------------Load Data and Components-----------
        self.data_loader = DataLoader()
        self.component_loader = ComponentLoader()
        #-------------------Build Project----------------------
        self.builder = TemplateBuilder(self.projectName)
        buildpipe = self.get_build_pipe(self.project["parsed"])            
        self.builder.build(buildpipe)
    def get_build_pipe(self):
        #-------------------Get Data---------------------------        
        data = self.data_loader.load(parsed["models"])
        #-------------------Get Components---------------------        
        componentTemplates = self.component_loader.load(parsed["components"])        
        #-------------------Check dependencies-----------------
        self.check_dependencies(parsed)
        #-------------------Build buildpipe--------------------
        buildpipe = self.construct_build_pipe(parsed,data,componentTemplates)

StructureLoader

DataLoader