a
    xd                     @   sX   d dl Z d dlZd dlmZ d dlmZmZ erDd dlmZm	Z	m
Z
 G dd deZdS )    N)MYPY)Item
PayloadRef)OptionalUnionCallablec                   @   s&   e Zd Zd	ddZdd Zdd ZdS )

AttachmentNFc                 C   s|   |d u r|d u rt d|d u r4|d ur4tj|}|d u rDt d|d u rZt|d }|| _|| _|| _|| _|| _	d S )Nz)path or raw bytes required for attachmentz#filename is required for attachmentr   )
	TypeErrorospathbasename	mimetypes
guess_typebytesfilenamecontent_typeadd_to_transactions)selfr   r   r   r   r    r   N/var/www/html/Ranjet/env/lib/python3.9/site-packages/sentry_sdk/attachments.py__init__   s    	zAttachment.__init__c                 C   sJ   d}| j dur*t| j r"|   }q6| j }nt| jd}t|d| j| jdS )z-Returns an envelope item for this attachment.N)r   
attachment)payloadtyper   r   )r   callabler   r   r   r   r   )r   r   r   r   r   to_envelope_item#   s    


zAttachment.to_envelope_itemc                 C   s   d| j f S )Nz<Attachment %r>)r   )r   r   r   r   __repr__5   s    zAttachment.__repr__)NNNNF)__name__
__module____qualname__r   r   r   r   r   r   r   r      s        
r   )r
   r   Zsentry_sdk._typesr   Zsentry_sdk.enveloper   r   typingr   r   r   objectr   r   r   r   r   <module>   s   