@@ -160,24 +160,27 @@ def load_document_by_uri(
160
160
load_all : bool = False ,
161
161
) -> Any :
162
162
"""Load a CWL object from a URI or a path."""
163
+ base_uri = ""
164
+ real_uri = ""
163
165
if isinstance (path , str ):
164
166
uri = urlparse (path )
165
167
id_ = uri .fragment or None
166
168
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 ()
168
171
else :
169
- real_path = path
172
+ real_uri = path
173
+ base_uri = os .path .dirname (path )
170
174
else :
171
- real_path = path .resolve ().as_uri ()
175
+ real_uri = path .resolve ().as_uri ()
176
+ base_uri = path .resolve ().parent .as_uri ()
172
177
id_ = path .resolve ().name .split ("#" )[1 ] if "#" in path .resolve ().name else None
173
178
174
- baseuri = str (real_path )
175
-
176
179
if loadingOptions is None :
177
- loadingOptions = cwl_v1_2 .LoadingOptions (fileuri = baseuri )
180
+ loadingOptions = cwl_v1_2 .LoadingOptions (fileuri = real_uri , baseuri = base_uri )
178
181
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 )
181
184
182
185
183
186
def load_document (
0 commit comments