File: //opt/alt/python27/lib/python2.7/site-packages/setuptools/config.pyo
�
אRec           @@ s�   d  d l  m Z m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m	 Z	 d  d l
 m Z m Z d  d l
 m Z d  d l m Z e e d � Z d	 �  Z e d
 � Z d e f d �  �  YZ d
 e f d �  �  YZ d e f d �  �  YZ d S(   i    (   t   absolute_importt   unicode_literalsN(   t   defaultdict(   t   partial(   t   DistutilsOptionErrort   DistutilsFileError(   t
   import_module(   t   string_typesc   	      C@ s�   d d l  m } m } t j j |  � }  t j j |  � sM t d |  � � n  t j �  } t j	 t j j
 |  � � zl | �  } | r� | j �  n g  } |  | k r� | j |  � n  | j
 | d | �t | | j d | �} Wd t j	 | � Xt | � S(   u,  Read given configuration file and returns options from it as a dict.
    :param str|unicode filepath: Path to configuration file
        to get options from.
    :param bool find_others: Whether to search for other configuration files
        which could be on in various places.
    :param bool ignore_option_errors: Whether to silently ignore
        options, values of which could not be resolved (e.g. due to exceptions
        in directives such as file:, attr:, etc.).
        If False exceptions are propagated as expected.
    :rtype: dict
    i    (   t   Distributiont
   _Distributionu%   Configuration file %s does not exist.t	   filenamest   ignore_option_errorsN(   t   setuptools.distR   R	   t   ost   patht   abspatht   isfileR   t   getcwdt   chdirt   dirnamet   find_config_filest   appendt   parse_config_filest   parse_configurationt   command_optionst   configuration_to_dict(	   t   filepatht   find_othersR   R   R	   t   current_directoryt   distR
   t   handlers(    (    sB   /opt/alt/python27/lib/python2.7/site-packages/setuptools/config.pyt   read_configuration
   s$    	
c         C@ s�   t  t � } x |  D]w } | j } | j } x\ | j D]Q } t | d | d � } | d k ro t | | � } n	 | �  } | | | | <q5 Wq W| S(   u�   Returns configuration data gathered by given handlers as a dict.
    :param list[ConfigHandler] handlers: Handlers list,
        usually from parse_configuration()
    :rtype: dict
    u   get_%sN(   R   t   dictt   section_prefixt
   target_objt   set_optionst   getattrt   None(   R   t   config_dictt   handlert	   obj_aliasR"