X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=t%2Fmoe%2Futil.py;h=d287ff864c1230709b3172d658af4e1f3f157297;hb=56079ae097f72c9cc904894bc025688b569077fd;hp=801d2c700925cff969b0aba8ae80f84bee6f6d3b;hpb=aa3a5774beaa7ad6a752169c66e97ddb4bdc8983;p=eval.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]