o
    c                     @   sf  d dl Z d dlZd dlmZmZmZ ed Z			d!de	deee	  de
de
d	ee	 f
d
dZde	dee	 dee	 de	d	ee	 f
ddZde	dee	 d	ee	 fddZde	dee	 dee	 de
dee	 dee	 de
d	ee	 fddZde	dee	 de
d	ee	 fddZde	dee	 dee	 de	dee	 dee	 dee	 dee	 de
de
de
d	ee	 fdd ZdS )"    N)ListOptionalSequenceah  
    exec(compile('''
    # This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
    #
    # - It imports setuptools before invoking setup.py, to enable projects that directly
    #   import from `distutils.core` to work with newer packaging standards.
    # - It provides a clear error message when setuptools is not installed.
    # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
    #   setuptools doesn't think the script is `-c`. This avoids the following warning:
    #     manifest_maker: standard file '-c' not found".
    # - It generates a shim setup.py, for handling setup.cfg-only projects.
    import os, sys, tokenize

    try:
        import setuptools
    except ImportError as error:
        print(
            "ERROR: Can not execute `setup.py` since setuptools is not available in "
            "the build environment.",
            file=sys.stderr,
        )
        sys.exit(1)

    __file__ = %r
    sys.argv[0] = __file__

    if os.path.exists(__file__):
        filename = __file__
        with tokenize.open(__file__) as f:
            setup_py_code = f.read()
    else:
        filename = "<auto-generated setuptools caller>"
        setup_py_code = "from setuptools import setup; setup()"

    exec(compile(setup_py_code, filename, "exec"))
    ''' % ({!r},), "<pip-setuptools-caller>", "exec"))
    Fsetup_py_pathglobal_optionsno_user_configunbuffered_outputreturnc                 C   sF   t jg}|r|dg7 }|dt| g7 }|r||7 }|r!|dg7 }|S )ao  
    Get setuptools command arguments with shim wrapped setup file invocation.

    :param setup_py_path: The path to setup.py to be wrapped.
    :param global_options: Additional global options.
    :param no_user_config: If True, disables personal user configuration.
    :param unbuffered_output: If True, adds the unbuffered switch to the
     argument list.
    z-uz-cz--no-user-cfg)sys
executable_SETUPTOOLS_SHIMformat)r   r   r   r   args r   Q/opt/certbot/lib/python3.10/site-packages/pip/_internal/utils/setuptools_build.pymake_setuptools_shim_args1   s   

r   build_optionsdestination_dirc                 C   s(   t | |dd}|dd|g7 }||7 }|S )NTr   r   bdist_wheelz-dr   )r   r   r   r   r   r   r   r    make_setuptools_bdist_wheel_argsK   s   
r   c                 C   s   t | |dd}|ddg7 }|S )NTr   cleanz--allr   )r   r   r   r   r   r   make_setuptools_clean_args]   s
   r   install_optionsprefixhomeuse_user_sitec                 C   sf   |r|rJ t | ||d}|ddg7 }||7 }|r|d|g7 }|d ur)|d|g7 }|r1|ddg7 }|S )N)r   r   developz	--no-deps--prefixz--install-dir--user	--prefix=r   )r   r   r   r   r   r   r   r   r   r   r   make_setuptools_develop_argsh   s   	r"   egg_info_dirc                 C   s*   t | |d}|dg7 }|r|d|g7 }|S )N)r   egg_infoz
--egg-baser   )r   r#   r   r   r   r   r   make_setuptools_egg_info_args   s
   
r%   record_filenameroot
header_dir	pycompilec                 C   s   |r|rJ |r|rJ t | ||	dd}|dd|g7 }|dg7 }|d ur*|d|g7 }|d ur4|d|g7 }|d ur>|d|g7 }|rF|d	d
g7 }|
rN|dg7 }n|dg7 }|r[|d|g7 }||7 }|S )NT)r   r   r   installz--recordz#--single-version-externally-managedz--rootr   z--homer    r!   z	--compilez--no-compilez--install-headersr   )r   r   r   r&   r'   r   r(   r   r   r   r)   r   r   r   r   make_setuptools_install_args   s2   

r+   )NFF)r
   textwraptypingr   r   r   dedentrstripr   strboolr   r   r   r"   r%   r+   r   r   r   r   <module>   s    &+




 
	
