Пример #1
0
 def get_path_name(self, path_name, allow_file=True, allow_dir=True):
   """get node for given path"""
   # make sure path name is a FSString
   if not isinstance(path_name, FSString):
     raise ValueError("get_path_name's path must be a FSString")
   # create and check file name
   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():
     # its the root node
     return self.root_dir
   else:
     # find a sub node
     path = fn.split_path()
     return self.root_dir.get_path(path, allow_file, allow_dir)
Пример #2
0
 def get_path_name(self, path_name, allow_file=True, allow_dir=True):
     """get node for given path"""
     # make sure path name is a FSString
     if not isinstance(path_name, FSString):
         raise ValueError("get_path_name's path must be a FSString")
     # create and check file name
     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():
         # its the root node
         return self.root_dir
     else:
         # find a sub node
         path = fn.split_path()
         return self.root_dir.get_path(path, allow_file, allow_dir)
Пример #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 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