@@ -160,24 +160,27 @@ def load_document_by_uri(
160160 load_all : bool = False ,
161161) -> Any :
162162 """Load a CWL object from a URI or a path."""
163+ base_uri = ""
164+ real_uri = ""
163165 if isinstance (path , str ):
164166 uri = urlparse (path )
165167 id_ = uri .fragment or None
166168 if not uri .scheme or uri .scheme == "file" :
167- real_path = Path (unquote_plus (uri .path )).resolve ().as_uri ()
169+ real_uri = Path (unquote_plus (uri .path )).resolve ().as_uri ()
170+ base_uri = Path (unquote_plus (uri .path )).resolve ().parent .as_uri ()
168171 else :
169- real_path = path
172+ real_uri = path
173+ base_uri = os .path .dirname (path )
170174 else :
171- real_path = path .resolve ().as_uri ()
175+ real_uri = path .resolve ().as_uri ()
176+ base_uri = path .resolve ().parent .as_uri ()
172177 id_ = path .resolve ().name .split ("#" )[1 ] if "#" in path .resolve ().name else None
173178
174- baseuri = str (real_path )
175-
176179 if loadingOptions is None :
177- loadingOptions = cwl_v1_2 .LoadingOptions (fileuri = baseuri )
180+ loadingOptions = cwl_v1_2 .LoadingOptions (fileuri = real_uri , baseuri = base_uri )
178181
179- doc = loadingOptions .fetcher .fetch_text (real_path )
180- return load_document_by_string (doc , baseuri , loadingOptions , id_ , load_all )
182+ doc = loadingOptions .fetcher .fetch_text (real_uri )
183+ return load_document_by_string (doc , real_uri , loadingOptions , id_ , load_all )
181184
182185
183186def load_document (
0 commit comments