o
    ^oij>                  
   @  s  U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZ	d dl
Z
d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d dlmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dl Z d dl!m"Z# zd dlm$Z$ W n e%y   ej&Z$Y nw z
d dlm'Z' dZ(W n e%y   dZ(Y nw ej)dkrd dl*m+Z+ dZ,nz
d dl-m+Z+ dZ,W n e%y   dZ,Y nw zd dl.Z.W n e%y   dZ/Y nw dZ/dZ0ed Z1e2eje1j3e1j4e1j5e1j6e1j7e1j8ej9j:d; e0 Z<ee2e=ejej>ej?e@f ZAeeAeg eAf eeAddf f ZBededef dZCededee f dZDedee dZEee2e2e2e2e2e2e2e2e2f	 ZFd]d$d%ZGG d&d' d'ZHg aId(eJd)< d*ZKejLjMe
eKdd+ZNejLjMe
d,dd+ZOG d-d. d.ZPd^d_d2d3ZQd`d4d5ZRdad9d:ZSdbd;d<ZTd^dcd@dAZd^dcdBdCZUd^dddHdIZVdedJdKZdfdLdMZWe/rG dNdO dOZXe.jYdPdQdgdSdTZZG dUdV dVZ[G dWdX dXZ\G dYdZ dZZ]G d[d\ d\Z^e^ Z_dS )h    )annotationsN)	Generator)gmtime)struct_time)TracebackType)Any)	Awaitable)Callable)Tuple)Type)TypeVar)Union)cast)overload)TestCase)mock)parse)CLOCK_REALTIME)tzsetTF   	   )ZoneInfoi ʚ;tzinfo_F.)bound_AFTestCaseTypedestinationDestinationTypereturntuple[float, str | None]c                 C  s0  t | tr
t| }n
t| r|  }n| }d }t |tr#t|}||fS t |tr.|}||fS t |tjrUtr@t |j	t
r@|j	j}|j	d u rM|jtjjd}| }||fS t |tjrgt |  }||fS t |tjrtjj|tddtjjd }||fS t |trt| }||fS td|)Nr   r   zUnsupported destination )
isinstancer   nextcallableintfloatdtdatetimeHAVE_ZONEINFOr   r   keyreplacetimezoneutc	timestamp	timedeltatime_moduletimetotal_secondsdatecombinestrparse_datetime	TypeError)r   desttznamer/    r;   ]/var/www/html/kuke-dev/django-kuke/venv/lib/python3.10/site-packages/time_machine/__init__.pyextract_timestamp_tznamej   sB   






r=   c                   @  sV   e Zd Zdd	d
ZdddZd ddZd!ddZ	d"d#ddZd$ddZd$ddZ	dS )%Coordinatesdestination_timestampr'   destination_tzname
str | Nonetickboolr!   Nonec                 C  s$   t |t | _|| _|| _d| _d S NF)r&   NANOSECONDS_PER_SECOND_destination_timestamp_ns_destination_tzname_tick
_requested)selfr?   r@   rB   r;   r;   r<   __init__   s   
zCoordinates.__init__c                 C  s   |   t S N)time_nsrF   rK   r;   r;   r<   r2         zCoordinates.timer&   c                 C  sB   | j s| jS t| j }t }| jsd| _|| _|S ||| j  S )NT)rI   rG   SYSTEM_EPOCH_TIMESTAMP_NS_time_machineoriginal_time_nsrJ   Z_real_start_timestamp_ns)rK   baseZnow_nsr;   r;   r<   rN      s   
zCoordinates.time_nsdeltadt.timedelta | int | floatc                 C  sR   t |tjr| }nt |ttfr|}ntd||  jt|t 7  _d S )Nz%Unsupported type for delta argument: )	r#   r(   r0   r3   r&   r'   r8   rG   rF   )rK   rU   r3   r;   r;   r<   shift   s   
zCoordinates.shiftNr   r    bool | Nonec                 C  sH   |    t|\}| _t|t | _d| _|   |d ur"|| _d S d S rE   )	_stopr=   rH   r&   rF   rG   rJ   _startrI   )rK   r   rB   r/   r;   r;   r<   move_to   s   
zCoordinates.move_toc                 C  s:   t r| jd urtjd| _| jtjd< t  d S d S d S NZTZ)
HAVE_TZSETrH   osenvironget_orig_tzr   rO   r;   r;   r<   rZ      s
   
zCoordinates._startc                 C  s@   t r| jd ur| jd u rtjd= n| jtjd< t  d S d S d S r\   )r]   rH   ra   r^   r_   r   rO   r;   r;   r<   rY      s   


zCoordinates._stop)r?   r'   r@   rA   rB   rC   r!   rD   r!   r'   r!   r&   rU   rV   r!   rD   rM   r   r    rB   rX   r!   rD   r!   rD   )
__name__
__module____qualname__rL   r2   rN   rW   r[   rZ   rY   r;   r;   r;   r<   r>      s    




r>   zlist[Coordinates]coordinates_stack_generate_time_safe)new_UuidCreatec                   @  sx   e Zd Zddd%d	d
Zd&ddZd'ddZd&ddZd(ddZed)ddZ	ed*ddZ	ed+d!dZ	d,d#dZ	d$S )-travelTrB   r   r    rB   rC   r!   rD   c                C  s   t |\| _| _|| _d S rM   )r=   r?   r@   rB   rK   r   rB   r;   r;   r<   rL      s   
ztravel.__init__r>   c                 C  sX   t   tstjdk rt  t  t	  t
| j| j| jd}t| |  |S )Nr   )r?   r@   rB   )rR   Zpatch_if_neededrj   sysversion_infouuid_load_system_functionsuuid_generate_time_patcherstartuuid_uuid_create_patcherr>   r?   r@   rB   appendrZ   )rK   coordinatesr;   r;   r<   rv      s   

ztravel.startc                 C  s(   t    t st  t  d S d S rM   )rj   poprY   ru   stoprw   rO   r;   r;   r<   r{      s
   ztravel.stopc                 C  s   |   S rM   )rv   rO   r;   r;   r<   	__enter__     ztravel.__enter__exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Nonec                 C  s   |    d S rM   )r{   )rK   r~   r   r   r;   r;   r<   __exit__	  s   ztravel.__exit__wrappedr   c                 C     d S rM   r;   rK   r   r;   r;   r<   __call__     ztravel.__call__r   c                 C  r   rM   r;   r   r;   r;   r<   r     r   r   c                 C  r   rM   r;   r   r;   r;   r<   r     r   TestCaseType | _AF | _F | Anyc                   s   t tr?ttstdjj t d fdd}t	|_j
jtdfdd	}t	|_
ttS trVtdfdd}tt|S ts\J tdfdd}tt|S )Nz/Can only decorate unittest.TestCase subclasses.clstype[TestCase]r!   rD   c                   s6      z |  W d S  ty   jt    w rM   )r|   	Exceptionr   rq   exc_infor   )orig_setUpClassrK   r;   r<   
setUpClass+  s   z#travel.__call__.<locals>.setUpClassc                   s    |   d d d  d S rM   )r   r   )orig_tearDownClassrK   r;   r<   tearDownClass:  s   z&travel.__call__.<locals>.tearDownClassargsr   kwargsc                    s>     | i |I d H W  d    S 1 sw   Y  d S rM   r;   r   r   r   r;   r<   wrapperE  s   $z travel.__call__.<locals>.wrapperc                    s6     | i |W  d    S 1 sw   Y  d S rM   r;   r   r   r;   r<   r   N  s   $)r   r   r!   rD   )r   r   r   r   r!   r   )r#   type
issubclassr   r8   r   __func__	functoolswrapsclassmethodr   r   r   inspectiscoroutinefunctionr   r%   r   )rK   r   r   r   r   r;   )r   r   rK   r   r<   r      s.   






N)r   r    rB   rC   r!   rD   )r!   r>   rf   )r~   r   r   r   r   r   r!   rD   )r   r   r!   r   )r   r   r!   r   )r   r   r!   r   )r   r   r!   r   )
rg   rh   ri   rL   rv   r{   r|   r   r   r   r;   r;   r;   r<   rn      s    



rn   tzdt.tzinfo | Nonedt.datetimec                 C  s"   t s	t| }|S tjt | S rM   )rj   rR   original_nowr(   r)   fromtimestampr2   )r   resultr;   r;   r<   nowY  s   
r   c                  C  s,   t st } | S tjt tjjj	d dS )Nr   )
rj   rR   original_utcnowr(   r)   r   r2   r-   r.   r,   r   r;   r;   r<   utcnow`  s   r   clk_idr&   r'   c                 C      t r| tkrt| }|S t S rM   )rj   r   rR   original_clock_gettimer2   r   r   r;   r;   r<   clock_gettimej     
r   c                 C  r   rM   )rj   r   rR   original_clock_gettime_nsrN   r   r;   r;   r<   clock_gettime_nsq  r   r   secsfloat | Noner   c                 C  0   t r| d urt| }|S tt d  }|S N)rj   rR   original_gmtimer2   r   r   r;   r;   r<   r   x  
   
