a
    0f                     @   s  d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZ ddlmZmZmZmZmZ erzd dlmZmZ neZg dZedd	d
ZG dd deZejddedddZedddZeee  edddZeedddZeeedddZe eeedddZ!dS )    N)TYPE_CHECKINGListOptionalTypecast)	strtobool   )BaseDistributionBaseEnvironmentFilesystemWheelMemoryWheelWheel)LiteralProtocol)	r	   r
   r   r   r   get_default_environmentget_environmentget_wheel_distributionselect_backend)returnc                  C   sf   t tt" tttjd W  d   S 1 s40    Y  tj	dk rLdS ddl
} tt| jddS )a  Whether to use the ``importlib.metadata`` or ``pkg_resources`` backend.

    By default, pip uses ``importlib.metadata`` on Python 3.11+, and
    ``pkg_resourcess`` otherwise. This can be overridden by a couple of ways:

    * If environment variable ``_PIP_USE_IMPORTLIB_METADATA`` is set, it
      dictates whether ``importlib.metadata`` is used, regardless of Python
      version.
    * On Python 3.11+, Python distributors can patch ``importlib.metadata``
      to add a global constant ``_PIP_USE_IMPORTLIB_METADATA = False``. This
      makes pip use ``pkg_resources`` (unless the user set the aforementioned
      environment variable to *True*).
    _PIP_USE_IMPORTLIB_METADATAN)      Fr   T)
contextlibsuppressKeyError
ValueErrorboolr   osenvironsysversion_infoimportlib.metadatagetattrmetadata	importlib r&   X/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py_should_use_importlib_metadata   s    0
r(   c                   @   s.   e Zd ZU ded< ee ed< ee ed< dS )Backendz%Literal["importlib", "pkg_resources"]NAMEDistributionEnvironmentN)__name__
__module____qualname____annotations__r   r	   r
   r&   r&   r&   r'   r)   4   s   
r)   )maxsizec                  C   s2   t  rddlm}  tt| S ddlm} tt|S )Nr   r$   )pkg_resources)r(    r%   r   r)   r2   )r%   r2   r&   r&   r'   r   :   s
    
r   c                   C   s   t  j S )a	  Get the default representation for the current environment.

    This returns an Environment instance from the chosen backend. The default
    Environment instance should be built from ``sys.path`` and may use caching
    to share instance state accorss calls.
    )r   r,   defaultr&   r&   r&   r'   r   E   s    r   )pathsr   c                 C   s   t  j| S )a'  Get a representation of the environment specified by ``paths``.

    This returns an Environment instance from the chosen backend based on the
    given import paths. The backend must build a fresh instance representing
    the state of installed distributions when this function is called.
    )r   r,   
from_paths)r5   r&   r&   r'   r   O   s    r   )	directoryr   c                 C   s   t  j| S )zGet the distribution metadata representation in the specified directory.

    This returns a Distribution instance from the chosen backend based on
    the given on-disk ``.dist-info`` directory.
    )r   r+   from_directory)r7   r&   r&   r'   get_directory_distributionY   s    r9   )wheelcanonical_namer   c                 C   s   t  j| |S )a  Get the representation of the specified wheel's distribution metadata.

    This returns a Distribution instance from the chosen backend based on
    the given wheel's ``.dist-info`` directory.

    :param canonical_name: Normalized project name of the given wheel.
    )r   r+   
from_wheel)r:   r;   r&   r&   r'   r   b   s    r   )metadata_contentsfilenamer;   r   c                 C   s   t  j| ||S )a  Get the dist representation of the specified METADATA file contents.

    This returns a Distribution instance from the chosen backend sourced from the data
    in `metadata_contents`.

    :param metadata_contents: Contents of a METADATA file within a dist, or one served
                              via PEP 658.
    :param filename: Filename for the dist this metadata represents.
    :param canonical_name: Normalized project name of the given dist.
    )r   r+   from_metadata_file_contents)r=   r>   r;   r&   r&   r'   get_metadata_distributionm   s
    r@   )"r   	functoolsr   r   typingr   r   r   r   r   pip._internal.utils.miscr   baser	   r
   r   r   r   r   r   object__all__r   r(   r)   	lru_cacher   r   strr   r9   r   bytesr@   r&   r&   r&   r'   <module>   s.   



	