def run(self, cmd, timeout=None, key=None):
        """
        Run a command on the phablet device using ssh

        :param cmd:
            a list of strings to execute as a command
        :param timeout:
            a timeout (in seconds) for device discovery
        :param key:
            a path to a public ssh key to use for connection
        :returns:
            the exit code of the command

        This method will not allow you to capture stdout/stderr from the target
        process. If you wish to do that please consider switching to one of
        subprocess functions along with. :meth:`cmdline()`.
        """
        if not isinstance(cmd, list):
            raise TypeError("cmd needs to be a list")
        if not all(isinstance(item, str) for item in cmd):
            raise TypeError("cmd needs to be a list of strings")
        self.connect(timeout, key)
        return self._run_ssh(cmd)
Run a command on the phablet device using ssh

        :param cmd:
            a list of strings to execute as a command
        :param timeout:
            a timeout (in seconds) for device discovery
        :param key:
            a path to a public ssh key to use for connection
        :returns:
            the exit code of the command

        This method will not allow you to capture stdout/stderr from the target
        process. If you wish to do that please consider switching to one of
        subprocess functions along with. :meth:`cmdline()`.