Hacked By AnonymousFox
3
9��fVF � @ s� d dl mZmZ d dlZd dlZd dlZd dlmZ d dlm Z d dl
mZ d dlm
Z
mZ d dlmZmZ d dlmZ dd
d�Zdd
� Zddd�ZG dd� de�ZG dd� de�ZG dd� de�ZdS )� )�absolute_import�unicode_literalsN)�defaultdict)�partial)�
import_module)�DistutilsOptionError�DistutilsFileError)�
LegacyVersion�parse)�string_typesFc C s� ddl m}m} tjj| �} tjj| �s4td| ��tj� }tj tjj
| �� zJ|� }|rb|j� ng }| |krx|j| � |j
||d� t||j|d�}W dtj |� X t|�S )a, 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
r )�Distribution�
_Distributionz%Configuration file %s does not exist.)� filenames)�ignore_option_errorsN)Zsetuptools.distr r
�os�path�abspath�isfiler �getcwd�chdir�dirnameZfind_config_files�appendZparse_config_files�parse_configuration�command_options�configuration_to_dict) �filepathZfind_othersr r r
Zcurrent_directoryZdistr �handlers� r �/usr/lib/python3.6/config.py�read_configuration s$
r c C sl t t�}x^| D ]V}|j}|j}xD|jD ]:}t|d| d�}|dkrNt||�}n|� }||| |<