
    rii                     V   d Z ddlZddlZddlmZ ddlmZmZm	Z	m
Z
 ddlZddlZddlmZ ddlmZ ddlmZ  ej        d	          Zd
eeef         dddefdZde	eeef                  dede
e	e         ef         fdZedefd            Zedefd            Zedefd            ZdS )z)Utilities for the XGBoost Dask interface.    N)cache)AnyDictOptionalTuple)Version)parse   )Configz[xgboost.dask]local_paramworkerzdistributed.Workerreturnc                    t          |d          r|j        j        n|j        }d}dD ]V}|                     |d          >|                     ||          |k    r$t                              d           | |         } nW|dk    s||}|S )zIGet the number of threads from a worker and the user-supplied parameters.stateN)nthreadn_jobsz-Overriding `nthreads` defined in dask worker.r   )hasattrr   nthreadsgetLOGGERinfo)r   r   dwnt	n_threadsps        X/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/xgboost/dask/utils.pyget_n_threadsr      s     %,FG$<$<Q6<  &/DI"  ??1d##/KOOAt4L4LPT4T4TKKGHHH#AIEA~~*	    dconfigcoll_cfgc                    dg}d}d}| :| D ]6}||vrt          d|           t          j        d| dt                     7ni } |                     dd          }|4|                    d          r|                    d          r
|d	d
         }|4	 t          j        	                    |          \  }}n# t           $ r Y nw xY w|t                      }|j        /|&|j        |k    rt          d| d|j         d          |j        }|j        @|dk    r3|1|j        dk    r&||j        k    rt          d| d|j         d          |j        }||fS )a  Get the tracker address from the optional user configuration.

    Parameters
    ----------
    dconfig :
        Dask global configuration.

    coll_cfg :
        Collective configuration.

    Returns
    -------
    The IP address along with the port number.

    scheduler_addressNr   zUnknown configuration: zeUse `coll_cfg` instead of the Dask global configuration store for the XGBoost tracker configuration: .[]   z\Conflicting host IP addresses from the dask configuration and the collective configuration: z v.s. zPConflicting ports from the dask configuration and the collective configuration: )
ValueErrorwarningswarnFutureWarningr   
startswithendswithdistributedcommget_address_host_portr   tracker_host_iptracker_port)r   r   valid_confighost_ipportks         r   get_address_from_userr6   "   s#   & ((LGD 		 		A$$ !>1!>!>???MD?@D D D    		 kk-t44Gw11#667;K;KC;P;P!B$-	',BB7KKMGTT 	 	 	D	 88+8#;w#F#FX-4X X<D<TX X X   *(AII %**---R-1R R9A9NR R R   $D=s   "B8 8
CCc                  4    t          t          j                  S )N)parse_versiondask__version__ r   r   _DASK_VERSIONr<   k   s    )***r   c                  @    t                      t          d          k    S )Nz	2024.12.1r<   r8   r;   r   r   _DASK_2024_12_1r?   p   s    ??mK8888r   c                  @    t                      t          d          k    S )Nz2025.3.0r>   r;   r   r   _DASK_2025_3_0rA   u   s    ??mJ7777r   )__doc__loggingr(   	functoolsr   fcachetypingr   r   r   r   r9   r-   packaging.versionr   r	   r8   
collectiver   	getLoggerr   strintr   r6   r<   boolr?   rA   r;   r   r   <module>rM      s   / /   % % % % % % - - - - - - - - - - - -      % % % % % % 4 4 4 4 4 4      		+	,	,tCH~ 7K PS    Fd38n%F17F
8C=#F F F FR +w + + + + 9 9 9 9 9 8 8 8 8 8 8 8r   