1818from typing import (Union , Any , AnyStr , cast , Callable , Dict , Sequence , Text ,
1919 Tuple , Type , IO )
2020
21- from schema_salad .ref_resolver import Loader , Fetcher
21+ from schema_salad .ref_resolver import Loader , Fetcher , file_uri , uri_file_path
2222import schema_salad .validate as validate
2323import schema_salad .jsonld_context
2424import schema_salad .makedoc
@@ -258,7 +258,7 @@ def __call__(self, parser, namespace, values, option_string=None):
258258 setattr (namespace ,
259259 self .dest , # type: ignore
260260 {"class" : self .objclass ,
261- "location" : "file://%s" % os .path .abspath (cast (AnyStr , values ))})
261+ "location" : file_uri ( str ( os .path .abspath (cast (AnyStr , values )) ))})
262262
263263class FSAppendAction (argparse .Action ):
264264 objclass = None # type: Text
@@ -281,7 +281,7 @@ def __call__(self, parser, namespace, values, option_string=None):
281281 g )
282282 g .append (
283283 {"class" : self .objclass ,
284- "location" : "file://%s" % os .path .abspath (cast (AnyStr , values ))})
284+ "location" : file_uri ( str ( os .path .abspath (cast (AnyStr , values )) ))})
285285
286286class FileAction (FSAction ):
287287 objclass = "File"
@@ -471,7 +471,7 @@ def load_job_order(args, t, stdin, print_input_deps=False, relative_deps=False,
471471
472472 if print_input_deps :
473473 printdeps (job_order_object , loader , stdout , relative_deps , "" ,
474- basedir = u"file://%s/" % input_basedir )
474+ basedir = file_uri ( input_basedir + "/" ) )
475475 return 0
476476
477477 def pathToLoc (p ):
@@ -498,7 +498,7 @@ def makeRelative(base, ob):
498498 pass
499499 else :
500500 if u .startswith ("file://" ):
501- u = u [ 7 :]
501+ u = uri_file_path ( u )
502502 ob ["location" ] = os .path .relpath (u , base )
503503
504504def printdeps (obj , document_loader , stdout , relative_deps , uri , basedir = None ):
@@ -519,7 +519,7 @@ def loadref(b, u):
519519 if relative_deps == "primary" :
520520 base = basedir if basedir else os .path .dirname (uri )
521521 elif relative_deps == "cwd" :
522- base = "file://" + os .getcwd ()
522+ base = file_uri ( os .getcwd () )
523523 else :
524524 raise Exception (u"Unknown relative_deps %s" % relative_deps )
525525
@@ -720,7 +720,7 @@ def main(argsl=None, # type: List[str]
720720 if out is not None :
721721 def locToPath (p ):
722722 if p ["location" ].startswith ("file://" ):
723- p ["path" ] = p ["location" ][ 7 :]
723+ p ["path" ] = uri_file_path ( p ["location" ])
724724
725725 adjustDirObjs (out , locToPath )
726726 adjustFileObjs (out , locToPath )
0 commit comments