%PDF- %PDF-
Direktori : /lib/python3/dist-packages/setuptools/config/__pycache__/ |
Current File : //lib/python3/dist-packages/setuptools/config/__pycache__/expand.cpython-312.pyc |
� _�d@ � �6 � d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl m Z ddlmZ ddl mZ ddlmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ dd lmZ dd lm Z ddl!m"Z# dd l$m%Z% erddl&m'Z' ddl(m)Z) ddl*m+Z+ ejX Z-ee.ej^ f Z0 ed� Z1 edd�� Z2 G d� d� Z3 d@dee. dee0 dee. fd�Z4d@dee.e5ee0 f de.fd�Z6dee0 dee0 fd�Z7dee5e0f de.fd�Z8de0de.fd �Z9 dAd!e.d"eee.e.f dee0 fd#�Z:d$e.d%ee0 defd&�Z;d'ed$e.defd(�Z<d$e.d"eee.e.f de0dee0ee. e.f fd)�Z= dAd*e.d"eee.e.f dee0 defd+�Z> dAd,ee.e.f d"eee.e.f dee0 dee.ef fd-�Z?dddd.�d/eee.e.f dee0 dee. fd0�Z@d1e0d2e0de.fd3�ZAd4eeeee.eBf e.f de.fd5�ZCd6eDdeDfd7�ZE d@d8eeFeDf dee0 deee.ee. f fd9�ZGdBd:e.dee.eDf fd;�ZH G d<� d=� ZI G d>� d?ee1e2f � ZJy)Cai 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 �j � e Zd ZdZdedefd�Zdeee j e j f fd�Zd� Zy) �StaticModulez>Proxy to a module object that avoids executing arbitrary code.�name�specc �� � t j t j |j � j � � }t | � j t � � | ` y �N) �ast�parse�pathlibr �origin� read_bytes�vars�update�locals�self)r- r! r"