
    ԋg                       d dl m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Zd dlZd dlmZ ej                  j                  Zej                   j#                  ej                   j%                  e      d      Z ee      5 Z ej.                  e      Zddd       ej                  j3                  e       i ddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(i d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAd@dBd@dCd@dDd@dEdFZej                  j7                  e       ej                  j4                  j9                  e        ej:                  e      Zej@                  dGk\  rejB                  Z"ndOdHZ"dPdIZ#dPdJZ$dPdKZ%dQdLZ&dPdMZ'dRdNZ( e'ej                  j                         y# 1 sw Y   6xY w)S    )annotationsN)Callable)Any)import_requiredzdistributed.yamlzallowed-failuresz&distributed.scheduler.allowed-failures	bandwidthzdistributed.scheduler.bandwidthzdefault-data-sizez'distributed.scheduler.default-data-sizezwork-stealingz#distributed.scheduler.work-stealingz
worker-ttlz distributed.scheduler.worker-ttlzmultiprocessing-methodz)distributed.worker.multiprocessing-methodzuse-file-lockingz#distributed.worker.use-file-lockingzprofile-intervalz#distributed.worker.profile.intervalzprofile-cycle-intervalz distributed.worker.profile.cyclezworker-memory-targetz distributed.worker.memory.targetzworker-memory-spillzdistributed.worker.memory.spillzworker-memory-pausezdistributed.worker.memory.pausezworker-memory-terminatez#distributed.worker.memory.terminatezheartbeat-intervalzdistributed.client.heartbeatcompressionzdistributed.comm.compressionzconnect-timeoutz!distributed.comm.timeouts.connectztcp-timeoutzdistributed.comm.timeouts.tcpzdefault-schemezdistributed.comm.default-schemezsocket-backlogzdistributed.comm.socket-backlogzdiagnostics-linkzdistributed.dashboard.linkzbokeh-export-toolz!distributed.dashboard.export-toolz	tick-timezdistributed.admin.tick.intervalztick-maximum-delayzdistributed.admin.tick.limitz
log-lengthzdistributed.admin.log-lengthz
log-formatdistributed.admin.log-formatz
pdb-on-errzdistributed.admin.pdb-on-errucxzdistributed.comm.ucxrmmzdistributed.rmmztransition-log-lengthz&distributed.admin.low-level-log-lengthz+distributed.scheduler.transition-log-lengthz'distributed.scheduler.events-log-lengthzrecent-messages-log-lengthz+distributed.comm.recent-messages-log-lengthzdistributed.p2p.diskzdistributed.p2p.storage.disk)      c                 >    t         j                  j                         S )N)logging_nameToLevelcopy     2lib/python3.12/site-packages/distributed/config.py _logging_get_level_names_mappingr   S   s    ##((**r   c                   ddddddd}t        |       }|j                  |j                  di              t        j                  t
        j                        }|j                  t        j                  t        j                  j                  d|                    t               }t        |j                               D ]  \  }}t        |t              r||j!                            n|}t        j"                  |      }|j%                  |       t        j"                  d	      }	d
}
|j'                  d      D ]#  }|	j(                  rd}
 n|	j+                  |       % |
r|j-                  |       d
|_         y	)z
    Initialize logging using the "old-style" configuration scheme, e.g.:
        {
        'logging': {
            'distributed': 'info',
            'tornado': 'critical',
            'tornado.application': 'error',
            }
        }
    infowarningerrorcritical)distributedzdistributed.clientzdistributed.gcbokehtornadoztornado.applicationr   r	   )configNF.T)_find_logging_configupdategetr   StreamHandlersysstderrsetFormatter	Formatterdaskr   r   sorteditems
isinstancestrupper	getLoggersetLevelsplithandlersgetChild
addHandler	propagate)r   loggersbase_confighandlerlogging_namesname	raw_levellevelloggerancalready_registeredancestors               r   _initialize_logging_old_styler@   W   sL    '#&%G 'v.KNN;??9b12##CJJ/GKKOO:6OJ	

 56M!'--/2i )S) )//+, 	
 ""4( %"

3H||%)"LL"	 ( "g&$F+ 3r   c                v    t        |       }t        j                  j                  |j	                  d             y)z
    Initialize logging using logging's "Configuration dictionary schema".
    (ref.: https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema)
    r   N)r    r   r   
dictConfigr"   r   r6   s     r   _initialize_logging_new_stylerD      s)    
 'v.KNNkooi89r   c                z    t        |       }t        j                  j                  |j	                  d      d       y)z
    Initialize logging using logging's "Configuration file format".
    (ref.: https://docs.python.org/3/howto/logging.html#configuring-logging)
    logging-file-configF)disable_existing_loggersN)r    r   r   
fileConfigr"   rC   s     r   _initialize_logging_file_configrI      s5    
 'v.KNN-.!&  r   c                ^    ddh}|| j                  di       j                         z  r| d   S | S )z
    Look for the dictionary containing logging-specific configurations,
    starting in the 'distributed' dictionary and then trying the top-level
    rF   r   r   )r"   keys)r   logging_keyss     r   r    r       s:    
 *95Lfjj388::m$$r   c                    t        |       }d|v rd|v rt        d      t        |        y |j                  di       }d|v rt	        |d         |d<   t        |        y t        |        y )NrF   r   zJConfig options 'logging-file-config' and 'logging' are mutually exclusive.version)r    RuntimeErrorrI   r"   intrD   r@   )r   r6   
log_configs      r   initialize_loggingrR      sr    &v.K+#\  	(/ __Y3

"$'
9(=$>Jy!)&1)&1r   c                     t         j                  j                  d      } | dk(  rt        dd      }|j                  S | dv r$t
        j                  dk(  rt        j                  S y t        dt         j                  j                  d      z        )Nzdistributed.admin.event-loopuvloopzThe distributed.admin.event-loop configuration value is set to 'uvloop' but the uvloop module is not installed

Please either change the config value or install one of the following
    conda install uvloop
    pip install uvloop>   asyncior   win32zWExpected distributed.admin.event-loop to be in ('asyncio', 'tornado', 'uvloop'), got %s)
r(   r   r"   r   new_event_loopr$   platformrU   SelectorEventLoop
ValueError)
event_looprT   s     r   get_loop_factoryr\      s    !?@JX %
 $$$++<<7" ,,,
a
++//8
9	: r   )returnzdict[str, int])r   dict[Any, Any]r]   None)r   r^   r]   r^   )r]   z.Callable[[], asyncio.AbstractEventLoop] | None))
__future__r   rU   logging.configr   osr$   collections.abcr   typingr   yamlr(   
dask.utilsr   r   pathjoindirname__file__fnopenf	safe_loaddefaultsupdate_defaultsdeprecationsrenamer!   r.   __name__r<   version_infogetLevelNamesMappingr   r@   rD   rI   r    rR   r\   r   r   r   <module>rv      s   "   	 
 $    &			 WW\\"''//(+-?@	"Xt~~a H    H %$@$2$ B$ :	$
 4$ I$ =$ =$ @$ >$ <$ <$ D$ 8$ 1$  :!$" 2#$$ 7%$& 7'$( 4)$* <+$, 2-$. 8/$0 01$2 03$4 05$6 
!7$8 
9$< E=$> 23[?$@ ./WA$B !"JC$D 23[E$F :G$P   <        - 
		8	$ w'.'C'C$+2%j:		2$4 4;;%% &K Xs   GG