def _update_stderr()

in pygenie/jobs/running.py [0:0]


    def _update_stderr(self, **kwargs):
        """Get new stderr part and update cached stderr."""

        stderr_part = ''

        if self.__reload_stderr:
            headers = {'Range': 'bytes={}-'.format(len(self._cached_stderr))} \
                if self._cached_stderr else None

            logger.debug('getting stderr (headers -> %s)', headers)

            try:
                stderr_part = self._adapter.get_stderr(
                    self._job_id,
                    headers=headers,
                    **kwargs
                )
            except GenieHTTPError as e:
                # HACK: assumes we are getting this because
                # stderr hasn't changed so we are exceeding
                # total size. Would be more corrct to parse
                # and check the Content-Range header from
                # the response and potentially retry with
                # a different range
                if e.response is not None and e.response.status_code == 416:
                    stderr_part = ""
                else:
                    raise

            if self._cached_stderr is None:
                self._cached_stderr = stderr_part
            else:
                self._cached_stderr += stderr_part

        if self.is_done:
            self.__reload_stderr = False

        return stderr_part