
    ɯei                        d dl 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
 ddlmZ  ee      Z ej                  d      Zdd	Zdd
ZdddZddZy)    )annotationsN)	getLogger)Iterable   )_TOP_LEVEL_DOMAIN_REGEX)requestszm^http(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z@:])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\&\(\)\/\\\+&%\$#_=@:]*)?$c                >    t        t        j                  |             S )zConfirms if the provided URL is a valid HTTP/ HTTPs URL

    Args:
        url: the URL that needs to be validated

    Returns:
        true/ false depending on whether the URL is valid or not
    )boolURL_VALIDATORmatch)urls    ^/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/snowflake/connector/url_util.pyis_valid_urlr      s     ##C())    c                t    | t         j                  d       yt        j                  j	                  | d      S )zConverts a target string into escaped URL safe string

    Args:
        target: string to be URL encoded

    Returns:
        URL encoded string
    z$The string to be URL encoded is None )safe)loggerdebugurllibparse
quote_plus)targets    r   url_encode_strr      s3     ~;<<<""6"33r   c                    | syt        j                  t        |       }|r"|j                  d      dd  j	                         S dj	                         S )Ncomr   r   )researchr   grouplower)hostnamer   s     r   &extract_top_level_domain_from_hostnamer"   .   sG    II-x8E"'EKKN1299;;U99;;r   c                B    t         j                  j                  | |      S N)r   utilsshould_bypass_proxies)r   no_proxys     r   r&   r&   6   s    >>//X>>r   )r   strreturnr
   )r   
str | Noner)   r(   r$   )r!   r*   r)   r(   )r   zstr | bytesr'   zIterable[str] | Noner)   r
   )
__future__r   r   urllib.parser   loggingr   typingr   	constantsr   vendoredr   __name__r   compiler   r   r   r"   r&    r   r   <module>r4      sP    " 	    . 	8	 

 E
	*4<?r   