File: //lib64/python2.7/mailcap.pyc
�
zfc           @   s�   d  Z  d d l Z d d l Z d d l Z d d g Z e j d � j Z d e f d �  �  YZ	 d �  Z
 d	 �  Z d
 �  Z d �  Z
 d �  Z d
 d g  d � Z d d � Z g  d � Z d �  Z d �  Z d �  Z e d k r� e �  n  d S(   s%   Mailcap file handling.  See RFC 1524.i����Nt   getcapst	   findmatchs   [^\xa1-\xff\w@+=:,./-]t   UnsafeMailcapInputc           B   s   e  Z d  Z RS(   s)   Warning raised when refusing unsafe input(   t   __name__t
   __module__t   __doc__(    (    (    s   /usr/lib64/python2.7/mailcap.pyR      s   c          C   s�   i  }  x� t  �  D]� } y t | d � } Wn t k
 r? q n X| � t | � } Wd QXxE | j �  D]7 \ } } | |  k r� | |  | <qf |  | | |  | <qf Wq W|  S(   s�  Return a dictionary containing the mailcap database.
    The dictionary maps a MIME type (in all lowercase, e.g. 'text/plain')
    to a list of dictionaries corresponding to mailcap entries.  The list
    collects all the entries for that MIME type from all available mailcap
    files.  Each dictionary contains key-value pairs for that MIME type,
    where the viewing command is stored with the key "view".
    t   rN(   t   listmailcapfilest   opent   IOErrort   readmailcapfilet	   iteritems(   t   capst   mailcapt   fpt   morecapst   keyt   value(    (    s   /usr/lib64/python2.7/mailcap.pyR       s    
c          C   sm   d t  j k r. t  j d }  |  j d � } n; d t  j k rM t  j d } n d } | d d d d g } | S(	   s7   Return a list of all mailcap files found on the system.t   MAILCAPSt   :t   HOMEt   .s	   /.mailcaps   /etc/mailcaps   /usr/etc/mailcaps   /usr/local/etc/mailcap(   t   ost   environt   split(   t   strt   mailcapst   home(    (    s   /usr/lib64/python2.7/mailcap.pyR   +   s    
c         C   s;  i  } x.|  j  �  } | s Pn  | d d k s	 | j �  d k rG q	 n  | } x= | d d k r� |  j  �  } | s{ d } n  | d  | } qP Wt | � \ } } | o� | s� q	 n  | j d � } x. t t | � � D] } | | j �  | | <q� Wd j | � j �  } | | k r&| | j | � q	 | g | | <q	 W| S(   s�  Read a mailcap file and return a dictionary keyed by MIME type.
    Each MIME type is mapped to an entry consisting of a list of
    dictionaries; the list will contain more than one such dictionary
    if a given MIME type appears more than once in the mailcap file.
    Each dictionary contains key-value pairs for that MIME type, where
    the viewing command is stored with the key "view".
    i    t   #t    i����s   \
s   
t   /(	   t   readlinet   stript	   parselineR   t   ranget   lent   joint   lowert   append(   R   R   t   linet   nextlineR   t   fieldst   typest   j(    (    s   /usr/lib64/python2.7/mailcap.pyR
   >