Make sure artifact temporary files names are valid file names

This commit is contained in:
allegroai 2020-03-12 18:10:03 +02:00
parent 84a34428b6
commit 5b29aa194c

View File

@ -2,6 +2,7 @@ import hashlib
import json import json
import mimetypes import mimetypes
import os import os
from six.moves.urllib.parse import quote
from copy import deepcopy from copy import deepcopy
from datetime import datetime from datetime import datetime
from multiprocessing import RLock, Event from multiprocessing import RLock, Event
@ -299,7 +300,7 @@ class Artifacts(object):
artifact_type_data.preview = str(artifact_object.__repr__()) artifact_type_data.preview = str(artifact_object.__repr__())
override_filename_ext_in_uri = '.npz' override_filename_ext_in_uri = '.npz'
override_filename_in_uri = name+override_filename_ext_in_uri override_filename_in_uri = name+override_filename_ext_in_uri
fd, local_filename = mkstemp(prefix=name+'.', suffix=override_filename_ext_in_uri) fd, local_filename = mkstemp(prefix=quote(name, safe="")+'.', suffix=override_filename_ext_in_uri)
os.close(fd) os.close(fd)
np.savez_compressed(local_filename, **{name: artifact_object}) np.savez_compressed(local_filename, **{name: artifact_object})
delete_after_upload = True delete_after_upload = True
@ -309,7 +310,7 @@ class Artifacts(object):
artifact_type_data.preview = str(artifact_object.__repr__()) artifact_type_data.preview = str(artifact_object.__repr__())
override_filename_ext_in_uri = self._save_format override_filename_ext_in_uri = self._save_format
override_filename_in_uri = name override_filename_in_uri = name
fd, local_filename = mkstemp(prefix=name+'.', suffix=override_filename_ext_in_uri) fd, local_filename = mkstemp(prefix=quote(name, safe="")+'.', suffix=override_filename_ext_in_uri)
os.close(fd) os.close(fd)
artifact_object.to_csv(local_filename, compression=self._compression) artifact_object.to_csv(local_filename, compression=self._compression)
delete_after_upload = True delete_after_upload = True
@ -320,7 +321,7 @@ class Artifacts(object):
artifact_type_data.preview = desc[1:desc.find(' at ')] artifact_type_data.preview = desc[1:desc.find(' at ')]
override_filename_ext_in_uri = '.png' override_filename_ext_in_uri = '.png'
override_filename_in_uri = name + override_filename_ext_in_uri override_filename_in_uri = name + override_filename_ext_in_uri
fd, local_filename = mkstemp(prefix=name+'.', suffix=override_filename_ext_in_uri) fd, local_filename = mkstemp(prefix=quote(name, safe="")+'.', suffix=override_filename_ext_in_uri)
os.close(fd) os.close(fd)
artifact_object.save(local_filename) artifact_object.save(local_filename)
delete_after_upload = True delete_after_upload = True
@ -330,7 +331,7 @@ class Artifacts(object):
preview = json.dumps(artifact_object, sort_keys=True, indent=4) preview = json.dumps(artifact_object, sort_keys=True, indent=4)
override_filename_ext_in_uri = '.json' override_filename_ext_in_uri = '.json'
override_filename_in_uri = name + override_filename_ext_in_uri override_filename_in_uri = name + override_filename_ext_in_uri
fd, local_filename = mkstemp(prefix=name+'.', suffix=override_filename_ext_in_uri) fd, local_filename = mkstemp(prefix=quote(name, safe="")+'.', suffix=override_filename_ext_in_uri)
os.write(fd, bytes(preview.encode())) os.write(fd, bytes(preview.encode()))
os.close(fd) os.close(fd)
artifact_type_data.preview = preview artifact_type_data.preview = preview
@ -365,7 +366,7 @@ class Artifacts(object):
files = list(Path(folder).rglob(wildcard)) files = list(Path(folder).rglob(wildcard))
override_filename_ext_in_uri = '.zip' override_filename_ext_in_uri = '.zip'
override_filename_in_uri = folder.parts[-1] + override_filename_ext_in_uri override_filename_in_uri = folder.parts[-1] + override_filename_ext_in_uri
fd, zip_file = mkstemp(prefix=folder.parts[-1]+'.', suffix=override_filename_ext_in_uri) fd, zip_file = mkstemp(prefix=quote(folder.parts[-1], safe="")+'.', suffix=override_filename_ext_in_uri)
try: try:
artifact_type_data.content_type = 'application/zip' artifact_type_data.content_type = 'application/zip'
artifact_type_data.preview = 'Archive content {}:\n'.format(artifact_object.as_posix()) artifact_type_data.preview = 'Archive content {}:\n'.format(artifact_object.as_posix())
@ -510,7 +511,7 @@ class Artifacts(object):
override_filename_ext_in_uri = self._save_format override_filename_ext_in_uri = self._save_format
override_filename_in_uri = name override_filename_in_uri = name
fd, local_csv = mkstemp(prefix=name + '.', suffix=override_filename_ext_in_uri) fd, local_csv = mkstemp(prefix=quote(name, safe="") + '.', suffix=override_filename_ext_in_uri)
os.close(fd) os.close(fd)
local_csv = Path(local_csv) local_csv = Path(local_csv)
pd_artifact.to_csv(local_csv.as_posix(), index=False, compression=self._compression) pd_artifact.to_csv(local_csv.as_posix(), index=False, compression=self._compression)