(self)
return self._exe
The process executable as an absolute path.
        May also be an empty string.
        The return value is cached after first call.
The process executable as an absolute path.
        May also be an empty string.
        The return value is cached after first call.
The process executable as an absolute path . May also be an empty string . The return value is cached after first call .
def exe(self):
        """The process executable as an absolute path.
        May also be an empty string.
        The return value is cached after first call.
        """
        def guess_it(fallback):
            # try to guess exe from cmdline[0] in absence of a native
            # exe representation
            cmdline = self.cmdline()
            if cmdline and hasattr(os, 'access') and hasattr(os, 'X_OK'):
                exe = cmdline[0]  # the possible exe
                # Attempt to guess only in case of an absolute path.
                # It is not safe otherwise as the process might have
                # changed cwd.
                if (os.path.isabs(exe) and
                        os.path.isfile(exe) and
                        os.access(exe, os.X_OK)):
                    return exe
            if isinstance(fallback, AccessDenied):
                raise fallback
            return fallback

        if self._exe is None:
            try:
                exe = self._proc.exe()
            except AccessDenied as err:
                return guess_it(fallback=err)
            else:
                if not exe:
                    # underlying implementation can legitimately return an
                    # empty string; if that's the case we don't want to
                    # raise AD while guessing from the cmdline
                    try:
                        exe = guess_it(fallback=exe)
                    except AccessDenied:
                        pass
                self._exe = exe
        return self._exe
def exe ( self ) : def guess_it ( fallback ) : # try to guess exe from cmdline[0] in absence of a native # exe representation cmdline = self . cmdline ( ) if cmdline and hasattr ( os , 'access' ) and hasattr ( os , 'X_OK' ) : exe = cmdline [ 0 ] # the possible exe # Attempt to guess only in case of an absolute path. # It is not safe otherwise as the process might have # changed cwd. if ( os . path . isabs ( exe ) and os . path . isfile ( exe ) and os . access ( exe , os . X_OK ) ) : return exe if isinstance ( fallback , AccessDenied ) : raise fallback return fallback if self . _exe is None : try : exe = self . _proc . exe ( ) except AccessDenied as err : return guess_it ( fallback = err ) else : if not exe : # underlying implementation can legitimately return an # empty string; if that's the case we don't want to # raise AD while guessing from the cmdline try : exe = guess_it ( fallback = exe ) except AccessDenied : pass self . _exe = exe return self . _exe