diff --git a/biseau/module_loader.py b/biseau/module_loader.py index 7c2db70b6306d74289fc2aeedc3764dcc7cb8295..52db93ce40e8604dfb4df9196790f473561020be 100644 --- a/biseau/module_loader.py +++ b/biseau/module_loader.py @@ -120,11 +120,20 @@ def topological_sort_by_io(inputs:dict, outputs:dict) -> iter: def build_python_script_from_name(module_name) -> Script: path = module_name.replace('/', '.') - module = importlib.import_module(path) - # Reload needed because the module itself is - # modified by build_script_from_module - module = importlib.reload(module) - return build_script_from_module(module) + import_as_module = True + try: + module = importlib.import_module(path) + except TypeError: + import_as_module = False + + if import_as_module: + # Reload needed because the module itself is + # modified by build_script_from_module + module = importlib.reload(module) + return build_script_from_module(module) + else: # just load it savagely + # module_name is not importable directly + return build_script_from_json({'python file': module_name + '.py'}) def build_asp_script_from_name(fname:str) -> str: