Пример #1
0
 def create_dir(self, ami_path):
   """Create a new directory"""
   # make sure its a FSString
   if not isinstance(ami_path, FSString):
     raise ValueError("create_dir's ami_path must be a FSString")
   # check file path
   fn = FileName(ami_path, is_intl=self.is_intl)
   if not fn.is_valid():
     raise FSError(INVALID_FILE_NAME, file_name=ami_path)
   # split into dir and base name
   dir_name, base_name = fn.get_dir_and_base_name()
   if base_name == None:
     raise FSError(INVALID_FILE_NAME, file_name=ami_path)
   # find parent of dir
   if dir_name == None:
     node = self.root_dir
   else:
     # no parent dir found
     node = self.get_dir_path_name(dir_name)
     if node == None:
       raise FSError(INVALID_PARENT_DIRECTORY, file_name=ami_path, extra="not found: "+dir_name)
   node.create_dir(base_name)
Пример #2
0
 def get_create_path_name(self, path_name, suggest_name=None):
     """get a parent node and path name for creation
    return: parent_node_or_none, file_name_or_none
 """
     # make sure input is correct
     if not isinstance(path_name, FSString):
         raise ValueError(
             "get_create_path_name's path_name must be a FSString")
     if suggest_name != None and not isinstance(suggest_name, FSString):
         raise ValueError(
             "get_create_path_name's suggest_name must be a FSString")
     # is root path?
     fn = FileName(path_name, is_intl=self.is_intl)
     if not fn.is_valid():
         raise FSError(INVALID_FILE_NAME, file_name=path_name, node=self)
     # find node
     if fn.is_root_path_alias():
         return self.root_dir, suggest_name
     else:
         # try to get path_name as a directory
         node = self.get_dir_path_name(path_name)
         if node != None:
             return node, suggest_name
         else:
             # split into dir and file name
             dn, fn = fn.get_dir_and_base_name()
             if dn != None:
                 # has a directory -> try to fetch it
                 node = self.get_dir_path_name(dn)
             else:
                 # no dir -> assume root dir
                 node = self.root_dir
             if fn != None:
                 # take given name
                 return node, fn
             else:
                 # use suggested name
                 return node, suggest_name
Пример #3
0
 def get_create_path_name(self, path_name, suggest_name=None):
   """get a parent node and path name for creation
      return: parent_node_or_none, file_name_or_none
   """
   # make sure input is correct
   if not isinstance(path_name, FSString):
     raise ValueError("get_create_path_name's path_name must be a FSString")
   if suggest_name != None and not isinstance(suggest_name, FSString):
     raise ValueError("get_create_path_name's suggest_name must be a FSString")
   # is root path?
   fn = FileName(path_name, is_intl=self.is_intl)
   if not fn.is_valid():
     raise FSError(INVALID_FILE_NAME, file_name=path_name, node=self)      
   # find node
   if fn.is_root_path_alias():
     return self.root_dir, suggest_name
   else:
     # try to get path_name as a directory
     node = self.get_dir_path_name(path_name)
     if node != None:
       return node, suggest_name
     else:
       # split into dir and file name
       dn, fn = fn.get_dir_and_base_name()
       if dn != None:
         # has a directory -> try to fetch it
         node = self.get_dir_path_name(dn)
       else:
         # no dir -> assume root dir
         node = self.root_dir
       if fn != None:
         # take given name
         return node, fn
       else:
         # use suggested name
         return node, suggest_name
Пример #4
0
 def create_dir(self, ami_path):
     """Create a new directory"""
     # make sure its a FSString
     if not isinstance(ami_path, FSString):
         raise ValueError("create_dir's ami_path must be a FSString")
     # check file path
     fn = FileName(ami_path, is_intl=self.is_intl)
     if not fn.is_valid():
         raise FSError(INVALID_FILE_NAME, file_name=ami_path)
     # split into dir and base name
     dir_name, base_name = fn.get_dir_and_base_name()
     if base_name == None:
         raise FSError(INVALID_FILE_NAME, file_name=ami_path)
     # find parent of dir
     if dir_name == None:
         node = self.root_dir
     else:
         # no parent dir found
         node = self.get_dir_path_name(dir_name)
         if node == None:
             raise FSError(INVALID_PARENT_DIRECTORY,
                           file_name=ami_path,
                           extra="not found: " + dir_name)
     node.create_dir(base_name)