def read_file(self, object_tree_folder, path, size, offset): log.debug( u'read_file: {0}, {1}, {2}'. format(util.string_from_path_elements(path), size, offset) ) return self._read_file(object_tree_folder, path, size, offset)
def read_file(self, object_tree_root, path, size, offset): log.debug( u'read_file: {0}, {1}, {2}'. format(util.string_from_path_elements(path), size, offset) ) try: object_tree_folder = self._object_tree.get_folder(path, object_tree_root) except ONEDriveException: pass else: if len(path) > 0: if path[-1] == object_tree_folder.get_help_name(): return self._getFolderHelp(object_tree_folder, size, offset) #return object_tree_folder.get_help_text(size, offset) raise onedrive_exceptions.PathException(u'Invalid file') object_tree_path, root_name, controlled_path = self._split_path_by_reserved_name( path ) try: object_tree_folder = self._object_tree.get_folder( object_tree_path, object_tree_root ) except ONEDriveException: raise onedrive_exceptions.PathException(u'Invalid folder') if self._is_readme_file([root_name]): return self._generate_readme_text(object_tree_path)[offset:offset + size] return self._resolvers[root_name].read_file( object_tree_folder, controlled_path, size, offset )
def get_directory(self, object_tree_root, path): log.debug(u'get_directory: {0}'.format( util.string_from_path_elements(path))) if not path: return self._get_directory(object_tree_root, path) return self._resource_map_resolver.get_directory( object_tree_root, path)
def read_file(self, object_tree_root, path, size, offset): log.debug(u'read_file: {0}, {1}, {2}'.format( util.string_from_path_elements(path), size, offset)) if self._is_readme_file(path): return self._get_readme_text(size, offset) self._object_tree.add_object_to_cache(path[-1]) return self._resource_map_resolver.read_file(object_tree_root, path, size, offset)
def get_directory(self, object_tree_folder, path): log.debug(u'get_directory: {0}'.format( util.string_from_path_elements(path))) if len(path) <= 2: return self._get_directory(object_tree_folder, path) return self._resource_map_resolver.get_directory(path[2:])
def read_file(self, object_tree_folder, path, size, offset): log.debug(u'read_file: {0}, {1}, {2}'.format( util.string_from_path_elements(path), size, offset)) if self._is_readme_file(path): return self._get_readme_text(size, offset) if len(path) <= 2: raise onedrive_exceptions.PathException(u'Invalid file') return self._resource_map_resolver.read_file(path[2:], size, offset)
def get_attributes(self, object_tree_root, path): log.debug(u'get_attributes: {0}'.format( util.string_from_path_elements(path))) if not path: return attributes.Attributes(is_dir=True) if self._is_readme_file(path): return self._get_readme_file_attributes() return self._resource_map_resolver.get_attributes( object_tree_root, path)
def get_directory(self, object_tree_root, path): log.debug(u'get_directory: {0}'.format( util.string_from_path_elements(path))) if not path: return [self._get_readme_filename()] \ + self._object_tree._get_individually_synced_object_pids() else: self._object_tree.add_object_to_cache(path[-1]) return self._resource_map_resolver.get_directory( object_tree_root, path)
def read_file(self, object_tree_root, path, size, offset): log.debug(u'read_file: {0}, {1}, {2}'.format( util.string_from_path_elements(path), size, offset)) if self._is_readme_file(path): return self._get_readme_text(size, offset) if len(path) > 1 and self._is_resource_map(path[0]): return self._d1_object_resolver.read_file(object_tree_root, path[1:], size, offset) return self._d1_object_resolver.read_file(object_tree_root, path, size, offset)
def get_attributes(self, object_tree_root, path): log.debug( u'get_attributes: {0}'.format(util.string_from_path_elements(path)) ) # All items rendered by the ObjectTree Resolver are folders. Anything else is # deferred to one of the child resolvers. # To determine where the path transitions from the object_tree to the # controlled hierarchy, we check for the controlled hierarchy root names. # This means that those names are reserved. They can not be used as # object_tree folder names by the user. try: object_tree_folder = self._object_tree.get_folder(path, object_tree_root) except ONEDriveException: pass else: return attributes.Attributes(is_dir=True) #if len(path) > 0: # if path[-1] == self._get_help_name(): # return attributes.Attributes(size=self._folderHelpSize(object_tree_folder), # is_dir=False) # If the path is not to a object_tree folder root, a valid path must go to a # controlled hierarchy root or subfolder THROUGH a object_tree folder root. In # that case, the first path element that matches the reserved name of one of # the controlled hierarchy roots becomes the separator between the two # sections and determines which resolver to use for the tail section of the # path. object_tree_path, root_name, controlled_path = self._split_path_by_reserved_name( path ) # If the object_tree_path is not valid now and is not the readme file, then # the path is invalid. try: object_tree_folder = self._object_tree.get_folder( object_tree_path, object_tree_root ) except ONEDriveException: raise onedrive_exceptions.PathException(u'Invalid folder') if self._is_readme_file([root_name]): return self._get_readme_file_attributes(object_tree_path) # Now have all information required for gathering information about all the # objects in the object_tree folder and dispatching to a controlled hierarchy # resolver. #object_tree_folder = ObjectTreeFolderObjects(self._object_tree, object_tree_folder) return self._resolvers[root_name].get_attributes( object_tree_folder, controlled_path )
def get_attributes(self, object_tree_folder, path): log.debug(u'get_attributes: {0}'.format( util.string_from_path_elements(path))) if self._is_readme_file(path): return self._get_readme_file_attributes() if len(path) <= 2: return self._get_attributes(path) return self._resource_map_resolver.get_attributes( object_tree_folder, path[2:])
def get_directory(self, object_tree_root, path, preconfigured_query=None): # the directory will typically be in the cache. already retrieved by # get_attributes, since get_attributes() needs to know how many items # there are in the directory, in order to return that count. log.debug( u'get_directory: {0}'.format(util.string_from_path_elements(path)) ) # To determine where the path transitions from the object_tree to the # controlled hierarchy, we check for the controlled hierarchy root names. # This means that those names are reserved. They can not be used as # object_tree folder names by the user. try: object_tree_folder = self._object_tree.get_folder(path, object_tree_root) except ONEDriveException: pass else: res = self._resolve_object_tree_folder(object_tree_folder) # All object_tree folders have a readme. res.append(self._get_readme_filename()) return res # If the path is not to a object_tree folder root, a valid path must go to a # controlled hierarchy root or subfolder THROUGH a object_tree folder root. In # that case, the first path element that matches the reserved name of one of # the controlled hierarchy roots becomes the separator between the two # sections and determines which resolver to use for the tail section of the # path. object_tree_path, root_name, controlled_path = self._split_path_by_reserved_name( path ) # If the object_tree_path is not valid now, then the path is invalid. try: object_tree_folder = self._object_tree.get_folder( object_tree_path, object_tree_root ) except ONEDriveException: raise onedrive_exceptions.PathException(u'Invalid folder') log.debug('controlled path: {0}'.format(controlled_path)) #log.debug('object_tree folder: {0}'.format(object_tree_folder)) # Now have all information required for gathering information about all the # objects in the object_tree folder and dispatching to a controlled hierarchy # resolver. return self._resolvers[root_name].get_directory( object_tree_folder, controlled_path )
def get_directory(self, object_tree_root, path): log.debug(u'get_directory: {0}'.format( util.string_from_path_elements(path))) is_resource_map = self._is_resource_map(path[0]) if not is_resource_map: return self._d1_object_resolver.get_directory( object_tree_root, path) if len(path) > 1: if is_resource_map: return self._d1_object_resolver.get_directory( object_tree_root, path[1:]) else: return self._d1_object_resolver.get_directory( object_tree_root, path) return self._get_directory(object_tree_root, path)
def get_attributes(self, object_tree_root, path): log.debug(u'get_attributes: {0}'.format( util.string_from_path_elements(path))) if self._is_readme_file(path): return self._get_readme_file_attributes() is_resource_map = self._is_resource_map(path[0]) if not is_resource_map: return self._d1_object_resolver.get_attributes( object_tree_root, path) if len(path) > 1: if is_resource_map: return self._d1_object_resolver.get_attributes( object_tree_root, path[1:]) else: return self._d1_object_resolver.get_attributes( object_tree_root, path) return self._get_attributes(object_tree_root, path)
def get_directory(self, object_tree_folder, path): log.debug( u'get_directory: {0}'.format(util.string_from_path_elements(path)) ) return self._get_directory(object_tree_folder, path)
def get_attributes(self, object_tree_folder, path): log.debug( u'get_attributes: {0}'.format(util.string_from_path_elements(path)) ) return self._get_attributes(object_tree_folder, path)