
    #h+                         d Z ddlZddlmZ ddlmZmZ ddlmZ  ej                  e
      Zdeded	ee   d
ee   dee   f
dZ	 	 	 	 ddee   ded	ee   d
ee   dededee   fdZy)z%
Utilities dedicated to URL sampling
    N)sample)ListOptional   )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	            M/var/www/html/sandstorm/venv/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,   7   sV     &&4$vwWHj!*k;GG    )NNFF)__doc__r(   randomr   typingr   r   r   r   	getLogger__name__r   intstrr    boolr,    r-   r   <module>r7      s      ! 			8	$$$$ #$ #	$
 
#Y$T "&!%HS	HH #H #	H
 H H 
#YHr-   