Ë
    	V.jb3  ã                   ó¦  — d dl Z d dlZd dlZd dlZddlmZ g ZdZddlm	Z	m
Z
mZmZmZmZmZ  G d„ d«      Z G d„ d	ej"                  «      Z G d
„ de«      Z ed„  ee«      D «       «      e_        ej,                  dk7  r� G d„ dej"                  «      Z G d„ dej"                  «      Z G d„ dej"                  «      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z e«        e«        e«       dœZ eed   «      Zn4 G d„ dej"                  «      Z G d„ de«      Zd e«       iZ eed   «      Zd„ Z ej@                  «       Z!d „ Z"d!„ Z#d"„ Z$y)#é    Né   )ÚprocesszIforce_execv is not supported as the billiard C extension is not installed)ÚProcessErrorÚBufferTooShortÚTimeoutErrorÚAuthenticationErrorÚTimeLimitExceededÚSoftTimeLimitExceededÚWorkerLostErrorc                   ób  — e Zd ZeZeZeZeZeZeZe	Z	 e
ej                  «      Z e
ej                  «      Z eed«      rd„ Znd„ Zd„ Zd"d„Zd„ Zd„ Zd#d	„Zd$d
„Zd$d„Zd„ Zd%d„Zd&d„Zd&d„Zd„ Z	 	 	 	 	 	 d'd„Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d#d„Z$d„ Z%d„ Z&d„ Z'd#d„Z(d(d„Z)d#d„Z*d„ Z+d „ Z,d!„ Z-y))ÚBaseContextÚ	cpu_countc                 óH   — t        j                  «       }|€t        d«      ‚|S )z(Returns the number of CPUs in the systemúcannot determine number of cpus)Úosr   ÚNotImplementedError)ÚselfÚnums     úRC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\billiard/context.pyr   zBaseContext.cpu_count2   s#   € ä—,‘,“.ˆCØˆ{Ü)Ð*KÓLÐLà�
ó    c                 óD  — t         j                  dk(  r	 t        t        j                  d   «      }nŽdt         j                  v st         j                  dk(  rSd}t         j                  dk(  rd|z   }	 t        j                  |«      5 }t        |j                  «       «      }d d d «       n	 t        j                  d«      }d	k\  r|S t        d
«      ‚# t
        t        f$ r d}Y Œ%w xY w# 1 sw Y   ŒIxY w# t
        $ r d}Y ŒBw xY w# t
        t        t        f$ r d}Y Œ^w xY w)NÚwin32ÚNUMBER_OF_PROCESSORSr   ÚbsdÚdarwinz/sbin/sysctl -n hw.ncpuz/usrÚSC_NPROCESSORS_ONLNr   r   )ÚsysÚplatformÚintr   ÚenvironÚ
