3 ՔRe? @ s d dl mZmZ d dlZd dlZd dlZd dlmZ d dlm Z d dl mZ d dlm Z mZ d dlmZ dd d Zdd Zdd dZG dd deZG dd deZG dd deZdS ) )absolute_importunicode_literalsN)defaultdict)partial) import_module)DistutilsOptionErrorDistutilsFileError)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 ospathabspathisfiler getcwdchdirdirnamefind_config_filesappendparse_config_filesparse_configurationcommand_optionsconfiguration_to_dict) filepathZfind_othersr r r Zcurrent_directorydistr handlers r /builddir/build/BUILDROOT/alt-python36-setuptools-38.5.2-7.el9.x86_64/opt/alt/python36/lib/python3.6/site-packages/setuptools/config.pyread_configuration s$ r c C sl t t}x^| D ]V}|j}|j}xD|jD ]:}t|d| d}|dkrNt||}n| }||| |<