55from lxml import etree
66import requests
77
8+ from exceptions import DataverseError , MethodNotAllowedError , NoContainerError
89from file import DataverseFile
910from settings import SWORD_BOOTSTRAP
10- from utils import (
11- get_element , get_elements , DataverseException , get_files_in_path ,
12- add_field ,
13- )
11+ from utils import get_element , get_elements , get_files_in_path , add_field
1412
1513
1614class Dataset (object ):
@@ -93,7 +91,7 @@ def get_entry(self, refresh=False):
9391 resp = requests .get (self .edit_uri , auth = self .connection .auth )
9492
9593 if resp .status_code != 200 :
96- raise DataverseException ('Atom entry could not be retrieved.' )
94+ raise DataverseError ('Atom entry could not be retrieved.' )
9795
9896 entry_string = resp .content
9997 self ._entry = etree .XML (entry_string )
@@ -103,8 +101,8 @@ def get_statement(self, refresh=False):
103101 if not refresh and self ._statement :
104102 return self ._statement
105103
106- if not self .connection :
107- raise DataverseException ('This dataset has not been added to a Dataverse.' )
104+ if not self .dataverse :
105+ raise NoContainerError ('This dataset has not been added to a Dataverse.' )
108106
109107 if not self .statement_uri :
110108 # Try to find statement uri without a request to the server
@@ -127,7 +125,7 @@ def get_statement(self, refresh=False):
127125 resp = requests .get (self .statement_uri , auth = self .connection .auth )
128126
129127 if resp .status_code != 200 :
130- raise DataverseException ('Statement could not be retrieved.' )
128+ raise DataverseError ('Statement could not be retrieved.' )
131129
132130 self ._statement = resp .content
133131 return self ._statement
@@ -228,14 +226,14 @@ def publish(self):
228226 )
229227
230228 if resp .status_code != 200 :
231- raise DataverseException ('The Dataverse could not be published.' )
229+ raise DataverseError ('The Dataverse could not be published.' )
232230
233231 receipt = resp .content
234232 self ._refresh (receipt = receipt )
235233
236234 def delete_file (self , dataverse_file ):
237235 if dataverse_file .is_published :
238- raise DataverseException (
236+ raise MethodNotAllowedError (
239237 'Published versions of files cannot be deleted.'
240238 )
241239
@@ -245,7 +243,7 @@ def delete_file(self, dataverse_file):
245243 )
246244
247245 if resp .status_code != 204 :
248- raise DataverseException ('The file could not be deleted.' )
246+ raise DataverseError ('The file could not be deleted.' )
249247
250248 def delete_all_files (self ):
251249 for f in self .get_files ():
0 commit comments