ValueErrorÚKeyErrorÚpopenÚreadÚsysconfÚOSErrorÚAttributeErrorr   )r   r   ÚcommÚps       r   r   zBaseContext.cpu_count:   s  € Ü�|‰|˜wÒ&ðÜœbŸj™jÐ)?Ñ@ÓA‘Cð œ#Ÿ,™,Ñ&¬#¯,©,¸(Ò*BØ0�Ü—<‘< 8Ò+Ø! D™=�DðÜŸ™ $œ¨1Ü! !§&¡&£(›m˜÷ (øð
ÜŸ*™*Ð%:Ó;�Cð �aŠxØ�
ä)Ð*KÓLÐLøô) #¤HÐ-ò Ø’Cðú÷ (˜ûä!ò Ø’Cðûô
 #¤G¬^Ð<ò Ø’CðúsM   •C Á2C5 ÂC)Â!C5 Â+D ÃC&Ã%C&Ã)C2Ã.C5 Ã5DÄDÄDÄDc                 ó`   — ddl m}  || j                  «       ¬«      }|j                  «        |S )z½Returns a manager associated with a running server process

        The managers methods such as `Lock()`, `Condition()` and `Queue()`
        can be used to create shared objects.
        r   )ÚSyncManager©Úctx)Úmanagersr+   Úget_contextÚstart)r   r+   Úms      r   ÚManagerzBaseContext.ManagerT   s(   € õ 	*Ù˜D×,Ñ,Ó.Ô/ˆØ	�‰Œ	Øˆr   c                 ó"   — ddl m}  ||||«      S )z1Returns two connection object connected by a piper   )ÚPipe)Ú
connectionr4   )r   ÚduplexÚ	rnonblockÚ	wnonblockr4   s        r   r4   zBaseContext.Pipe_   s   € å$Ù�F˜I yÓ1Ð1r   c                 ó<   — ddl m}  || j                  «       ¬«      S )z#Returns a non-recursive lock objectr   )ÚLockr,   )Úsynchronizer:   r/   )r   r:   s     r   r:   zBaseContext.Lockd   s   € å%Ù˜×(Ñ(Ó*Ô+Ð+r   c                 ó<   — ddl m}  || j                  «       ¬«      S )zReturns a recursive lock objectr   )ÚRLockr,   )r;   r=   r/   )r   r=   s     r   r=   zBaseContext.RLocki   ó   € å&Ù˜×)Ñ)Ó+Ô,Ð,r   Nc                 ó>   — ddl m}  ||| j                  «       ¬«      S )zReturns a condition objectr   )Ú	Conditionr,   )r;   r@   r/   )r   Úlockr@   s      r   r@   zBaseContext.Conditionn   s   € å*Ù˜ 4×#3Ñ#3Ó#5Ô6Ð6r   c                 ó>   — ddl m}  ||| j                  «       ¬«      S )zReturns a semaphore objectr   )Ú	Semaphorer,   )r;   rC   r/   )r   ÚvaluerC   s      r   rC   zBaseContext.Semaphores   s   € å*Ù˜ D×$4Ñ$4Ó$6Ô7Ð7r   c                 ó>   — ddl m}  ||| j                  «       ¬«      S )z"Returns a bounded semaphore objectr   )ÚBoundedSemaphorer,   )r;   rF   r/   )r   rD   rF   s      r   rF   zBaseContext.BoundedSemaphorex   s   € å1Ù ¨4×+;Ñ+;Ó+=Ô>Ð>r   c                 ó<   — ddl m}  || j                  «       ¬«      S )zReturns an event objectr   )ÚEventr,   )r;   rH   r/   )r   rH   s     r   rH   zBaseContext.Event}   r>   r   c                 óB   — ddl m}  ||||| j                  «       ¬«      S )zReturns a barrier objectr   )ÚBarrierr,   )r;   rJ   r/   )r   ÚpartiesÚactionÚtimeoutrJ   s        r   rJ   zBaseContext.Barrier‚   s   € å(Ù�w ¨°T×5EÑ5EÓ5GÔHÐHr   c                 ó>   — ddl m}  ||| j                  «       ¬«      S )úReturns a queue objectr   )ÚQueuer,   )ÚqueuesrP   r/   )r   ÚmaxsizerP   s      r   rP   zBaseContext.Queue‡   s   € å!Ù�W $×"2Ñ"2Ó"4Ô5Ð5r   c                 ó>   — ddl m}  ||| j                  «       ¬«      S )rO   r   )ÚJoinableQueuer,   )rQ   rT   r/   )r   rR   rT   s      r   rT   zBaseContext.JoinableQueueŒ   s   € å)Ù˜W¨$×*:Ñ*:Ó*<Ô=Ð=r   c                 ó<   — ddl m}  || j                  «       ¬«      S )rO   r   )ÚSimpleQueuer,   )rQ   rV   r/   )r   rV   s     r   rV   zBaseContext.SimpleQueue‘   s   € å'Ù˜t×/Ñ/Ó1Ô2Ð2r   c                 ó^   — ddl m}  ||||||||||	|
|||||||| j                  «       ¬«      S )zReturns a process pool objectr   )ÚPool)Úcontext)ÚpoolrX   r/   )r   Ú	processesÚinitializerÚinitargsÚmaxtasksperchildrM   Úsoft_timeoutÚlost_worker_timeoutÚmax_restartsÚmax_restart_freqÚon_process_upÚon_process_downÚon_timeout_setÚon_timeout_cancelÚthreadsÚ	semaphoreÚputlocksÚallow_restartrX   s                      r   rX   zBaseContext.Pool–   sJ   € õ 	Ù�I˜{¨HÐ6FØ˜\Ð+>Ø Ð"2°MØ# ^Ð5FØ˜Y¨°-Ø ×,Ñ,Ó.ô0ð 	0r   c                 ó    — ddl m}  ||g|¢­Ž S )zReturns a shared objectr   )ÚRawValue)Úsharedctypesrl   )r   Útypecode_or_typeÚargsrl   s       r   rl   zBaseContext.RawValue¥   s   € å*ÙÐ(Ð0¨4Ò0Ð0r   c                 ó    — ddl m}  |||«      S )zReturns a shared arrayr   )ÚRawArray)rm   rq   )r   rn   Úsize_or_initializerrq   s       r   rq   zBaseContext.RawArrayª   s   € å*ÙÐ(Ð*=Ó>Ð>r   c                 óh   — ddl m} |j                  dd«      } ||g|¢­|| j                  «       dœŽS )z$Returns a synchronized shared objectr   )ÚValuerA   T©rA   r-   )rm   rt   Úgetr/   )r   rn   ro   Úkwargsrt   rA   s         r   rt   zBaseContext.Value¯   s?   € å'Ø�z‰z˜& $Ó'ˆÙÐ%ð -¨ñ -°4Ø×)Ñ)Ó+ò-ð 	-r   c                 óf   — ddl m} |j                  dd«      } ||||| j                  «       ¬«      S )z#Returns a synchronized shared arrayr   )ÚArrayrA   Tru   )rm   ry   rv   r/   )r   rn   rr   ro   rw   ry   rA   s          r   ry   zBaseContext.Array¶   s6   € å'Ø�z‰z˜& $Ó'ˆÙÐ%Ð':ÀØ×)Ñ)Ó+ô-ð 	-r   c                 ój   — t         j                  dk(  r t        t         dd«      rddlm}  |«        yyy)z‹Check whether this is a fake forked process in a frozen executable.
        If so then run code specified by commandline and exit.
        r   ÚfrozenFr   )Úfreeze_supportN)r   r   ÚgetattrÚspawnr|   )r   r|   s     r   r|   zBaseContext.freeze_support½   s-   € ô �<‰<˜7Ò"¤w¬s°H¸eÔ'DÝ-ÙÕð (EÐ"r   c                 ó   — ddl m}  |«       S )zZReturn package logger -- if it does not already exist then
        it is created.
        r   )Ú
