summaryrefslogtreecommitdiffstats
path: root/debian/pyrex/pyrex-0.9.9/Pyrex/Utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'debian/pyrex/pyrex-0.9.9/Pyrex/Utils.py')
-rw-r--r--debian/pyrex/pyrex-0.9.9/Pyrex/Utils.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/debian/pyrex/pyrex-0.9.9/Pyrex/Utils.py b/debian/pyrex/pyrex-0.9.9/Pyrex/Utils.py
new file mode 100644
index 00000000..7fa06460
--- /dev/null
+++ b/debian/pyrex/pyrex-0.9.9/Pyrex/Utils.py
@@ -0,0 +1,55 @@
+#
+# 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