+
    ÖÇÜhÃ  ã                   óŒ   € R t ^ RIt^ RIHtHt ^ RIHtHtHtH	t	  ! R R]	4      t
]
! 4       t ! R R]R7      t ! R	 R
]4      tR# )zY
This module provides an interface for TweetHandlers, and support for timezone
handling.
N)ÚABCMetaÚabstractmethod)ÚdatetimeÚ	timedeltaÚtimezoneÚtzinfoc                   ó¤   a € ] tR t^t o Rt]! ]P                  ) R7      t]P                  '       d   ]! ]P                  ) R7      tM]tR tRtV tR# )ÚLocalTimezoneOffsetWithUTCa›  
This is not intended to be a general purpose class for dealing with the
local timezone. In particular:

* it assumes that the date passed has been created using
  `datetime(..., tzinfo=Local)`, where `Local` is an instance of
  the object `LocalTimezoneOffsetWithUTC`;
* for such an object, it returns the offset with UTC, used for date comparisons.

Reference: https://docs.python.org/3/library/datetime.html
)Úsecondsc                ó   € V P                   # )z"
Access the relevant time offset.
)Ú	DSTOFFSET)ÚselfÚdts   &&Ú2/usr/lib/python3/dist-packages/nltk/twitter/api.pyÚ	utcoffsetÚ$LocalTimezoneOffsetWithUTC.utcoffset'   s   € ð �~‰~Ðó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú_timer   Ú	STDOFFSETÚdaylightÚaltzoner   r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r	   r	      sD   ø‡ € ñ
ñ  5§>¡> /Ô2€Ià‡~‡~€~Ù u§}¡} nÔ5‰	àˆ	÷ð r   r	   c                   ó4   a € ] tR t^1t o RtRR ltR tRtV tR# )ÚBasicTweetHandlerz
Minimal implementation of `TweetHandler`.

Counts the number of Tweets and decides when the client should stop
fetching them.
c                ó@   € Wn         ^ V n         RV n         RV n        R# )é    FN)ÚlimitÚcounterÚdo_stopÚmax_id)r   r%   s   &&r   Ú__init__ÚBasicTweetHandler.__init__9   s*   € ØŒ
ØˆŒð	ð ˆŒð	ð ˆŽr   c                óf   € V P                   V P                  8  ;'       d    V P                  '       * # )z<
Returns `False` if the client should stop fetching Tweets.
)r&   r%   r'   ©r   s   &r   Údo_continueÚBasicTweetHandler.do_continueH   s&   € ð �|‰|˜dŸj™jÑ(×=Ð=°·±Ô-=Ð=r   )r&   r'   r%   r(   N)é   )	r   r   r   r   r   r)   r-   r   r   r   s   @r   r"   r"   1   s   ø‡ € ñô÷>ð >r   r"   )Ú	metaclassc                   óX   a € ] tR t^Ot o RtRR lt]R 4       t]R 4       tR	R lt	Rt
V tR# )
ÚTweetHandlerIzi
Interface class whose subclasses should implement a handle method that
Twitter clients can delegate to.
Nc                óÊ   € \         P                  W4       RV n        RV n        V'       d   \	        VR\
        / V n        V'       d   \	        VR\
        / V n        RV n        R# )aâ  
:param int limit: The number of data items to process in the current        round of processing.

:param tuple upper_date_limit: The date at which to stop collecting        new data. This should be entered as a tuple which can serve as the        argument to `datetime.datetime`.        E.g. `date_limit=(2015, 4, 1, 12, 40)` for 12:30 pm on April 1 2015.

:param tuple lower_date_limit: The date at which to stop collecting        new data. See `upper_data_limit` for formatting.
Nr   T)r"   r)   Úupper_date_limitÚlower_date_limitr   ÚLOCALÚ
startingup)r   r%   r4   r5   s   &&&&r   r)   ÚTweetHandlerI.__init__U   sU   € ô 	×"Ñ" 4Ô/à $ˆÔØ $ˆÔßÜ$,Ð.>Ð$MÄuÑ$MˆDÔ!ßÜ$,Ð.>Ð$MÄuÑ$MˆDÔ!àˆŽr   c                ó   € R# )z:
Deal appropriately with data returned by the Twitter API
Nr   )r   Údatas   &&r   ÚhandleÚTweetHandlerI.handlem   ó   ‚ r   c                ó   € R# )z/
Actions when the tweet limit has been reached
Nr   r,   s   &r   Ú	on_finishÚTweetHandlerI.on_finishs   r=   r   c                ó  € V P                   '       g   V P                  '       dâ   Rp\        P                  ! VR,          V4      P	                  \
        P                  R7      pV P                   '       d   W@P                   8”  g#   V P                  '       dn   W@P                  8  d\   V P                   '       d   RpV P                   pMRpV P                  pV'       d   \        RP                  WeV4      4       RV n	        R# R# R# R# )	z
Validate date limits.
z%a %b %d %H:%M:%S +0000 %YÚ
created_at)r   ÚearlierÚlaterz1Date limit {} is {} than date of current tweet {}TN)
r4   r5   r   ÚstrptimeÚreplacer   ÚutcÚprintÚformatr'   )r   r:   ÚverboseÚdate_fmtÚ
tweet_dateÚmessageÚ
date_limits   &&&    r   Úcheck_date_limitÚTweetHandlerI.check_date_limity   sà   € ð × × Ð  D×$9×$9Ð$9Ø3ˆHÜ!×*Ò*¨4°Õ+=¸xÓH×PÑPÜ—|‘|ð Qó ˆJð ×%×%Ð%¨*×7LÑ7LÔ*LØ×%×%Ð%¨*×7LÑ7LÔ*Là×(×(Ð(Ø'�GØ!%×!6Ñ!6‘Jà%�GØ!%×!6Ñ!6�JßÜØK×RÑRØ&°óôð
  $�–ñ +MÑ%ñ %:r   )r'   r5   r7   r4   )r/   NN)F)r   r   r   r   r   r)   r   r;   r?   rO   r   r   r   s   @r   r2   r2   O   sA   ø‡ € ñô
ð0 ñó ðð
 ñó ð÷
$ò $r   r2   )r   Útimer   Úabcr   r   r   r   r   r   r	   r6   r"   r2   r   r   r   Ú<module>rS      sI   ðñó
 ß 'ß :Ó :ô ô ñ6 	#Ó$€ô> 'õ >ô<B$Ð%ö B$r   