
    AHj                         d Z ddlZddlmZ ddlmZ  ej                  e      Zdede	de	dz  d	e	dz  d
e
e   f
dZ	 	 	 	 dde
e   de	de	dz  d	e	dz  deded
e
e   fdZy)z%
Utilities dedicated to URL sampling
    N)sample   )UrlStoreurlstore
samplesizeexclude_minexclude_maxreturnc           
      :   g }| j                   D ]  }| j                  |      D cg c]   }|j                  dvr|j                         " }}|r |t	        |      |k  s|/t	        |      |kD  r!t
        j                  d|t	        |             t	        |      |kD  rt        t        ||            }n|}|j                  |D cg c]  }||z   	 c}       t
        j                  d|t	        |      t	        |      t	        |      z          |S c c}w c c}w )z4Iterate through the hosts in store and draw samples.)   /Nzdiscarded (size): %s		urls: %s)kz%s		urls: %s	prop.: %s)urldict
_load_urlsurlpathpathlenLOGGERwarningsortedr   extenddebug)	r   r   r   r	   output_urlsdomainpurlpathsmysamples	            H/root/tools/cai/cai_env/lib/python3.12/site-packages/courlan/sampling.py_make_sampler      s    K"" 
 ((0
yy, FFH
 
 &H+&H+NN=vs8}Ux=:%fX<=HH91FQJ9:'MMCM)		
-
8 7
( :s   %DD

input_urlsstrictverbosec                     |r$t         j                  t        j                         n#t         j                  t        j                         t        dd||      }|j                  |        t        ||||      S )zRSample a list of URLs by domain name, optionally using constraints on their numberTN)
compressedlanguager    r!   )r   setLevelloggingDEBUGERRORr   add_urlsr   )r   r   r   r	   r    r!   r   s          r   sample_urlsr*   6   sV     &&4$vwWHj!*k;GG    )NNFF)__doc__r&   randomr   r   r   	getLogger__name__r   intliststrr   boolr*    r+   r   <module>r5      s      			8	$$$$ t$ t	$
 
#Y$T #"HS	HH tH t	H
 H H 
#YHr+   