def stream(self, page, limit=None, page_limit=None):
current_record = <NUM_LIT:1><EOL>current_page = <NUM_LIT:1><EOL>while page is not None:<EOL><INDENT>for record in page:<EOL><INDENT>yield record<EOL>current_record += <NUM_LIT:1><EOL>if limit and limit is not values.unset and limit < current_record:<EOL><INDENT>return<EOL><DEDENT><DEDENT>if page_limit and page_limit is not values.unset and page_limit < current_page:<EOL><INDENT>return<EOL><DEDENT>page = page.next_page()<EOL>current_page += <NUM_LIT:1><EOL><DEDENT>
Generates records one a time from a page, stopping at prescribed limits.

:param Page page: The page to stream.
:param int limit: The max number of records to read.
:param int page_imit: The max number of pages to read.