def getinc_paths(self, basename, directory, quoted = 0): """Return increment.______.dir paths""" if quoted: FilenameMapping.set_init_quote_vals() dirrp = FilenameMapping.QuotedRPath(Globals.local_connection, directory) else: dirrp = rpath.RPath(Globals.local_connection, directory) incbasenames = [filename for filename in robust.listrp(dirrp) if filename.startswith(basename)] incbasenames.sort() incrps = map(dirrp.append, incbasenames) return map(lambda x: x.path, filter(lambda incrp: incrp.isincfile(), incrps))
def getinc_paths(self, basename, directory, quoted=0): """Return increment.______.dir paths""" if quoted: FilenameMapping.set_init_quote_vals() dirrp = FilenameMapping.QuotedRPath(Globals.local_connection, directory) else: dirrp = rpath.RPath(Globals.local_connection, directory) incbasenames = [ filename for filename in robust.listrp(dirrp) if filename.startswith(basename) ] incbasenames.sort() incrps = map(dirrp.append, incbasenames) return map(lambda x: x.path, filter(lambda incrp: incrp.isincfile(), incrps))
def find_letter(subdir): """ Find a (subdir_rp, dirlist) with a letter in it, or None Recurse down the directory, looking for any file that has a letter in it. Return the pair (rp, [list of filenames]) where the list is of the directory containing rp. """ files_list = robust.listrp(subdir) for filename in files_list: file_rp = subdir.append(filename) if filename != filename.swapcase(): return (subdir, files_list, filename) elif file_rp.isdir(): subsearch = find_letter(file_rp) if subsearch: return subsearch return None
def getinc_paths(self, basename, directory, quoted=0): """Returns a sorted list of files which starts with basename within a given directory.""" if quoted: FilenameMapping.set_init_quote_vals() dirrp = FilenameMapping.QuotedRPath(Globals.local_connection, directory) else: dirrp = rpath.RPath(Globals.local_connection, directory) incbasenames = [ filename for filename in robust.listrp(dirrp) if filename.startswith(basename) ] incbasenames.sort() incrps = list(map(dirrp.append, incbasenames)) return [ x.path for x in [incrp for incrp in incrps if incrp.isincfile()] ]
def _detect_escape_trailing_spaces_readonly(self, rp): """Determine if directory at rp permits filenames with trailing spaces or periods without writing.""" # we check one file after the other in the given directory dirlist = robust.listrp(rp) for filename in dirlist: try: test_rp = rp.append(filename) except OSError: continue # file is not fit for tests if not test_rp.lstat(): continue # file is not fit for tests if filename.endswith(b".") or filename.endswith(b" "): self.escape_trailing_spaces = False return # we test only periods and assume the same result for spaces period = filename + b'.' if period in dirlist: self.escape_trailing_spaces = False return try: period_rp = rp.append(period) except OSError: continue # file is not fit for tests if period_rp.lstat(): self.escape_trailing_spaces = True return # no file could be found to do any test log.Log( "Could not determine if source directory {sd} permits " "trailing spaces or periods in filenames because we can't " "find any files with trailing dot/period. " "It will be treated as permitting such files, but none will " "exist if it doesn't, so it doesn't really matter and is " "harmless".format(sd=rp), log.INFO) self.escape_trailing_spaces = False