r   c                 C  r   r   )rj   rR   original_localtimer2   r   r;   r;   r<   	localtime  r   r   formatr6   t_TimeTuple | struct_time | Nonec                 C  s<   |d urt | |}|S tst | }|S t | t }|S rM   )rR   original_strftimerj   r   )r   r   r   r;   r;   r<   strftime  s   
r   c                  C     t st } | S t d  S r   )rj   rR   original_timer2   r   r;   r;   r<   r2        r2   c                  C  r   r   )rj   rR   rS   rN   r   r;   r;   r<   rN     r   rN   c                   @  sJ   e Zd ZU ded< ded< dddZ		ddddZdddZdddZd	S )TimeMachineFixtureztravel | None	travellerzCoordinates | Nonery   r!   rD   c                 C  s   d | _ d | _d S rM   )r   ry   rO   r;   r;   r<   rL     s   
zTimeMachineFixture.__init__Nr   r    rB   rX   c                 C  sV   | j d u r|d u rd}t||d| _ | j  | _d S | jd us!J | jj||d d S )NTro   )r   rn   rv   ry   r[   rp   r;   r;   r<   r[     s   
zTimeMachineFixture.move_torU   rV   c                 C  s2   | j d u r	td| jd usJ | jj|d d S )Nz<Initialize time_machine with move_to() before using shift().)rU   )r   RuntimeErrorry   rW   )rK   rU   r;   r;   r<   rW     s   
zTimeMachineFixture.shiftc                 C  s   | j d ur| j   d S d S rM   )r   r{   rO   r;   r;   r<   r{     s   
zTimeMachineFixture.stoprf   rM   re   rd   )rg   rh   ri   __annotations__rL   r[   rW   r{   r;   r;   r;   r<   r     s   
 

r   Ztime_machine)name/TypingGenerator[TimeMachineFixture, None, None]c                  c  s    t  } | V  |   d S rM   )r   r{   )fixturer;   r;   r<   time_machine_fixture  s   r   c                   @  s"   e Zd Zd
dddZddd	ZdS )_EscapeHatchDatetimeDatetimeNr   r   r!   r   c                 C     t |}|S rM   )rR   r   )rK   r   r   r;   r;   r<   r        
z _EscapeHatchDatetimeDatetime.nowc                 C     t  }|S rM   )rR   r   rK   r   r;   r;   r<   r        z#_EscapeHatchDatetimeDatetime.utcnowrM   r   r   r!   r   r!   r   )rg   rh   ri   r   r   r;   r;   r;   r<   r     s    r   c                   @  s   e Zd ZdddZdS )_EscapeHatchDatetimer!   rD   c                 C  s   t  | _d S rM   )r   r)   rO   r;   r;   r<   rL     rP   z_EscapeHatchDatetime.__init__Nrf   )rg   rh   ri   rL   r;   r;   r;   r<   r     s    r   c                   @  sl   e Zd ZdddZd ddZd!d"ddZd!d"ddZd#ddZd$ddZd!d%ddZ	d#ddZ
d$ddZd	S )&_EscapeHatchTimer   r&   r!   r'   c                 C  r   rM   )rR   r   rK   r   r   r;   r;   r<   r     r   z_EscapeHatchTime.clock_gettimec                 C  r   rM   )rR   r   r   r;   r;   r<   r     r   z!_EscapeHatchTime.clock_gettime_nsNr   r   r   c                 C  r   rM   )rR   r   rK   r   r   r;   r;   r<   r     r   z_EscapeHatchTime.gmtimec                 C  r   rM   )rR   r   r   r;   r;   r<   r     r   z_EscapeHatchTime.localtimec                 C  r   rM   )rR   Zoriginal_monotonicr   r;   r;   r<   	monotonic  r   z_EscapeHatchTime.monotonicc                 C  r   rM   )rR   Zoriginal_monotonic_nsr   r;   r;   r<   monotonic_ns  r   z_EscapeHatchTime.monotonic_nsr   r6   r   r   c                 C  s&   |d urt ||}|S t |}|S rM   )rR   r   )rK   r   r   r   r;   r;   r<   r     s
   