get_logger)Úutilr€   )r   r€   s     r   r€   zBaseContext.get_loggerÅ   s   € õ 	%Ù‹|Ðr   c                 ó   — ddl m}  ||«      S )z8Turn on logging and add a handler which prints to stderrr   )Úlog_to_stderr)r�   rƒ   )r   Úlevelrƒ   s      r   rƒ   zBaseContext.log_to_stderrÌ   s   € å'Ù˜UÓ#Ð#r   c                 ó   — ddl m} y)zVInstall support for sending connections and sockets
        between processes
        r   )r5   N)Ú r5   )r   r5   s     r   Úallow_connection_picklingz%BaseContext.allow_connection_picklingÑ   s   € ö 	!r   c                 ó    — ddl m}  ||«       y)zÌSets the path to a python.exe or pythonw.exe binary used to run
        child processes instead of sys.executable when using the 'spawn'
        start method.  Useful for people embedding Python.
        r   )Úset_executableN)r~   r‰   )r   Ú
executabler‰   s      r   r‰   zBaseContext.set_executableÙ   s   € õ
 	*Ù�zÕ"r   c                 ó    — ddl m}  ||«       y)zkSet list of module names to try to load in forkserver process.
        This is really just a hint.
        r   )Úset_forkserver_preloadN)Ú
forkserverrŒ   )r   Úmodule_namesrŒ   s      r   rŒ   z"BaseContext.set_forkserver_preloadá   s   € õ 	7Ù˜|Õ,r   c                 óx   — |€| S 	 t         |   }|j                  «        |S # t        $ r t        d|z  «      ‚w xY w)Nzcannot find context for %r)Ú_concrete_contextsr"   r!   Ú_check_available)r   Úmethodr-   s      r   r/   zBaseContext.get_contextè   sS   € Øˆ>ØˆKð	DÜ$ VÑ,ˆCð 	×ÑÔØˆ
øô ò 	DÜÐ9¸FÑBÓCÐCð	Dús   †	! ¡9c                 ó   — | j                   S ©N)Ú_name©r   Ú
allow_nones     r   Úget_start_methodzBaseContext.get_start_methodò   s   € Ø�z‰zÐr   c                 ó   — t        d«      ‚)Nz+cannot set start method of concrete context)r!   )r   r’   s     r   Úset_start_methodzBaseContext.set_start_methodõ   s   € ÜÐFÓGÐGr   c                 ó0   — | j                  «       xs ddk(  S )NÚfork)r˜   ©r   s    r   Úforking_is_enabledzBaseContext.forking_is_enabledø   s   € à×%Ñ%Ó'Ò1¨6°fÑ<Ð<r   c                 ó†   — |s?ddl m} |r| j                  dd¬«       y t        j                  t        t        «      «       y y )Nr   )Úsupports_execr~   T)Úforce)Ú_extr    rš   ÚwarningsÚwarnÚRuntimeWarningÚ
W_NO_EXECV)r   rD   r    s      r   Úforking_enablezBaseContext.forking_enableü   s4   € áÝ+ÙØ×%Ñ% g°TÐ%Õ:ä—‘œn¬ZÓ8Õ9ð r   c                  ó   — y r”   © r�   s    r   r‘   zBaseContext._check_available  s   € Ør   )TFFr”   )r   )NN)r   )NNr©   NNNNNr   NNNNTNFF©F).Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r	   r
   r   Ústaticmethodr   Úcurrent_processÚactive_childrenÚhasattrr   r   r2   r4   r:   r=   r@   rC   rF   rH   rJ   rP   rT   rV   rX   rl   rq   rt   ry   r|   r€   rƒ   r‡   r‰   rŒ   r/   r˜   rš   rž   r§   r‘   r©   r   r   r   r   $   s  „ à€LØ#€NØ€LØ-ÐØ)ÐØ1ÐØ%€Oá" 7×#:Ñ#:Ó;€OÙ" 7×#:Ñ#:Ó;€Oáˆr�;Ôó	ò	Mò4	ó2ò
