import spawn, tempfile, time, os, FCNTL def run_pgp(path, username, password, options, files, stdin=""): env = {} for key in os.environ.keys(): env[key] = os.environ[key] env["PGPPASSFD"] = "0" if password: stdin = password + "\n" + stdin args = options[:] if username: args.append("+myname=" + username) args = args + files return spawn.run(path, stdin=stdin, args=args, env=env) def read_text_from_named_file(filename): f = open(filename, "r") text = f.read() f.close() return text def write_text_to_named_file(filename, text): fd = os.open(filename, FCNTL.O_WRONLY | FCNTL.O_CREAT | FCNTL.O_EXCL, 0600) os.write(fd, text) os.close(fd) def rfc822_date(): mon = ["", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] dow = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] if time.daylight: date = time.localtime(time.time()) if time.altzone < 0: tzsign = '+' secs = -time.altzone else: tzsign = '-' secs = time.altzone tzhours = secs / (60*60) tzmins = secs % (60*60) else: date = time.gmtime(time.time()) tzsign = '+' tzhours = 0 tzmins = 0 return "%s, %2d %s %d %02d:%02d:%02d %c%02d%02d" % \ (dow[date[6]], date[2], mon[date[1]], date[0], date[3], date[4], date[5], tzsign, tzhours, tzmins) _name_to_folder_cache = {} def clear_name_to_folder_cache(): global _name_to_folder_cache _name_to_folder_cache = {} def find_folder_by_name(folder_name, folder): global _name_to_folder_cache if _name_to_folder_cache.has_key(folder_name): return _name_to_folder_cache[folder_name] return recursive_find_folder_by_name(folder_name, folder) def recursive_find_folder_by_name(folder_name, folder): global _name_to_folder_cache _name_to_folder_cache[repr(folder)] = folder if repr(folder) == folder_name: return folder was_open = folder.is_open() if not was_open: folder.open() folder.rescan_subfolders() f = None for subfolder in folder.list_all_subfolders(): f = recursive_find_folder_by_name(folder_name, subfolder) if f: break if not was_open: folder.close() return f