File: //home/arjun/projects/env/lib64/python3.10/site-packages/__pycache__/flask_mail.cpython-310.pyc
o
4�(TF � @ s� d Z ddlmZ dZddlZddlZddlZddlZddlZddl Z ddl
mZ ddlm
Z
ddlmZ ddlmZ dd lmZ dd
lmZ ddlmZmZmZmZ ddlmZ dd
lmZ ejd dkZ e omejd dkZ!e re"fZ#e"Z$ddl
m%Z% e%j&Z'ne(fZ#e)Z$dZ'e�*dej+dd� G dd� de,�Z-d1dd�Z.d2dd�Z/d2dd�Z0d2dd�Z1dd� Z2G d d!� d!e3�Z4G d"d#� d#e5�Z6G d$d%� d%e3�Z7G d&d'� d'e3�Z8G d(d)� d)e3�Z9G d*d+� d+e9�Z:G d,d-� d-e9�Z;e�<� Z=e=j>d.d/d0�Z?dS )3z�
flaskext.mail
~~~~~~~~~~~~~
Flask extension for sending email.
:copyright: (c) 2010 by Dan Jacob.
:license: BSD, see LICENSE for more details.
� )�with_statementz0.9.1N)�charset)�
encode_base64)�MIMEBase)�
MIMEMultipart)�MIMEText)�Header)�
formatdate�
formataddr�
make_msgid� parseaddr)�contextmanager)�current_app� � � )�policy�utf-8c @ s e Zd Zdd� Zdd� ZdS )�FlaskMailUnicodeDecodeErrorc G s || _ tj| g|�R � d S �N)�obj�UnicodeDecodeError�__init__)�selfr �args� r �C/home/arjun/projects/env/lib/python3.10/site-packages/flask_mail.pyr 4 s z$FlaskMailUnicodeDecodeError.__init__c C s t �| �}d|| jt| j�f S )Nz%s. You passed in %r (%s))r �__str__r �type)r �originalr r r r 8 s
z#FlaskMailUnicodeDecodeError.__str__N)�__name__�
__module__�__qualname__r r r r r r r 3 s r �strictc
s� t | t�r| S z<t | t�s;tr$t | t�rt| � ��} W | S t| �} W | S t| d�r0| �� } W | S tt| �� ��} W | S | �� ��} W | S tyq } z"t | t �sYt
| g|j�R � �d�� �fdd�| D ��} W Y d}~| S d}~ww )z�
Similar to smart_text, except that lazy instances are resolved to
strings, rather than kept as lazy objects.
If strings_only is True, don't convert (some) non-string-like objects.
�__unicode__� c s g | ] }t |� t���qS r )�
force_text�strings_only)�.0�arg��encoding�errorsr r �
<listcomp>X s
��zforce_text.<locals>.<listcomp>N)
�
isinstance� text_type�string_types�PY3�bytes�hasattrr$ �decoder � Exceptionr r �join)�sr+ r, �er r* r r&