관리-도구
편집 파일: expand.cpython-311.pyc
� N�Dg@ � �$ � d Z ddlZddlZddlZddlZddlZddlmZ ddlm Z ddl mZ ddlm Z ddlmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ dd lmZ dd lmZ ddl m!Z" dd l#m$Z$ erddl%m&Z& ddl'm(Z( ddl)m*Z* e j+ Z,ee-ej. f Z/ ed� � Z0 edd�� � Z1 G d� d� � Z2 dAdee- dee/ dee- fd�Z3dAdee-e4ee/ f de-fd�Z5dee/ dee/ fd�Z6dee4e/f de-fd�Z7de/de-fd �Z8 dBd!e-d"eee-e-f dee/ fd#�Z9d$e-d%ee/ defd&�Z:d'ed$e-defd(�Z;d$e-d"eee-e-f de/dee/ee- e-f fd)�Z< dBd*e-d"eee-e-f dee/ defd+�Z= dBd,ee-e-f d"eee-e-f dee/ dee-ef fd-�Z>dddd.�d/eee-e-f dee/ dee- fd0�Z?d1e/d2e/de-fd3�Z@d4eeeee-eAf e-f de-fd5�ZBd6eCdeCfd7�ZD dAd8eeEeCf dee/ deee-ee- f fd9�ZFdCd;e-dee-eCf fd<�ZG G d=� d>� � ZH G d?� d@ee0e1f � � ZIdS )Dai Utility functions to expand configuration directives or special values (such glob patterns). We can split the process of interpreting configuration files into 2 steps: 1. The parsing the file contents from strings to value objects that can be understand by Python (for example a string with a comma separated list of keywords into an actual Python list of strings). 2. The expansion (or post-processing) of these values according to the semantics ``setuptools`` assign to them (for example a configuration field with the ``file:`` directive should be expanded from a list of file paths to a single string with the contents of those files concatenated) This module focus on the second step, and therefore allow sharing the expansion functions among several configuration file formats. **PRIVATE MODULE**: API reserved for setuptools internal usage only. � N)�iglob)�ConfigParser)� ModuleSpec)�chain)� TYPE_CHECKING�Callable�Dict�Iterable�Iterator�List�Mapping�Optional�Tuple�TypeVar�Union�cast)�Path)� ModuleType)�DistutilsOptionError� )� same_path)�SetuptoolsWarning)�Distribution)�ConfigDiscovery)�DistributionMetadata�_K�_VT)� covariantc �d � e Zd ZdZdedefd�Zdeee j e j f fd�Zd� ZdS ) �StaticModulez>Proxy to a module object that avoids executing arbitrary code.�name�specc �� � t j t j |j � � � � � � � }t | � � � t � � � � | ` d S �N) �ast�parse�pathlibr �origin� read_bytes�vars�update�locals�self)r- r! r"