]> mj.ucw.cz Git - eval.git/blobdiff - t/moe/util.py
Minor fix in util.py
[eval.git] / t / moe / util.py
index 801d2c700925cff969b0aba8ae80f84bee6f6d3b..d287ff864c1230709b3172d658af4e1f3f157297 100644 (file)
@@ -1,17 +1,43 @@
 #!/usr/bin/env python
 
 import os
+import sys
 import os.path
+import shutil
 
 def mkdir_tree(name):
     try:
        os.mkdir(name)  
-    except OSError, e:
-       if e.errno == os.errno.ENOENT:
+    except OSError, err:
+       if err.errno == os.errno.ENOENT:
            head, tail = os.path.split(name)
            mkdir_tree(head)
            os.mkdir(name)
-       elif e.errno == os.errno.EEXIST:
+       elif err.errno == os.errno.EEXIST:
            pass
        else:
-           raise e
+           raise err
+
+def link_or_copy(src, dest):
+    try:
+       os.link(src, dest)
+    except OSError:
+       shutil.copyfile(src, dest)
+
+def remove_tree_contents(dir):
+    for f in os.listdir(dir):
+       name = os.path.join(dir, f)
+       try:
+           os.unlink(name)
+       except OSError, err:
+           if err.errno == os.errno.EISDIR:
+               shutil.rmtree(os.path.join(dir, f))
+           else:
+               raise err
+
+def load_module(modname):
+    """Return the module `modname` (full name) if loaded, or try to import it. 
+    Returns the module or raises `ImportError`."""
+    if not sys.modules.has_key(modname):
+       __import__(modname)
+    return sys.modules[modname]