use fsspec.download for S3 artifacts + additional logging (#2536)

This commit is contained in:
Emanuele Bezzi
2022-07-29 07:05:36 -04:00
committed by GitHub
parent 6c86216f6b
commit d2b20129f7
2 changed files with 8 additions and 5 deletions

View File

@@ -113,10 +113,9 @@ class DataLocator:
# do our best to create a file with the same.
ext = os.path.splitext(self.path)
suffix = None if ext[1] == "" else ext[1]
with self.open() as src, tempfile.NamedTemporaryFile(prefix="cellxgene_", suffix=suffix, delete=False) as tmp:
tmp.write(src.read())
with tempfile.NamedTemporaryFile(prefix="cellxgene_", suffix=suffix, delete=False) as tmp:
self.fs.download(self.uri_or_path, tmp.name)
tmp.close()
src.close()
tmp_path = tmp.name
return LocalFilePath(tmp_path, delete=True)

View File

@@ -174,10 +174,14 @@ class AnndataAdaptor(DataAdaptor):
except MemoryError:
raise DatasetAccessError("Out of memory - file is too large for available memory.")
except Exception:
raise DatasetAccessError(
import traceback
message = (
"File not found or is inaccessible. File must be an .h5ad object. "
"Please check your input and try again."
)
)
if self.server_config.app__verbose:
message += f"\n{traceback.format_exc()}"
raise DatasetAccessError(message)
def _validate_and_initialize(self):
if anndata_version_is_pre_070():