77
88from exceptions import (
99 MethodNotAllowedError , NoContainerError , OperationFailedError ,
10- ConnectionError , MetadataNotFoundError
10+ ConnectionError , MetadataNotFoundError , UnpublishedDatasetError
1111)
1212from file import DataverseFile
1313from settings import SWORD_BOOTSTRAP
@@ -203,7 +203,9 @@ def get_json(self, refresh=False):
203203
204204 resp = requests .get (json_url , params = {'key' : self .connection .token })
205205
206- if resp .status_code != 200 :
206+ if resp .status_code == 404 :
207+ raise UnpublishedDatasetError ('JSON metadata cannot be retried for an unpublished dataset.' )
208+ elif resp .status_code != 200 :
207209 raise ConnectionError ('JSON metadata could not be retrieved.' )
208210
209211 self ._json = resp .json ()['data' ]
@@ -227,8 +229,11 @@ def get_files(self, published=False, refresh=True):
227229 for element in elements ]
228230
229231 def get_published_files (self , refresh = True ):
230- return [DataverseFile .from_json (self , file_json )
231- for file_json in self .get_json (refresh )['files' ]]
232+ try :
233+ return [DataverseFile .from_json (self , file_json )
234+ for file_json in self .get_json (refresh )['files' ]]
235+ except UnpublishedDatasetError :
236+ return []
232237
233238 def add_file (self , filepath ):
234239 self .add_files ([filepath ])
0 commit comments