z_EscapeHatchTime.strftimec                 C  r   rM   )rR   r   r   r;   r;   r<   r2     r   z_EscapeHatchTime.timec                 C  r   rM   )rR   rS   r   r;   r;   r<   rN     r   z_EscapeHatchTime.time_nsr   r&   r!   r'   r   r&   r!   r&   rM   r   r   r!   r   rb   rc   r   r6   r   r   r!   r6   )rg   rh   ri   r   r   r   r   r   r   r   r2   rN   r;   r;   r;   r<   r     s    




r   c                   @  s    e Zd Zd	ddZd
ddZdS )_EscapeHatchr!   rD   c                 C  s   t  | _t | _d S rM   )r   r)   r   r2   rO   r;   r;   r<   rL     s   z_EscapeHatch.__init__rC   c                 C  s   t tS rM   )rC   rj   rO   r;   r;   r<   is_travelling  r}   z_EscapeHatch.is_travellingNrf   )r!   rC   )rg   rh   ri   rL   r   r;   r;   r;   r<   r     s    
r   )r   r    r!   r"   rM   r   r   r   r   r   r   rb   rc   )r!   r   )`
__future__r   r)   r(   r   r   r^   rq   r2   r1   rs   collections.abcr   r   Zorig_gmtimer   typesr   typingr   r   r	   ZTypingGeneratorr
   r   r   r   r   r   Zunittestr   r   rR   Zdateutil.parserr   r7   r   ImportErrormaxsizer   r]   rr   Zzoneinfor   r*   Zbackports.zoneinfoZpytestZHAVE_PYTESTrF   Z_system_epochr&   tm_yeartm_montm_mdaytm_hourtm_mintm_secr-   r.   r/   rQ   r'   r0   r4   r6   ZDestinationBaseTyper    r   r   r   Z
_TimeTupler=   r>   rj   r   Zuuid_generate_time_attrpatchobjectru   rw   rn   r   r   r   r   r   r   rN   r   r   r   r   r   r   r   Zescape_hatchr;   r;   r;   r<   <module>   s    



%Ez



		

	
"	
*
	