X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=t%2Fmoe%2Futil.py;h=d287ff864c1230709b3172d658af4e1f3f157297;hb=258204ca478a8e8c180931575e1cd0748f677e8c;hp=801d2c700925cff969b0aba8ae80f84bee6f6d3b;hpb=aa3a5774beaa7ad6a752169c66e97ddb4bdc8983;p=moe.git diff --git a/t/moe/util.py b/t/moe/util.py index 801d2c7..d287ff8 100644 --- a/t/moe/util.py +++ b/t/moe/util.py @@ -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]