a DOgP@svddlmZddlmZddlmZddlmZGdddZGdddZGd d d e Z d d Z Gd ddZ Gddde Z GdddZGdddeZGdddZGdddeZGdddeZGdddeZGdddZGdd d ZGd!d"d"eZGd#d$d$eZGd%d&d&ZGd'd(d(Ze eeeeeeeeeeeeeeeeeeed)ZGd*d+d+Zd,S)-)MappingProxyType)utils)errors)_header_value_parserc@s^eZdZdddZeddZeddZed d Zed d Zd dZ ddZ ddZ dS)AddressNcCsdtd||||f}d|vs(d|vr0td|dur|s@|rHtdt|\}}|rjtd|||jrz|jd|j}|j }||_ ||_ ||_ dS)Nr  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) joinfilter ValueError TypeErrorparserZ get_addr_specformat all_defects local_partdomain _display_name _username_domain)self display_nameusernamer addr_specZinputsZa_srestr9/opt/alt/python39/lib64/python3.9/email/headerregistry.py__init__s$ zAddress.__init__cCs|jSNrrrrrr<szAddress.display_namecCs|jSr)rr rrrr@szAddress.usernamecCs|jSr)rr rrrrDszAddress.domaincCs<|j}tj|st|}|jr0|d|jS|s8dS|S)N@<>)rrZ DOT_ATOM_ENDS isdisjoint quote_stringr)rZlprrrrHs  zAddress.addr_speccCsd|jj|j|j|jS)Nz1{}(display_name={!r}, username={!r}, domain={!r}))r __class____name__rrrr rrr__repr__Vs zAddress.__repr__cCsF|j}tj|st|}|r@|jdkr.dn|j}d||S|jS)Nr"rz{} <{}>)rrSPECIALSr#r$rr)rdisprrrr__str__[s   zAddress.__str__cCs2t|tstS|j|jko0|j|jko0|j|jkSr) isinstancerNotImplementedrrrrotherrrr__eq__ds    zAddress.__eq__)rrrN) r& __module__ __qualname__rpropertyrrrrr'r*r/rrrrrs *     rc@sFeZdZdddZeddZeddZdd Zd d Zd d Z dS)GroupNcCs||_|rt|nt|_dSr)rtuple _addresses)rr addressesrrrrnszGroup.__init__cCs|jSrrr rrrrszGroup.display_namecCs|jSr)r5r rrrr6szGroup.addressescCsd|jj|j|jS)Nz${}(display_name={!r}, addresses={!r})rr%r&rr6r rrrr'szGroup.__repr__cCs||jdur&t|jdkr&t|jdS|j}|durJtj|sJt|}ddd|jD}|rld|n|}d ||S)Nr, css|]}t|VqdSrstr).0xrrr z Group.__str__.. z{}:{};) rlenr6r:rr(r#r$r r)rr)Zadrstrrrrr*s z Group.__str__cCs&t|tstS|j|jko$|j|jkSr)r+r3r,rr6r-rrrr/s    z Group.__eq__)NN) r&r0r1rr2rr6r'r*r/rrrrr3ls    r3c@sPeZdZddZddZeddZeddZd d Ze d d Z d dZ dS) BaseHeadercCs`dgi}|||t|dr4t|d|d<t||d}|d=|j|fi||S)Ndefectsdecoded)parserZ_has_surrogates _sanitizer:__new__init)clsnamevaluekwdsrrrrrFs zBaseHeader.__new__cCs||_||_||_dSr)_name _parse_tree_defects)rrI parse_treerBrrrrGszBaseHeader.initcCs|jSr)rLr rrrrIszBaseHeader.namecCs t|jSr)r4rNr rrrrBszBaseHeader.defectscCst|jj|jjt|f|jfSr)_reconstruct_headerr%r& __bases__r:__dict__r rrr __reduce__szBaseHeader.__reduce__cCs t||Sr)r:rF)rHrJrrr _reconstructszBaseHeader._reconstructc Cs`ttt|jdtddgg}|jrH|ttddg||j|j |dS)Nz header-name:z header-sepr?Zfws)policy) rZHeaderZ HeaderLabelZ ValueTerminalrIrMappendZCFWSListZWhiteSpaceTerminalfold)rrVheaderrrrrXs   zBaseHeader.foldN) r&r0r1rFrGr2rIrBrS classmethodrTrXrrrrrAs"     rAcCst||i|Sr)typerT)cls_namebasesrJrrrrPsrPc@s&eZdZdZeejZeddZ dS)UnstructuredHeaderNcCs"|||d<t|d|d<dS)NrOrC) value_parserr:rHrJrKrrrrD szUnstructuredHeader.parse) r&r0r1 max_count staticmethodrget_unstructuredr_rZrDrrrrr^s r^c@seZdZdZdS)UniqueUnstructuredHeaderr7Nr&r0r1rarrrrrdsrdcsBeZdZdZeejZeddZ fddZ e ddZ Z S) DateHeaderNcCsz|s6|dtd|d<d|d<t|d<dSt|trJt|}||d<t |d|d<| |d|d<dS)NrBdatetimerrCrO) rWrZHeaderMissingRequiredValuerZ TokenListr+r:rZparsedate_to_datetimeZformat_datetimer_r`rrrrD(s   zDateHeader.parsecs"|d|_tj|i|dS)Nrg)pop _datetimesuperrGrargskwr%rrrG6s zDateHeader.initcCs|jSr)rir rrrrg:szDateHeader.datetime)r&r0r1rarbrrcr_rZrDrGr2rg __classcell__rrrnrrfs   rfc@seZdZdZdS)UniqueDateHeaderr7Nrerrrrrp?srpcsPeZdZdZeddZeddZfddZe dd Z e d d Z Z S) AddressHeaderNcCst|\}}|Sr)rZget_address_list)rJ address_listrrrr_HszAddressHeader.value_parsercCst|trV|||d<}g}|jD]"}|t|jdd|jDq&t|j }n"t |dsf|g}dd|D}g}||d<||d<d d d|D|d <d|vr||d |d<dS) NrOcSs*g|]"}t|jpd|jpd|jp"dqS)r)rrrr)r;Zmbrrr Ws  z'AddressHeader.parse..__iter__cSs&g|]}t|dstd|gn|qS)r6N)hasattrr3r;itemrrrrs`sgroupsrBr8cSsg|] }t|qSrr9rvrrrrsfr>rC) r+r:r_r6rWr3rZ all_mailboxeslistrrur )rHrJrKrrrxZaddrrBrrrrDNs*     zAddressHeader.parsecs,t|d|_d|_tj|i|dS)Nrx)r4rh_groupsr5rjrGrkrnrrrGjszAddressHeader.initcCs|jSr)rzr rrrrxoszAddressHeader.groupscCs&|jdur tdd|jD|_|jS)Ncss|]}|jD] }|Vq qdSr)r6)r;groupaddressrrrr=vs z*AddressHeader.addresses..)r5r4rzr rrrr6ss zAddressHeader.addresses) r&r0r1rarbr_rZrDrGr2rxr6rorrrnrrqDs    rqc@seZdZdZdS)UniqueAddressHeaderr7Nrerrrrr}{sr}c@seZdZeddZdS)SingleAddressHeadercCs(t|jdkrtd|j|jdS)Nr7z9value of single address header {} is not a single addressr)r@r6r rrIr rrrr|s zSingleAddressHeader.addressN)r&r0r1r2r|rrrrr~sr~c@seZdZdZdS)UniqueSingleAddressHeaderr7NrerrrrrsrcsZeZdZdZeejZeddZ fddZ e ddZ e dd Z e d d ZZS) MIMEVersionHeaderr7cCs|||d<}t||d<|d|j|jdurs z1ParameterizedMIMEHeader.parse..)r_r:rrrrrrrrDs   zParameterizedMIMEHeader.parsecs"|d|_tj|i|dS)Nr)rh_paramsrjrGrkrnrrrGs zParameterizedMIMEHeader.initcCs t|jSr)rrr rrrrszParameterizedMIMEHeader.params) r&r0r1rarZrDrGr2rrorrrnrrs  rcsJeZdZeejZfddZeddZ eddZ eddZ Z S) ContentTypeHeadercs6tj|i|t|jj|_t|jj|_dSr) rjrGrrErMmaintype _maintypesubtype_subtyperkrnrrrGszContentTypeHeader.initcCs|jSr)rr rrrrszContentTypeHeader.maintypecCs|jSr)rr rrrrszContentTypeHeader.subtypecCs|jd|jS)N/)rrr rrr content_typeszContentTypeHeader.content_type) r&r0r1rbrZparse_content_type_headerr_rGr2rrrrorrrnrrs    rcs2eZdZeejZfddZeddZ Z S)ContentDispositionHeadercs6tj|i||jj}|dur&|nt||_dSr)rjrGrMcontent_dispositionrrE_content_disposition)rrlrmZcdrnrrrGszContentDispositionHeader.initcCs|jSr)rr rrrrsz,ContentDispositionHeader.content_disposition) r&r0r1rbrZ parse_content_disposition_headerr_rGr2rrorrrnrrs  rcsBeZdZdZeejZeddZ fddZ e ddZ Z S)ContentTransferEncodingHeaderr7cCs2|||d<}t||d<|d|jdSNrOrCrBr_r:rrrrrrrDs z#ContentTransferEncodingHeader.parsecs&tj|i|t|jj|_dSr)rjrGrrErMcte_cterkrnrrrGsz"ContentTransferEncodingHeader.initcCs|jSr)rr rrrrsz!ContentTransferEncodingHeader.cte)r&r0r1rarbrZ&parse_content_transfer_encoding_headerr_rZrDrGr2rrorrrnrrs   rc@s&eZdZdZeejZeddZ dS)MessageIDHeaderr7cCs2|||d<}t||d<|d|jdSrrrrrrrDs zMessageIDHeader.parseN) r&r0r1rarbrZparse_message_idr_rZrDrrrrr s r)Zsubjectdatez resent-datez orig-dateZsenderz resent-sendertoz resent-toZccz resent-ccZbccz resent-bccfromz resent-fromzreply-toz mime-versionz content-typezcontent-dispositionzcontent-transfer-encodingz message-idc@s4eZdZeedfddZddZddZdd Zd S) HeaderRegistryTcCs&i|_||_||_|r"|jtdSr)registry base_class default_classupdate_default_header_map)rrrZuse_default_maprrrr3s zHeaderRegistry.__init__cCs||j|<dSr)rrrrIrHrrr map_to_typeEszHeaderRegistry.map_to_typecCs,|j||j}td|j||jfiS)N_)rgetrrr[r&rrrrr __getitem__KszHeaderRegistry.__getitem__cCs||||Srr)rrIrJrrr__call__Os zHeaderRegistry.__call__N) r&r0r1rAr^rrrrrrrrr/s  rN)typesrZemailrrrrrr3r:rArPr^rdrfrprqr}r~rrrrrrrrrrrrr sV    \4d '7 %