Browse Source

testing phase

event_class^2
Raphael Roberts 7 years ago
parent
commit
9a9544b454
  1. 41
      gapi/drive_api.py

41
gapi/drive_api.py

@ -72,7 +72,7 @@ class drive_folder(drive_file):
self.files = {} self.files = {}
def create_folder(self,name): def create_folder(self,name):
meta = {
meta = {
'name':name, 'name':name,
'mimeType':'application/vnd.google-apps.folder', 'mimeType':'application/vnd.google-apps.folder',
'parents' : [self.id] 'parents' : [self.id]
@ -116,7 +116,7 @@ class drive_api(API):
self.root = drive_folder.from_id('root',self,None) self.root = drive_folder.from_id('root',self,None)
root root
def get_file_by_path(self,path,ret_file = True,no_parent = True):
def get_file_by_path(self,path,ret_file = True):
if path == '/': if path == '/':
return self.root return self.root
'''gets a file or folder by remote path''' '''gets a file or folder by remote path'''
@ -138,18 +138,13 @@ class drive_api(API):
raise FileNotFoundError raise FileNotFoundError
try: try:
if ret_file: if ret_file:
if not 'files' in parent.keys():
self.__fill_in__(parent)
ret = parent['files'][end]
if no_parent:
ret = without(ret,'parent')
if not parent.files:
parent.refresh()
ret = parent.files[end]
else: else:
if not 'folders' in parent.keys():
self.__fill_in__(parent)
ret = parent['folders'][end]
if no_parent:
ret[0] = without(ret[0],'parent')
if not parent.folders:
parent.refresh()
ret = parent.folders[end]
return ret return ret
except KeyError: except KeyError:
raise FileNotFoundError raise FileNotFoundError
@ -163,21 +158,13 @@ class drive_api(API):
missing = [] missing = []
for i in range(len(path),-1,-1): for i in range(len(path),-1,-1):
try: try:
parent = self.get_file_by_path(path[:i],False,no_parent = False)
parent = self.get_file_by_path(path[:i],False)
break break
except FileNotFoundError: except FileNotFoundError:
missing.append(path[i-1]) missing.append(path[i-1])
while len(missing) > 0: while len(missing) > 0:
new_folder = {'folders':{},'files':{}}
new_folder['parent'] = parent
name = missing.pop() name = missing.pop()
new_meta = self.__create_remote_folder__(name,parent)
del new_meta['name']
del new_meta['kind']
new_folder[0] = new_meta
parent['folders'][name] = new_folder
parent = new_folder
parent = parent.folders[name]
return parent return parent
def upload(self,local_path,remote_path): def upload(self,local_path,remote_path):
if not isinstance(remote_path,str): if not isinstance(remote_path,str):
@ -223,14 +210,6 @@ class drive_api(API):
parent['files'][end] = new_f_meta parent['files'][end] = new_f_meta
return new_f_meta return new_f_meta
def __create_remote_folder__(self,name,parent):
def __fill_in__(self,parent):
if __name__ == "__main__": if __name__ == "__main__":
my_api = drive_api(APPLICATION_NAME,r'..\test\drive\client_secret.json',r'..\test\drive') my_api = drive_api(APPLICATION_NAME,r'..\test\drive\client_secret.json',r'..\test\drive')
service = my_api.service service = my_api.service
Loading…
Cancel
Save