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
def _real_hostname(): import socket try: return socket.gethostname() except Exception: if log.getEffectiveLevel() <= logging.DEBUG: log.exception("socket.gethostname()") return ""
def _handle_twine_error(e): if os.getenv("DEBUG"): log.exception("twine error") try: msg = e.message except AttributeError: msg = str(e) _exit(msg)
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)