def progress(self):
now = time()<EOL>if now - self.last_progress_t > <NUM_LIT:1>:<EOL><INDENT>self.last_progress_t = now<EOL>if self.status:<EOL><INDENT>self.uplink.status(self.status)<EOL>self.status = None<EOL><DEDENT>self.__spill_counters()<EOL>self.uplink.progress(self.progress_value)<EOL>self.uplink.flush()<EOL><DEDENT>
\
        Report progress to the Java side.

        This needs to flush the uplink stream, but too many flushes can
        disrupt performance, so we actually talk to upstream once per second.