
    uYf                         d dl mZ d dlmZ d dlmZ  ee      ZdZd Z	d Z
e
a ej                  d      d        Z ej                  d	      d
        Zy)    )Dict)
get_logger)ModuleWatchdogzsql.dbc                 *    | syd| v ryd| v s| dk(  ry| S )z/Return a canonical name for a type of database.dbsqlitepostgrespsycopg2 )vendors    O/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/ddtrace/ext/sql.pynormalize_vendorr      s,     	V		v	:!5    c                     t               }	 t        d | j                         D              }|S # t        $ r t        j	                  dd       Y |S w xY w)z
    Return a dictionary of the components of a postgres DSN.
    >>> parse_pg_dsn('user=dog port=1543 dbname=dogdata')
    {'user':'dog', 'port':'1543', 'dbname':'dogdata'}
    c              3   @   K   | ]  }|j                  d d        yw)=   N)split).0_s     r   	<genexpr>z#_dd_parse_pg_dsn.<locals>.<genexpr>&   s     =AQ=s   z'Failed to parse postgres dsn connectionT)exc_info)dictr   	Exceptionlogdebug)dsndsn_dicts     r   _dd_parse_pg_dsnr      sY     vHL === O  L		;d	KOLs    .  AAr
   c                 4    	 ddl m} |ay# t        $ r Y yw xY w)zBReplaces parse_pg_dsn with the helper function defined in psycopg2r   )	parse_dsnN)psycopg2.extensionsr!   parse_pg_dsnImportError)psycopg_moduler!   s     r   use_psycopg2_parse_dsnr&   2   s!    
1      	psycopgc                 4    	 ddl m} |ay# t        $ r Y yw xY w)zBReplaces parse_pg_dsn with the helper function defined in psycopg3r   )conninfo_to_dictN)psycopg.conninfor*   r#   r$   )r%   r*   s     r   use_psycopg3_parse_dsnr,   @   s!    
5' r'   N)typingr   ddtrace.internal.loggerr   ddtrace.internal.moduler   __name__r   DBr   r   r#   after_module_importedr&   r,   r   r   r   <module>r3      st     . 2  
*   &%%j1
 2
 &%%i0
 1
r   