MCPcopy Create free account
hub / github.com/algorithmiaio/algorithmia-python / DataDirectory

Class DataDirectory

Algorithmia/datadirectory.py:17–155  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15
16
17class DataDirectory(DataObject):
18 def __init__(self, client, dataUrl):
19 super(DataDirectory, self).__init__(DataObjectType.directory)
20 self.client = client
21 # Parse dataUrl
22 self.path = re.sub(r'^data://|^/', '', dataUrl)
23 self.url = DataDirectory._getUrl(self.path)
24
25 @staticmethod
26 def _getUrl(path):
27 return '/v1/data/' + path
28
29 def set_attributes(self, response_json):
30 # Nothing to set for now
31 pass
32
33 def getName(self):
34 _, name = getParentAndBase(self.path)
35 return name
36
37 def exists(self):
38 # Heading a directory apparently isn't a valid operation
39 response = self.client.getHelper(self.url)
40 return (response.status_code == 200)
41
42 def create(self, acl=None):
43 '''Creates a directory, optionally include Acl argument to set permissions'''
44 parent, name = getParentAndBase(self.path)
45 json = {'name': name}
46 if acl is not None:
47 json['acl'] = acl.to_api_param()
48 response = self.client.postJsonHelper(DataDirectory._getUrl(parent), json, False)
49 if (response.status_code != 200):
50 raise DataApiError("Directory creation failed: " + str(response.content))
51
52 def delete(self, force=False):
53 # Delete from data api
54 url = self.url
55 if force:
56 url += '?force=true'
57
58 result = self.client.deleteHelper(url)
59 if 'error' in result:
60 raise DataApiError(result['error']['message'])
61 else:
62 return True
63
64 def file(self, name):
65 return DataFile(self.client, pathJoin(self.path, name))
66
67 def files(self):
68 return self._get_directory_iterator(DataObjectType.file)
69
70 def dir(self, name):
71 return DataDirectory(self.client, pathJoin(self.path, name))
72
73 def dirs(self):
74 return self._get_directory_iterator(DataObjectType.directory)

Callers 10

test_get_nameMethod · 0.90
list_files_smallMethod · 0.90
test_list_foldersMethod · 0.90
test_data_objectMethod · 0.90
test_create_aclMethod · 0.90
dirMethod · 0.85
_iterate_directoriesMethod · 0.85

Calls

no outgoing calls