1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
import os
def remove_whitespace(in_str):
out = in_str.replace(" ","")
out = out.replace("\t","")
out = out.replace("\n","")
return out
###################################################
# mainly used by catalog tests
###################################################
from scipy.weave import catalog
import glob
def temp_catalog_files(prefix=''):
# might need to add some more platform specific catalog file
# suffixes to remove. The .pag was recently added for SunOS
d = catalog.default_dir()
f = catalog.os_dependent_catalog_name()
return glob.glob(os.path.join(d,prefix+f+'*'))
import tempfile
def clear_temp_catalog():
""" Remove any catalog from the temp dir
"""
global backup_dir
backup_dir =tempfile.mktemp()
os.mkdir(backup_dir)
for file in temp_catalog_files():
move_file(file,backup_dir)
#d,f = os.path.split(file)
#backup = os.path.join(backup_dir,f)
#os.rename(file,backup)
def restore_temp_catalog():
""" Remove any catalog from the temp dir
"""
global backup_dir
cat_dir = catalog.default_dir()
for file in os.listdir(backup_dir):
file = os.path.join(backup_dir,file)
d,f = os.path.split(file)
dst_file = os.path.join(cat_dir, f)
if os.path.exists(dst_file):
os.remove(dst_file)
#os.rename(file,dst_file)
move_file(file,dst_file)
os.rmdir(backup_dir)
backup_dir = None
def empty_temp_dir():
""" Create a sub directory in the temp directory for use in tests
"""
import tempfile
d = catalog.default_dir()
for i in range(10000):
new_d = os.path.join(d,tempfile.gettempprefix()[1:-1]+`i`)
if not os.path.exists(new_d):
os.mkdir(new_d)
break
return new_d
def cleanup_temp_dir(d):
""" Remove a directory created by empty_temp_dir
should probably catch errors
"""
files = map(lambda x,d=d: os.path.join(d,x),os.listdir(d))
for i in files:
try:
if os.path.isdir(i):
cleanup_temp_dir(i)
else:
os.remove(i)
except OSError:
pass # failed to remove file for whatever reason
# (maybe it is a DLL Python is currently using)
try:
os.rmdir(d)
except OSError:
pass
# from distutils -- old versions had bug, so copying here to make sure
# a working version is available.
from distutils.errors import DistutilsFileError
import distutils.file_util
def move_file (src, dst,
verbose=0,
dry_run=0):
"""Move a file 'src' to 'dst'. If 'dst' is a directory, the file will
be moved into it with the same name; otherwise, 'src' is just renamed
to 'dst'. Return the new full name of the file.
Handles cross-device moves on Unix using 'copy_file()'. What about
other systems???
"""
from os.path import exists, isfile, isdir, basename, dirname
import errno
if verbose:
print "moving %s -> %s" % (src, dst)
if dry_run:
return dst
if not isfile(src):
raise DistutilsFileError("can't move '%s': not a regular file" % src)
if isdir(dst):
dst = os.path.join(dst, basename(src))
elif exists(dst):
raise DistutilsFileError("can't move '%s': destination '%s' already "
"exists" % (src, dst))
if not isdir(dirname(dst)):
raise DistutilsFileError("can't move '%s': destination '%s' not a "
"valid path" % (src, dst))
copy_it = 0
try:
os.rename(src, dst)
except os.error, (num, msg):
if num == errno.EXDEV:
copy_it = 1
else:
raise DistutilsFileError("couldn't move '%s' to '%s': %s" %
(src, dst, msg))
if copy_it:
distutils.file_util.copy_file(src, dst)
try:
os.unlink(src)
except os.error, (num, msg):
try:
os.unlink(dst)
except os.error:
pass
raise DistutilsFileError("couldn't move '%s' to '%s' by copy/delete: "
"delete '%s' failed: %s" % (src, dst, src, msg))
return dst
|