<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

7Reβ  c               @   sτ   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z d d l m Z m	 Z	 d d l
 m Z d d l m Z m Z d d l m Z Gd d	   d	 e j  Z Gd
 d   d e  Z Gd d   d e j  Z Gd d   d e  Z d S(   u   Base option parser setupi    N(   u	   strtobool(   u   ConfigParseru   string_types(   u   default_config_file(   u   get_terminal_sizeu   get_prog(   u   pkg_resourcesc             B   s   |  Ee  Z d  Z d Z d d   Z d d   Z d d d d	  Z d
 d   Z d d   Z d d   Z	 d d   Z
 d d   Z d S(   u   PrettyHelpFormatteru4   A prettier/less verbose help formatter for optparse.c             O   sC   d | d <d | d <t    d d | d <t j j |  | |  d  S(   Ni   u   max_help_positioni   u   indent_incrementi    i   u   width(   u   get_terminal_sizeu   optparseu   IndentedHelpFormatteru   __init__(   u   selfu   argsu   kwargs(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   __init__   s    

u   PrettyHelpFormatter.__init__c             C   s   |  j  | d d  S(   Nu    <%s>u   , (   u   _format_option_strings(   u   selfu   option(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   format_option_strings   s    u)   PrettyHelpFormatter.format_option_stringsu    <%s>u   , c             C   sΆ   g  } | j  r& | j | j  d  n  | j rF | j | j d  n  t |  d k rk | j d |  n  | j   r© | j p | j j   } | j | | j    n  d j	 |  S(   u  
        Return a comma-separated list of option strings and metavars.

        :param option:  tuple of (short opt, long opt), e.g: ('-f', '--format')
        :param mvarfmt: metavar format string - evaluated as mvarfmt % metavar
        :param optsep:  separator
        i    i   u    (
   u   _short_optsu   appendu
   _long_optsu   lenu   insertu   takes_valueu   metavaru   destu   loweru   join(   u   selfu   optionu   mvarfmtu   optsepu   optsu   metavar(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   _format_option_strings   s    		u*   PrettyHelpFormatter._format_option_stringsc             C   s   | d k r d S| d S(   Nu   Optionsu    u   :
(    (   u   selfu   heading(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   format_heading3   s    u"   PrettyHelpFormatter.format_headingc             C   s#   d |  j  t j |  d  } | S(   uz   
        Ensure there is only one newline between usage and the first heading
        if there is no description.
        u   
Usage: %s
u     (   u   indent_linesu   textwrapu   dedent(   u   selfu   usageu   msg(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   format_usage8   s    u    PrettyHelpFormatter.format_usagec             C   sy   | rq t  |  j d  r! d } n d } | j d  } | j   } |  j t j |  d  } d | | f } | Sd Sd  S(   Nu   mainu   Commandsu   Descriptionu   
u     u   %s:
%s
u    (   u   hasattru   parseru   lstripu   rstripu   indent_linesu   textwrapu   dedent(   u   selfu   descriptionu   label(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   format_description@   s    	u&   PrettyHelpFormatter.format_descriptionc             C   s   | r
 | Sd Sd  S(   Nu    (    (   u   selfu   epilog(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   format_epilogR   s    u!   PrettyHelpFormatter.format_epilogc                s/     f d d   | j  d  D } d j |  S(   Nc                s   g  |  ] }   |  q S(    (    (   u   .0u   line(   u   indent(    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu
   <listcomp>Z   s   	 u4   PrettyHelpFormatter.indent_lines.<locals>.<listcomp>u   
(   u   splitu   join(   u   selfu   textu   indentu	   new_lines(    (   u   indentu'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   indent_linesY   s    "u    PrettyHelpFormatter.indent_linesN(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u   format_option_stringsu   _format_option_stringsu   format_headingu   format_usageu   format_descriptionu   format_epilogu   indent_lines(   u
   __locals__(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   PrettyHelpFormatter   s   u   PrettyHelpFormatterc             B   s&   |  Ee  Z d  Z d Z d d   Z d S(   u   UpdatingDefaultsHelpFormatteru£   Custom help formatter for use in ConfigOptionParser that updates
    the defaults before expanding them, allowing them to show up correctly
    in the help listingc             C   s;   |  j  d  k	 r( |  j  j |  j  j  n  t j j |  |  S(   N(   u   parseru   Noneu   update_defaultsu   defaultsu   optparseu   IndentedHelpFormatteru   expand_default(   u   selfu   option(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   expand_defaultc   s    u,   UpdatingDefaultsHelpFormatter.expand_defaultN(   u   __name__u
   __module__u   __qualname__u   __doc__u   expand_default(   u
   __locals__(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   UpdatingDefaultsHelpFormatter^   s   u   UpdatingDefaultsHelpFormatterc             B   s2   |  Ee  Z d  Z d d   Z e d d    Z d S(   u   CustomOptionParserc             O   s6   |  j  | |   } |  j j   |  j j | |  | S(   u*   Insert an OptionGroup at a given position.(   u   add_option_groupu   option_groupsu   popu   insert(   u   selfu   idxu   argsu   kwargsu   group(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   insert_option_groupj   s    u&   CustomOptionParser.insert_option_groupc             C   s;   |  j  d d  } x! |  j D] } | j | j   q W| S(   u<   Get a list of all options, including those in option groups.N(   u   option_listu   option_groupsu   extend(   u   selfu   resu   i(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   option_list_alls   s    u"   CustomOptionParser.option_list_allN(   u   __name__u
   __module__u   __qualname__u   insert_option_groupu   propertyu   option_list_all(   u
   __locals__(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   CustomOptionParseri   s   	u   CustomOptionParserc             B   s   |  Ee  Z d  Z d Z d d   Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z	 d d d  Z
 d d   Z d d   Z d S(   u   ConfigOptionParserus   Custom option parser which updates its defaults by checking the
    configuration files and environmental variablesc             O   sx   t  j   |  _ | j d  |  _ |  j   |  _ |  j rO |  j j |  j  n  |  j s^ t  t	 j
 j |  | |  d  S(   Nu   name(   u   ConfigParseru   RawConfigParseru   configu   popu   nameu   get_config_filesu   filesu   readu   AssertionErroru   optparseu   OptionParseru   __init__(   u   selfu   argsu   kwargs(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   __init__   s    	u   ConfigOptionParser.__init__c             C   sN   t  j j d d  } | t  j k r( g  S| rG t  j j |  rG | g St g S(   Nu   PIP_CONFIG_FILEF(   u   osu   environu   getu   Falseu   devnullu   pathu   existsu   default_config_file(   u   selfu   config_file(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   get_config_files   s    u#   ConfigOptionParser.get_config_filesc             C   s[   y | j  | |  SWn@ t j k
 rV t j   d } t d |  t j d  Yn Xd  S(   Ni   u*   An error occurred during configuration: %si   (   u   check_valueu   optparseu   OptionValueErroru   sysu   exc_infou   printu   exit(   u   selfu   optionu   keyu   valu   e(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   check_default   s    u    ConfigOptionParser.check_defaultc                s#  i  } x6 d  j  f D]% } | j  j  j |    q W| j  j  j     xΑ | j   D]³ \   }  j      d k	 rh | s qh n   j d	 k rΉ t	 |  } n   j d k rφ | j
   }     f d d   | D } n  j    |  } | |  j <qh qh W| S(
   u’   Updates the given defaults with values from the config files and
        the environ. Does a little special handling for certain types of
        options (lists).u   globalu
   store_trueu   store_falseu   countu   appendc                s%   g  |  ] }  j     |   q S(    (   u   check_default(   u   .0u   v(   u   keyu   optionu   self(    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu
   <listcomp>°   s   	 u6   ConfigOptionParser.update_defaults.<locals>.<listcomp>N(   u
   store_trueu   store_falseu   count(   u   nameu   updateu   normalize_keysu   get_config_sectionu   get_environ_varsu   itemsu
   get_optionu   Noneu   actionu	   strtoboolu   splitu   check_defaultu   dest(   u   selfu   defaultsu   configu   sectionu   val(    (   u   keyu   optionu   selfu'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   update_defaults   s"    #"u"   ConfigOptionParser.update_defaultsc             C   sY   i  } xL | D]D \ } } | j  d d  } | j d  sG d | } n  | | | <q W| S(   u   Return a config dictionary with normalized keys regardless of
        whether the keys were specified in environment variables or in config
        filesu   _u   -u   --u   --%s(   u   replaceu
   startswith(   u   selfu   itemsu
   normalizedu   keyu   val(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   normalize_keys·   s    u!   ConfigOptionParser.normalize_keysc             C   s&   |  j  j |  r" |  j  j |  Sg  S(   u    Get a section of a configuration(   u   configu   has_sectionu   items(   u   selfu   name(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   get_config_sectionΓ   s    u%   ConfigOptionParser.get_config_sectionu   PIP_c             c   sS   xL t  j j   D]; \ } } | j |  r | j | d  j   | f Vq q Wd S(   u@   Returns a generator with all environmental vars with prefix PIP_u    N(   u   osu   environu   itemsu
   startswithu   replaceu   lower(   u   selfu   prefixu   keyu   val(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   get_environ_varsΙ   s    u#   ConfigOptionParser.get_environ_varsc             C   s   |  j  s t j |  j  S|  j |  j j    } x] |  j   D]O } | j | j  } t	 | t
  r> | j   } | j | |  | | j <q> q> Wt j |  S(   u   Overridding to make updating the defaults after instantiation of
        the option parser possible, update_defaults() does the dirty work.(   u   process_default_valuesu   optparseu   Valuesu   defaultsu   update_defaultsu   copyu   _get_all_optionsu   getu   destu
   isinstanceu   string_typesu   get_opt_stringu   check_value(   u   selfu   defaultsu   optionu   defaultu   opt_str(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   get_default_valuesΟ   s    	 u%   ConfigOptionParser.get_default_valuesc             C   s(   |  j  t j  |  j d d |  d  S(   Ni   u   %s
(   u   print_usageu   sysu   stderru   exit(   u   selfu   msg(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   errorή   s    u   ConfigOptionParser.errorN(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u   get_config_filesu   check_defaultu   update_defaultsu   normalize_keysu   get_config_sectionu   get_environ_varsu   get_default_valuesu   error(   u
   __locals__(    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   ConfigOptionParser}   s   	u   ConfigOptionParser(   u   __doc__u   sysu   optparseu   osu   textwrapu   distutils.utilu	   strtoboolu   pip.backwardcompatu   ConfigParseru   string_typesu   pip.locationsu   default_config_fileu   pip.utilu   get_terminal_sizeu   get_progu   pip._vendoru   pkg_resourcesu   IndentedHelpFormatteru   PrettyHelpFormatteru   UpdatingDefaultsHelpFormatteru   OptionParseru   CustomOptionParseru   ConfigOptionParser(    (    (    u'   /tmp/pip-zej_zi-build/pip/baseparser.pyu   <module>   s   O