£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    \R                     @   sT   d dl Z d dlmZmZ d dlmZ d dlmZ G dd deZdd Zd	d
 ZdS )    N)Hub_should_send_default_pii)AnnotatedValue)	text_typec                   @   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )RequestExtractorc                 C   s
   || _ d S N)request)selfr    r
   U/opt/alt/python38/lib/python3.8/site-packages/sentry_sdk/integrations/_wsgi_common.py__init__   s    zRequestExtractor.__init__c                 C   s   t jj}|d krd S d }|  }|di }t rBt|  |d< |jd }|dkst|dkrd|dkst|dkr|dkrt	d	d
dd|gg|d}n>| 
 }|d k	r|}n(|  rt	d	ddd|gg|d}nd S ||d< d S )Nr   cookiesZrequest_bodiesneverZsmalli  Zmediumi'   z!configxr   )remlen!rawdata)r   currentclientcontent_length
setdefaultr   dictr   optionsr   parsed_bodyraw_data)r	   eventr   r   r   Zrequest_infoZbodiesr   r
   r
   r   extract_into_event   sB    
z#RequestExtractor.extract_into_eventc                 C   s2   zt |  ddW S  tk
r,   Y dS X d S )NZCONTENT_LENGTHr   )intenvget
ValueErrorr	   r
   r
   r   r   9   s    zRequestExtractor.content_lengthc                 C   s
   t  d S r   NotImplementedErrorr#   r
   r
   r   r   @   s    zRequestExtractor.cookiesc                 C   s
   t  d S r   r$   r#   r
   r
   r   r   C   s    zRequestExtractor.raw_datac                 C   s
   t  d S r   r$   r#   r
   r
   r   formF   s    zRequestExtractor.formc                 C   sj   |   }|  }|s|rbt| }| D ]0\}}| |}td|ddd|ggd||< q,|S |  S )Nr   r   r   r   )r   r   )r&   filesr   itemssize_of_filer   json)r	   r&   r'   r   kvsizer
   r
   r   r   I   s    
 
zRequestExtractor.parsed_bodyc                 C   s   t |  dS )NZCONTENT_TYPE)_is_json_content_typer    r!   r#   r
   r
   r   is_jsonY   s    zRequestExtractor.is_jsonc                 C   sN   z4|   r2|  }t|ts&|d}t|W S W n tk
rH   Y nX d S )Nzutf-8)r/   r   
isinstancer   decoder*   loadsr"   )r	   r   r
   r
   r   r*   ]   s    

zRequestExtractor.jsonc                 C   s
   t  d S r   r$   r#   r
   r
   r   r'   j   s    zRequestExtractor.filesc                 C   s
   t  d S r   r$   )r	   filer
   r
   r   r)   m   s    zRequestExtractor.size_of_filec                 C   s
   t  d S r   r$   r#   r
   r
   r   r    p   s    zRequestExtractor.envN)__name__
__module____qualname__r   r   r   r   r   r&   r   r/   r*   r'   r)   r    r
   r
   r
   r   r      s   &r   c                 C   s0   | pd ddd }|dkp.|do.|dS )Nr   ;   r   zapplication/jsonzapplication/z+json)split
startswithendswith)Zctmtr
   r
   r   r.   t   s
    
r.   c                 C   s   t  r
| S dd |  D S )Nc                 S   s*   i | ]"\}}|  d ddkr||qS )_-)z
set-cookieZcookieZauthorization)lowerreplace).0r+   r,   r
   r
   r   
<dictcomp>   s    z#_filter_headers.<locals>.<dictcomp>)r   r(   )headersr
   r
   r   _filter_headers~   s
    rD   )r*   Zsentry_sdk.hubr   r   Zsentry_sdk.utilsr   Zsentry_sdk._compatr   ZAnyDictOptionalUnionobjectr   r.   rD   r
   r
   r
   r   <module>   s   	f
