Your IP : 3.12.71.166
�
�Q�fSQ � �, � d Z ddlmZ ddlmZ ddlmZ ddlmZ G d� d� Z G d� d � Z G d
� de
� Zd� Z G d
� d� Z
G d� de
� Z G d� d� Z G d� de� Z G d� d� Z G d� de� Z G d� de� Z G d� de� Z G d� d� Z G d� d � Z G d!� d"e� Z G d#� d$e� Z G d%� d&� Z G d'� d(� Zi d)e�d*e�d+e�d,e�d-e�d.e�d/e�d0e�d1e�d2e�d3e�d4e�d5e�d6e�d7e�d8e�d9e�eeed:��Z G d;� d<� Zy=)>z�Representing and manipulating email headers via custom objects.
This module provides an implementation of the HeaderRegistry API.
The implementation is designed to flexibly follow RFC5322 rules.
� )�MappingProxyType)�utils)�errors)�_header_value_parserc �f � e Zd Zd
d�Zed� � Zed� � Zed� � Zed� � Zd� Z d� Z
d � Zy)�AddressNc � � dj t d||||f� � }d|v sd|v rt d� �|�w|s|rt d� �t j
|� \ }}|rt dj
||� � �|j r|j d �|j }|j }|| _
|| _ || _ y) a� Create an object representing a full email address.
An address can have a 'display_name', a 'username', and a 'domain'. In
addition to specifying the username and domain separately, they may be
specified together by using the addr_spec keyword *instead of* the
username and domain keywords. If an addr_spec string is specified it
must be properly quoted according to RFC 5322 rules; an error will be
raised if it is not.
An Address object has display_name, username, domain, and addr_spec
attributes, all of which are read-only. The addr_spec and the string
value of the object are both quoted according to RFC5322 rules, but
without any Content Transfer Encoding.
� N�
�
z8invalid arguments; address parts cannot contain CR or LFz=addrspec specified when username and/or domain also specifiedz6Invalid addr_spec; only '{}' could be parsed from '{}'r )
�join�filter�
ValueError� TypeError�parser�
get_addr_spec�format�all_defects�
local_part�domain�
_display_name� _username�_domain)�self�display_name�usernamer � addr_spec�inputs�a_s�rests �;/opt/alt/python312/lib64/python3.12/email/headerregistry.py�__init__zAddress.__init__ s� � �"