258547712 ;ˆÇÔ 0ÓÀÑ =ˆ¾Ô ƒh¹ÓÀÑ=auto ?ˆ¾Ô 0ÓÀÑ AˆÇÔ 0ÓÀÑ CˆÃÔ „_dÓÀÑ?÷Ca ´i”Pã@szdZddlmZddlmZddlmZddlmZGdd„dƒZGdd „d ƒZ Gd d „d e ƒZ d d „Z Gdd„dƒZ Gdd„de ƒZGdd„dƒZGdd„deƒZGdd„dƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„dƒZGd d!„d!ƒZGd"d#„d#eƒZGd$d%„d%eƒZGd&d'„d'ƒZGd(d)„d)ƒZeeeeeeeeeeeeeeeeeeeed*œZGd+d,„d,ƒZd-S).a;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. Eventually HeaderRegistry will be a public API, but it isn't yet, and will probably change some before that happens. é)ÚMappingProxyType)Úutils)Úerrors)Ú_header_value_parserc@s^eZdZddd„Zedd„ƒZedd„ƒZed d „ƒZed d „ƒZd d„Z dd„Z dd„Z dS)ÚAddressÚNcCsœd td||||fƒ¡}d|vs(d|vr0tdƒ‚|dur†|s@|rHtdƒ‚t |¡\}}|rjtd ||¡ƒ‚|jrz|jd‚|j}|j }||_ ||_ ||_ dS) 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. rNú Ú 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ÚparserZ get_addr_specÚformatÚ all_defectsÚ local_partÚdomainÚ _display_nameÚ _usernameÚ_domain)ÚselfÚ display_nameÚusernamerÚ addr_specZinputsZa_sÚrest©rú,/usr/lib64/python3.9/email/headerregistry.pyÚ__init__s$þ zAddress.__init__cCs|jS©N©r©rrrrr<szAddress.display_namecCs|jSr)rr rrrr@szAddress.usernamecCs|jSr)rr rrrrDszAddress.domaincCs<|j}tj |¡st |¡}|jr0|d|jS|s8dS|S)z“The addr_spec (username@domain) portion of the address, quoted according to RFC 5322 rules, but with no Content Transfer Encoding. ú@ú<>)rrZ DOT_ATOM_ENDSÚ isdisjointÚ quote_stringr)rZlprrrrHs  zAddress.addr_speccCsd |jj|j|j|j¡S)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{} <{}>)rrÚSPECIALSr#r$rr)rÚdisprrrrÚ__str__[s   zAddress.__str__cCs2t|tƒstS|j|jko0|j|jko0|j|jkSr)Ú isinstancerÚNotImplementedrrr©rÚotherrrrÚ__eq__ds   ÿ þzAddress.__eq__)rrrN) r&Ú __module__Ú __qualname__rÚpropertyrrrrr'r*r/rrrrrs *     rc