_ic d Z ddlZddlZddlZddlmZ ddlmZ ddlmZ ddlm Z m Z mZmZm Z mZmZmZmZmZmZmZ ddlmZmZ dd lmZ dd lmZmZ ddlmZ ddl m!Z!m"Z" dd l#m$Z$ ddl%m&Z& e rddl'm(Z( ddl)m*Z* ee+ejX f Z-ededef f Z. ede.f Z/ eded Z0 d8de-de1fdZ2ddde-ddfdZ3 d9ddde-dee- de4ded f dZ5d e0d!e+fd"Z6d#ed de1fd$Z7 d:d%dd&e/ded' fd(Z8d)e+d*e+d+e9fd,Z: G d- d.e e0 Z; G d/ d0e;d1 Z< G d2 d3e;d Z= G d4 d5e$ Z> G d6 d7e$ Z?y);a< Load setuptools configuration from ``setup.cfg`` files. **API will be made private in the future** To read project metadata, consider using ``build.util.project_wheel_metadata`` (https://pypi.org/project/build/). For simple scenarios, you can also try parsing the file directly with the help of ``configparser``. N)defaultdict)partialwraps) TYPE_CHECKINGCallableAnyDictGenericIterableListOptionalSetTupleTypeVarUnion ) FileErrorOptionError)default_environment)InvalidRequirementRequirement)SpecifierSet)InvalidVersionVersion)SetuptoolsDeprecationWarning )expand)DistributionMetadataDistributionstrTarget)r! r )boundfilepathreturnc v ddl m} | }|r|j ng }t || || }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 r )setuptools.distr! find_config_files_applyconfiguration_to_dict)r% find_othersignore_option_errorsr! dist filenameshandlerss /builddir/build/BUILDROOT/alt-python312-setuptools-69.0.2-3.el8.x86_64/opt/alt/python312/lib/python3.12/site-packages/setuptools/config/setupcfg.pyread_configurationr2 8 s<