
    uYfM                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ da e
e      Z G d	 d
e      Zd Zd Zd Zd Zd Zy)    N)Env)_filter_sensitive_info)
COMMIT_SHA)MAIN_PACKAGE)REPOSITORY_URL)
get_logger)formatsc                       e Zd ZdZ ej
                  edd      Z ej
                  edd      Z	 ej
                  edd      Z
 ej
                  edd      Z ej
                  ed	d      Zy
)GitMetadataConfigddtrace_git_metadata_enabledT)defaultgit_repository_url git_commit_shamain_packagetagsN)__name__
__module____qualname__
__prefix__r   varboolenabledstrrepository_url
commit_shar   r        \/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/ddtrace/internal/gitmetadata.pyr   r      sx    J cggd8$GG SWWS"6CN .;J 3773;L 3773+Dr   r   c                 6   | j                   }| j                  }| j                  }t        j                  | j
                        }|s|j                  t        d      }|s|j                  t        d      }t        |      }t        |      t        k7  rd||fS |||fS )zs
    Get git metadata from environment variables.
    Returns tuple (repository_url, commit_sha, main_package)
    r   )r   r   r   r	   parse_tags_strr   getr   r   r   typer   )configr   r   r   r   filtered_git_urls         r    _get_tags_from_envr'   %   s     **N""J&&L
 !!&++.D."5XXj"-
-n=$:|++Z55r   c                    | sy	 	 ddl m} d}|j                  |       j	                  d      D ]?  }|j                  d      }t        |      dkD  s#|d   dk(  s,|d   j                         } n |rQd	|v rM|j                  d	      \  }}|j                  d
      d   }t        |      }t        |      t        k7  rd|fS ||fS y# t        $ r ddl}Y w xY w# j                  $ r Y yw xY w)z
    Extracts git metadata from python package's medatada field Project-URL:
    e.g: Project-URL: source_code_link, https://github.com/user/repo#gitcommitsha&someoptions
    Returns tuple (repository_url, commit_sha)
    )r   r   r   Nr   zProject-URLz,    source_code_link#&)importlib.metadatametadataImportErrorimportlib_metadataget_allsplitlenstripr   r$   r   PackageNotFoundError)r   r0   r*   valcapt_valr   r   r&   s           r    _get_tags_from_packager8   =   s    	&; %..|<DD]S 	CyyH8}q Xa[4F%F#+A;#4#4#6 		 '7 7)9)?)?)D&NJ#))#.q1J5nE$%,:~%#Z//#  	&%	&$ 22 sB   C AC C A$C ?C CC CC C)(C)c                     	 t         t         S t               } | j                  r|t        |       \  }}}t        j                  d|||       |r1|r|s-t        |      \  }}t        j                  d||       |s|}|s|}t        j                  d||       |||fa t         S t        j                  d       da t         S # t        $ r t        j                  dd       Y yw xY w)	zT
    Returns git metadata tags tuple (repository_url, commit_sha, main_package)
    zgit tags from env: %s %s %szgit tags from package: %s %szgit tags: %s %szgit tags disabled)r   r   r   zgit tags failedT)exc_info)_GITMETADATA_TAGSr   r   r'   logdebugr8   	Exception)r%   r   r   r   pkg_repository_urlpkg_commit_shas         r    get_git_tagsrA   _   s    
($$"$>>7I&7Q4NJII3^ZQ]^^:5KL5Y2"N		8:Ln]%%7N!!/JII'D .
L H !  II)* ,   		#d	3s   B= BB=  B= = C C c                     | j                  t        d       | j                  t        d       | j                  t        d       | S )z(
    Cleanup tags from git metadata
    N)popr   r   r   )r   s    r    
clean_tagsrD      s3    
 	HH^T"HHZHH\4 Kr   c                 z    t        |        t               \  }}}|r	|| t        <   |r	|| t        <   |r
|| t        <   y y )N)rD   rA   r   r   r   )r   r   r   r   s       r    add_tagsrF      sD    t/;~,NJ-^%Z)\ r   )typingenvierr   ddtrace.ext.cir   ddtrace.ext.gitr   r   r   ddtrace.internal.loggerr   ddtrace.internal.utilsr	   r;   r   r<   r   r'   r8   rA   rD   rF   r   r   r    <module>rM      sV      1 & ( * . *  , ,&60D F	*r   