ž ¦ÿfR‹ c @ s d Z d g Z d d l Z d d l Z d d l Z d d l Z d d l m Z m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z e j Z d Z e j d ƒ Z d d „ Z d d d d „ Z d d „ Z d d „ Z Gd d „ d ƒ Z d S( u8 Basic message object for the email package object model.u Messagei N( u BytesIOu StringIO( u utils( u errors( u compat32( u charset( u decode_bu ; u [ \(\)<>@,;:\\"/\[\]\?=]c C sJ t | ƒ j d ƒ \ } } } | s4 | j ƒ d f S| j ƒ | j ƒ f S( Nu ;( u stru partitionu stripu None( u paramu au sepu b( ( u2 /opt/alt/python33/lib64/python3.3/email/message.pyu _splitparam s u _splitparamc C sþ | d k rö t | ƒ d k rö t | t ƒ rf | d 7} t j | d | d | d ƒ } d | | f Sy | j d ƒ Wn? t k r¸ | d 7} t j | d d ƒ } d | | f SYn X| sÎ t j | ƒ rå d | t j | ƒ f Sd | | f Sn | Sd S( u~ Convenience function to format and return a key=value pair. This will quote the value if needed or if quote is true. If value is a three tuple (charset, language, value), it will be encoded according to RFC2231 rules. If it contains non-ascii characters it will likewise be encoded according to RFC2231 rules, using the utf-8 charset and a null language. i u *i i u %s=%su asciiu utf-8u u %s="%s"N( u Noneu lenu isinstanceu tupleu utilsu encode_rfc2231u encodeu UnicodeEncodeErroru tspecialsu searchu quote( u paramu valueu quote( ( u2 /opt/alt/python33/lib64/python3.3/email/message.pyu _formatparam( s ! u _formatparamc C sO d t | ƒ } g } x2| d d … d k rJ| d d … } | j d ƒ } xR | d k r¢ | j d d | ƒ | j d d | ƒ d r¢ | j d | d ƒ } qQ W| d k r¾ t | ƒ } n | d | … } d | k r$| j d ƒ } | d | … j ƒ j ƒ d | | d d … j ƒ } n | j | j ƒ ƒ | | d … } q W| S( Nu ;i i u "u \"i u =( u stru findu countu lenu indexu stripu loweru append( u su plistu endu fu i( ( u2 /opt/alt/python33/lib64/python3.3/email/message.pyu _parseparamJ s ;;u _parseparamc C sB t | t ƒ r1 | d | d t j | d ƒ f St j | ƒ Sd S( Ni i i ( u isinstanceu tupleu utilsu unquote( u value( ( u2 /opt/alt/python33/lib64/python3.3/email/message.pyu _unquotevalue^ s "u _unquotevaluec B sp | Ee Z d Z d Z e d d „ Z d d „ Z d\ d d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d[ d\ d d „ Z d[ d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d d „ Z d! d" „ Z d# d$ „ Z d% d&