
    !}g                        d Z ddlmZ ddlZddlmZmZ ddlmZ  ej	        dej
                  Z ee          Zdd
ZddZddZddZdS )z=tldextract helpers for testing and fetching remote resources.    )annotationsN)AddressValueErrorIPv6Address)scheme_charszo^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$urlstrreturnc                   t          |                               d          d                             d          d                             d          d                             d          d         }|r8|d         dk    r,|                    d          }|d	         dk    r|d          dS |                    d
          d                                         }|                    d          }|S )zExtract the netloc of a URL-like string.

    Similar to the netloc attribute returned by
    urllib.parse.{urlparse,urlsplit}, but extract more leniently, without
    raising errors.
    /r   ?#@[]   :u
   .。．｡)_schemeless_url	partition
rpartitionstriprstrip)r   after_userinfo
maybe_ipv6hostnamewithout_root_labels        Q/var/www/py-google-trends/myenv/lib/python3.11/site-packages/tldextract/remote.pylenient_netlocr      s     		3		3	 
3	 
C		   '.+s22#--c22
a=C m&&&&'',,Q/5577H!)>??    c                    |                      d          }|dk    r
| dd          S |dk     s1| |dz
           dk    r"t          | d |dz
                     t          z
  r| S | |dz   d          S )Nz//r      r   r   )findsetscheme_chars_set)r   double_slashes_starts     r   r   r   +   s    88D>>q  122wq  '!+,33s-)A--.//2BB 4 
#a'))**r   maybe_ipboolc                r    | d                                          sdS t                              |           duS )z7Check whether the given str looks like an IPv4 address.r   FN)isdigitIP_RE	fullmatchr&   s    r   looks_like_ipr-   8   s6    A;   u??8$$D00r   c                J    	 t          |            n# t          $ r Y dS w xY wdS )z7Check whether the given str looks like an IPv6 address.FT)r   r   r,   s    r   looks_like_ipv6r/   @   s?    H   uu4s    
  )r   r   r	   r   )r&   r   r	   r'   )__doc__
__future__r   re	ipaddressr   r   urllib.parser   compileASCIIr*   r#   r$   r   r   r-   r/    r   r   <module>r8      s    C C " " " " " " 				 4 4 4 4 4 4 4 4 % % % % % %
>H	 	 3|$$    2
+ 
+ 
+ 
+1 1 1 1     r   