diff --git a/lib/galaxy/webapps/galaxy/services/library_contents.py b/lib/galaxy/webapps/galaxy/services/library_contents.py index b1c90d0c9bba..2e909b00956a 100644 --- a/lib/galaxy/webapps/galaxy/services/library_contents.py +++ b/lib/galaxy/webapps/galaxy/services/library_contents.py @@ -4,6 +4,7 @@ from typing import ( cast, List, + Optional, Tuple, Union, ) @@ -130,7 +131,7 @@ def create( trans: ProvidesHistoryContext, library_id: DecodedDatabaseIdField, payload: AnyLibraryContentsCreatePayload, - files: List[StarletteUploadFile] = [], + files: Optional[List[StarletteUploadFile]] = None, ) -> AnyLibraryContentsCreateResponse: """Create a new library file or folder.""" if trans.user_is_bootstrap_admin: @@ -157,13 +158,14 @@ def create( if payload.create_type == "file": payload = cast(LibraryContentsFileCreatePayload, payload) upload_files = [] - for upload_file in files: - with tempfile.NamedTemporaryFile( - dir=trans.app.config.new_file_path, prefix="upload_file_data_", delete=False - ) as dest: - shutil.copyfileobj(upload_file.file, dest) # type: ignore[misc] # https://github.com/python/mypy/issues/15031 - upload_file.file.close() - upload_files.append(dict(filename=upload_file.filename, local_filename=dest.name)) + if files: + for upload_file in files: + with tempfile.NamedTemporaryFile( + dir=trans.app.config.new_file_path, prefix="upload_file_data_", delete=False + ) as dest: + shutil.copyfileobj(upload_file.file, dest) # type: ignore[misc] # https://github.com/python/mypy/issues/15031 + upload_file.file.close() + upload_files.append(dict(filename=upload_file.filename, local_filename=dest.name)) payload.upload_files = upload_files rval = self._upload_library_dataset(trans, payload) return LibraryContentsCreateFileListResponse(root=self._create_response(trans, payload, rval, library_id))