def _compile_model(model_folder: str, model_name: str, compiler_options: Dict[str, str]): # Load folders tree = None for folder in [model_folder] + compiler_options.get('library_folders', []): for root, dir, files in os.walk(folder, followlinks=True): for item in fnmatch.filter(files, "*.mo"): logger.info("Parsing {}".format(item)) with open(os.path.join(root, item), 'r') as f: if tree is None: tree = parser.parse(f.read()) else: tree.extend(parser.parse(f.read())) # Compile logger.info("Generating CasADi model") model = generator.generate(tree, model_name, compiler_options) if compiler_options.get('check_balanced', True): model.check_balanced() model.simplify(compiler_options) if compiler_options.get('verbose', False): model.check_balanced() return model
def _compile_model(model_folder: str, model_name: str, compiler_options: Dict[str, str]): # Load folders tree = None for folder in [model_folder] + compiler_options.get('library_folders', []): for root, dir, files in os.walk(folder, followlinks=True): for item in fnmatch.filter(files, "*.mo"): logger.info("Parsing {}".format(item)) with open(os.path.join(root, item), 'r') as f: if tree is None: tree = parser.parse(f.read()) else: tree.extend(parser.parse(f.read())) # Compile logger.info("Generating CasADi model") model = generator.generate(tree, model_name, compiler_options) if compiler_options.get('check_balanced', True): model.check_balanced() model.simplify(compiler_options) if compiler_options.get('verbose', False): model.check_balanced() model._post_checks() return model