Exemplo n.º 1
0
 def convert(self, value: typing.Any,
             param: typing.Optional[click.Parameter],
             ctx: typing.Optional[click.Context]) -> typing.Any:
     if FileAccessProvider.is_remote(value):
         return FileParam(filepath=value)
     p = pathlib.Path(value)
     if p.exists() and p.is_file():
         return FileParam(filepath=str(p.resolve()))
     raise click.BadParameter(
         f"parameter should be a valid file path, {value}")
Exemplo n.º 2
0
 def convert(self, value: typing.Any,
             param: typing.Optional[click.Parameter],
             ctx: typing.Optional[click.Context]) -> typing.Any:
     if FileAccessProvider.is_remote(value):
         return Directory(dir_path=value, local=False)
     p = pathlib.Path(value)
     if p.exists() and p.is_dir():
         files = list(p.iterdir())
         if len(files) != 1:
             raise ValueError(
                 f"Currently only directories containing one file are supported, found [{len(files)}] files found in {p.resolve()}"
             )
         return Directory(dir_path=value, local_file=files[0].resolve())
     raise click.BadParameter(
         f"parameter should be a valid directory path, {value}")
Exemplo n.º 3
0
def test_is_remote():
    fp = FileAccessProvider("/tmp", "s3://my-bucket")
    assert fp.is_remote("./checkpoint") is False
    assert fp.is_remote("/tmp/foo/bar") is False
    assert fp.is_remote("file://foo/bar") is False
    assert fp.is_remote("s3://my-bucket/foo/bar") is True