예제 #1
0
def op_flag_encoder(op):
    import importlib

    spec = op.opdef.flag_encoder
    if not spec:
        return None
    parts = spec.split(":")
    if len(parts) != 2:
        log.warning("invalid flag decoder %r - must be MODULE:FUNCTION", spec)
        return None
    mod_name, fun_name = parts
    try:
        mod = importlib.import_module(mod_name)
    except Exception as e:
        if log.getEffectiveLevel() <= logging.DEBUG:
            log.exception("importing %s", mod_name)
        else:
            log.warning("cannot load flag decoder %r: %s", spec, e)
        return None
    fun = getattr(mod, fun_name, None)
    if fun is None:
        log.warning(
            "cannot load flag decoder %r: no such attribute in %s", spec, mod_name
        )
        return None
    return fun
예제 #2
0
파일: util.py 프로젝트: jukiewiczm/guildai
def _real_hostname():
    import socket
    try:
        return socket.gethostname()
    except Exception:
        if log.getEffectiveLevel() <= logging.DEBUG:
            log.exception("socket.gethostname()")
        return ""
예제 #3
0
def _handle_twine_error(e):
    if os.getenv("DEBUG"):
        log.exception("twine error")
    try:
        msg = e.message
    except AttributeError:
        msg = str(e)
    _exit(msg)
예제 #4
0
파일: util.py 프로젝트: jukiewiczm/guildai
def _try_copy_file(src, dest):
    try:
        shutil.copyfile(src, dest)
    except (IOError, OSError) as e:
        # This is not an error we want to stop an operation for. Log
        # and continue.
        if log.getEffectiveLevel() <= logging.DEBUG:
            log.exception("copy %s to %s", src, dest)
        else:
            log.warning("could not copy source code file %s: %s", src, e)