,ò
-ó
7ó
8ó
?ò
-ó
Ió
6ó
>ò
3ð
 ?AØ?CØ48ØEIØBFØ;@ó0ò1ò
?ò
-ò-òòó$ò
!ò#ò-óóóHò=ò:ór   r   c                   ó    — e Zd ZdZed„ «       Zy)ÚProcessNc                 ó\   — t         j                  «       j                  j                  | «      S r”   )Ú_default_contextr/   r³   Ú_Popen)Úprocess_objs    r   r¶   zProcess._Popen  s"   € ä×+Ñ+Ó-×5Ñ5×<Ñ<¸[ÓIÐIr   ©r«   r¬   r­   Ú_start_methodr®   r¶   r©   r   r   r³   r³     s   „ Ø€MàñJó ñJr   r³   c                   ó@   ‡ — e Zd ZeZd„ Zdˆ fd„	Zdd„Zdd„Zd„ Zˆ xZ	S )ÚDefaultContextc                 ó    — || _         d | _        y r”   )rµ   Ú_actual_context)r   rY   s     r   Ú__init__zDefaultContext.__init__  s   € Ø 'ˆÔØ#ˆÕr   c                 ó€   •— |€)| j                   €| j                  | _         | j                   S t        t        | �  |«      S r”   )r½   rµ   Úsuperr»   r/   )r   r’   Ú	__class__s     €r   r/   zDefaultContext.get_context  s@   ø€ Øˆ>Ø×#Ñ#Ð+Ø'+×'<Ñ'<�Ô$Ø×'Ñ'Ð'äœ¨Ñ:¸6ÓBÐBr   c                 óz   — | j                   �|st        d«      ‚|€
|rd | _         y | j                  |«      | _         y )Nzcontext has already been set)r½   ÚRuntimeErrorr/   )r   r’   r¡   s      r   rš   zDefaultContext.set_start_method$  sA   € Ø×ÑÐ+±EÜÐ=Ó>Ð>Øˆ>™eØ#'ˆDÔ ØØ#×/Ñ/°Ó7ˆÕr   c                 ón   — | j                   €|ry | j                  | _         | j                   j                  S r”   )r½   rµ   r•   r–   s     r   r˜   zDefaultContext.get_start_method,  s4   € Ø×ÑÐ'ÙØØ#'×#8Ñ#8ˆDÔ Ø×#Ñ#×)Ñ)Ð)r   c                 ób   — t         j                  dk(  rdgS ddlm} |j                  rg d¢S ddgS )Nr   r~   r   ©Ú	reduction©rœ   r~   r�   rœ   )r   r   r†   rÇ   ÚHAVE_SEND_HANDLE©r   rÇ   s     r   Úget_all_start_methodsz$DefaultContext.get_all_start_methods3  s3   € Ü�<‰<˜7Ò"Ø�9Ðå#Ø×)Ò)Ú6Ð6à Ð(Ð(r   r”   rª   )
r«   r¬   r­   r³   r¾   r/   rš   r˜   rË   Ú__classcell__)rÁ   s   @r   r»   r»     s"   ø„ Ø€Gò$õCó8ó*ö)r   r»   c              #   ó2   K  — | ]  }|d    dk7  sŒ|–— Œ y­w)r   Ú_Nr©   )Ú.0Úxs     r   Ú	<genexpr>rÑ   =  s   è ø€ ÐLÑ)< AÀÀ!ÁÈÃœaÑ)<ùs   ‚�r   c                   ó    — e Zd ZdZed„ «       Zy)ÚForkProcessrœ   c                 ó   — ddl m}  || «      S ©Nr   )ÚPopen)Ú
popen_forkrÖ   ©r·   rÖ   s     r   r¶   zForkProcess._PopenH  s   € å)Ù˜Ó%Ð%r   Nr¸   r©   r   r   rÓ   rÓ   E  s   „ Øˆà	ñ	&ó 
ñ	&r   rÓ   c                   ó    — e Zd ZdZed„ «       Zy)ÚSpawnProcessr~   c                 ó   — ddl m}  || «      S rÕ   )Úpopen_spawn_posixrÖ   rØ   s     r   r¶   zSpawnProcess._PopenP  ó   € å0Ù˜Ó%Ð%r   Nr¸   r©   r   r   rÚ   rÚ   M  ó   „ Øˆà	ñ	&ó 
ñ	&r   rÚ   c                   ó    — e Zd ZdZed„ «       Zy)ÚForkServerProcessr�   c                 ó   — ddl m}  || «      S rÕ   )Úpopen_forkserverrÖ   rØ   s     r   r¶   zForkServerProcess._PopenX  s   € å/Ù˜Ó%Ð%r   Nr¸   r©   r   r   rà   rà   U  s   „ Ø$ˆà	ñ	&ó 
ñ	&r   rà   c                   ó   — e Zd ZdZeZy)ÚForkContextrœ   N)r«   r¬   r­   r•   rÓ   r³   r©   r   r   rä   rä   ]  s   „ ØˆØ‰r   rä   c                   ó   — e Zd ZdZeZy©ÚSpawnContextr~   N©r«   r¬   r­   r•   rÚ   r³   r©   r   r   rç   rç   a  ó   „ ØˆØ‰r   rç   c                   ó   — e Zd ZdZeZd„ Zy)ÚForkServerContextr�   c                 ó>   — ddl m} |j                  st        d«      ‚y )Nr   rÆ   z%forkserver start method not available)r†   rÇ   rÉ   r!   rÊ   s     r   r‘   z"ForkServerContext._check_availablei  s   € Ý#Ø×-Ò-Ü Ð!HÓIÐIð .r   N)r«   r¬   r­   r•   rà   r³   r‘   r©   r   r   rë   rë   e  s   „ ØˆØ#ˆó	Jr   rë   rÈ   rœ   c                   ó    — e Zd ZdZed„ «       Zy)rÚ   r~   c                 ó   — ddl m}  || «      S rÕ   )Úpopen_spawn_win32rÖ   rØ   s     r   r¶   zSpawnProcess._Popenz  rÝ   r   Nr¸   r©   r   r   rÚ   rÚ   w  rÞ   r   c                   ó   — e Zd ZdZeZyræ   rè   r©   r   r   rç   rç     ré   r   r~   c                 ó(   — t         |    t        _        y r”   )r�   rµ   r½   )r’   s    r   Ú_force_start_methodrò   �  s   € Ü'9¸&Ñ'AÔÕ$r   c                  ó$   — t        t        dd «      S )NÚspawning_popen)r}   Ú_tlsr©   r   r   Úget_spawning_popenrö   —  s   € Ü”4Ð)¨4Ó0Ð0r   c                 ó   — | t         _        y r”   )rõ   rô   )r#   s    r   Úset_spawning_popenrø   ›  s
   € Ø„DÕr   c                 óZ   — t        «       €!t        dt        | «      j                  z  «      ‚y )NzF%s objects should only be shared between processes through inheritance)rö   rÃ   Útyper«   )Úobjs    r   Úassert_spawningrü   Ÿ  s4   € ÜÓÐ#Üð#Ü%)¨#£Y×%7Ñ%7ñ8ó
ð 	
ð $r   )%r   r   Ú	threadingr£   r†   r   Ú__all__r¦   Ú
exceptionsr   r   r   r   r	   r
   r   r   ÚBaseProcessr³   r»   ÚlistÚdirr   rÓ   rÚ   rà   rä   rç   rë   r�   rµ   rò   Úlocalrõ   rö   rø   rü   r©   r   r   Ú<module>r     su  ðÛ 	Û 
Û Û å à
€ð€
÷÷ ñ ÷bñ bôRJˆg×!Ñ!ô Jô&)�[ô &)ñP ÑL©¨^Ô)<ÓLÓL€Ô ð ‡<�<�7Òô&�g×)Ñ)ô &ô&�w×*Ñ*ô &ô&˜G×/Ñ/ô &ô�kô ô�{ô ôJ˜Kô Jñ “Ù“Ù'Ó)ñÐñ
 &Ð&8¸Ñ&@ÓAÑô&�w×*Ñ*ô &ô�{ô ð
 	‘“ðÐñ &Ð&8¸Ñ&AÓBÐòBð €y‡�Ó€ò1ò ó
r   