# # Pyrex -- Things that don't belong # anywhere else in particular # import os, sys try: from __builtin__ import set except ImportError: from sets import Set as set def has_suffix(path, suffixes): for suffix in suffixes: if path.endswith(suffix): return True return False def replace_suffix(path, newsuf): base, _ = os.path.splitext(path) return base + newsuf def map_suffix(path, mapping, default): base, suffix = os.path.splitext(path) return base + mapping.get(suffix, default) def open_new_file(path): # Open and truncate existing file to # preserve metadata on the Mac. return open(path, "w+") def castrate_file(path, st): # Remove junk contents from an output file after a # failed compilation, but preserve metadata on Mac. # Also sets access and modification times earlier # than those specified by st (a stat struct). try: f = open(path, "r+") except EnvironmentError: pass else: f.seek(0, 0) f.truncate() f.write( "#error Do not use this file, it is the result of a failed Pyrex compilation.\n") f.close() if st: os.utime(path, (st.st_atime - 1, st.st_mtime - 1)) def modification_time(path): st = os.stat(path) return st.st_mtime def file_newer_than(path, time): ftime = modification_time(path) return ftime > time