3 _=\@sddlmZddlmZddlmZmZGdddeZGdddeZ Gdd d e Z Gd d d e Z Gd d d e Z Gddde Z dS))print_function) TweepError) ModelParser RawParserc@s,eZdZdZddZd ddZd ddZd S) CursorzPagination helper classcOsnt|drb|jdkr$t||||_qj|jdkr>t||||_qj|jdkrXt||||_qjtdntddS)Npagination_modecursoridpagezInvalid pagination mode.z'This method does not perform pagination)hasattrrCursorIteratoriterator IdIterator PageIteratorr)selfmethodargskargsre/private/var/folders/47/550316q90kl84vt_jn5ctz8chwmm0c/T/pip-install-yoigbb1v/tweepy/tweepy/cursor.py__init__s     zCursor.__init__rcCs|dkr||j_|jS)zReturn iterator for pagesr)r limit)rrrrrpagessz Cursor.pagescCst|j}||_|S)z&Return iterator for items in each page) ItemIteratorr r)rrirrritems!s z Cursor.itemsN)r)r)__name__ __module__ __qualname____doc__rrrrrrrr s rc@s4eZdZddZddZddZddZd d Zd S) BaseIteratorcCs||_||_||_d|_dS)Nr)rrrr)rrrrrrrr*szBaseIterator.__init__cCs|jS)N)next)rrrr__next__0szBaseIterator.__next__cCstdS)N)NotImplementedError)rrrrr!3szBaseIterator.nextcCstdS)N)r#)rrrrprev6szBaseIterator.prevcCs|S)Nr)rrrr__iter__9szBaseIterator.__iter__N)rrrrr"r!r$r%rrrrr (s r c@s$eZdZddZddZddZdS)r cCs:tj|||||jdd}|p"d|_|p,d|_d|_dS)Nrr)r rpop next_cursor prev_cursor num_tweets)rrrrZ start_cursorrrrr?s    zCursorIterator.__init__cCsl|jdks|jr |j|jkr t|j|jd|ji|j\}}|\|_|_t|dkrZt|jd7_|S)Nrrr&) r)rr+ StopIterationrrrr*len)rdataZcursorsrrrr!Fs   zCursorIterator.nextcCsH|jdkrtd|j|jd|ji|j\}|_|_|jd8_|S)Nrz%Can not page back more, at first pagerr&)r*rrrrr)r+)rr.rrrr$Rs  zCursorIterator.prevN)rrrrr!r$rrrrr =s r c@s$eZdZddZddZddZdS)rcCs:tj|||||jdd|_d|_g|_g|_d|_dS)Nmax_idr)r rr(r/r+results model_resultsindex)rrrrrrrr^s zIdIterator.__init__cCs>|jr|j|jkrt|jt|jdkr|j|j|jt d|j }t |jdrj|jj j }t|jj _ tj|jdd|}t |jdr||jj _ |jj j j|jdd|}n|}t|jdkr|jd7_|jj||jj|n&|jd7_|j|j}|j|j}t|dkr$t|j|_|jd7_|S)z4Fetch a set of items with IDs less than current set.r&)r/parser__self__T)creater)rr+r,r2r-r0rrr/rrr r4r3rparseappendr1)rr.Z old_parsermodelresultrrrr!fs0        zIdIterator.nextcCs`|jr|j|jkrt|jd8_|jdkr2t|j|j}|j|jj|_|jd7_|S)z7Fetch a set of items with IDs greater than current set.r&r)rr+r,r2r0r1r/)rr.rrrr$s  zIdIterator.prevN)rrrrr!r$rrrrr\s'rc@s$eZdZddZddZddZdS)rcCstj||||d|_dS)Nr)r r current_page)rrrrrrrrszPageIterator.__init__cCsV|jdkr|j|jkrt|j|jd|ji|j}t|dkrDt|jd7_|S)Nrr r&)rr:r,rrrr-)rrrrrr!s   zPageIterator.nextcCs:|jdkrtd|jd8_|j|jd|ji|jS)Nr&z%Can not page back more, at first pager )r:rrrr)rrrrr$s zPageIterator.prevN)rrrrr!r$rrrrrs rc@s$eZdZddZddZddZdS)rcCs"||_d|_d|_d|_d|_dS)Nrr&r') page_iteratorrr: page_indexr+)rr;rrrrs zItemIterator.__init__cCsr|jdkr|j|jkrt|jdks8|jt|jdkrJ|jj|_d|_|jd7_|jd7_|j|jS)Nrr&r')rr+r,r:r<r-r;r!)rrrrr!s   zItemIterator.nextcCsn|jdkrtd|jdkrF|jj|_t|j|_|jdkrFtd|jd8_|jd8_|j|jS)Nz#Can not go back more, at first pagerz No more itemsr&)r:rr<r;r$r-r+)rrrrr$s     zItemIterator.prevN)rrrrr!r$rrrrrs rN) __future__rZ tweepy.errorrZtweepy.parsersrrobjectrr r rrrrrrrs  B