JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrў 7Rec@sdZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z mZddlmZGdd d ejZGd d d eZGd d d ejZGdddeZdS(uBase option parser setupiN(u strtobool(u ConfigParseru string_types(udefault_config_file(uget_terminal_sizeuget_prog(u pkg_resourcescBs|EeZdZdZddZddZdddd Zd d Zd d ZddZ ddZ ddZ dS(uPrettyHelpFormatteru4A prettier/less verbose help formatter for optparse.cOsCd|du, (u_format_option_strings(uselfuoption((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuformat_option_stringssu)PrettyHelpFormatter.format_option_stringsu <%s>u, cCsg}|jr&|j|jdn|jrF|j|jdnt|dkrk|jd|n|jr|jp|jj}|j||jndj |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 iiu( u _short_optsuappendu _long_optsulenuinsertu takes_valueumetavarudestulowerujoin(uselfuoptionumvarfmtuoptsepuoptsumetavar((u'/tmp/pip-zej_zi-build/pip/baseparser.pyu_format_option_stringss   u*PrettyHelpFormatter._format_option_stringscCs|dkrdS|dS(NuOptionsuu: ((uselfuheading((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuformat_heading3s u"PrettyHelpFormatter.format_headingcCs#d|jtj|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_linesutextwrapudedent(uselfuusageumsg((u'/tmp/pip-zej_zi-build/pip/baseparser.pyu format_usage8su PrettyHelpFormatter.format_usagecCsy|rqt|jdr!d}nd}|jd}|j}|jtj|d}d||f}|SdSdS(NumainuCommandsu Descriptionu u u%s: %s u(uhasattruparserulstripurstripu indent_linesutextwrapudedent(uselfu descriptionulabel((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuformat_description@s  u&PrettyHelpFormatter.format_descriptioncCs|r |SdSdS(Nu((uselfuepilog((u'/tmp/pip-zej_zi-build/pip/baseparser.pyu format_epilogRsu!PrettyHelpFormatter.format_epilogcs/fdd|jdD}dj|S(Ncsg|]}|qS(((u.0uline(uindent(u'/tmp/pip-zej_zi-build/pip/baseparser.pyu Zs u4PrettyHelpFormatter.indent_lines..u (usplitujoin(uselfutextuindentu new_lines((uindentu'/tmp/pip-zej_zi-build/pip/baseparser.pyu indent_linesYs"u PrettyHelpFormatter.indent_linesN( u__name__u __module__u __qualname__u__doc__u__init__uformat_option_stringsu_format_option_stringsuformat_headingu format_usageuformat_descriptionu format_epilogu indent_lines(u __locals__((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuPrettyHelpFormatters      uPrettyHelpFormattercBs&|EeZdZdZddZdS(uUpdatingDefaultsHelpFormatteruCustom help formatter for use in ConfigOptionParser that updates the defaults before expanding them, allowing them to show up correctly in the help listingcCs;|jdk r(|jj|jjntjj||S(N(uparseruNoneuupdate_defaultsudefaultsuoptparseuIndentedHelpFormatteruexpand_default(uselfuoption((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuexpand_defaultcsu,UpdatingDefaultsHelpFormatter.expand_defaultN(u__name__u __module__u __qualname__u__doc__uexpand_default(u __locals__((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuUpdatingDefaultsHelpFormatter^suUpdatingDefaultsHelpFormattercBs2|EeZdZddZeddZdS(uCustomOptionParsercOs6|j||}|jj|jj|||S(u*Insert an OptionGroup at a given position.(uadd_option_groupu option_groupsupopuinsert(uselfuidxuargsukwargsugroup((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuinsert_option_groupjs u&CustomOptionParser.insert_option_groupcCs;|jdd}x!|jD]}|j|jqW|S(u<Get a list of all options, including those in option groups.N(u option_listu option_groupsuextend(uselfuresui((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuoption_list_allssu"CustomOptionParser.option_list_allN(u__name__u __module__u __qualname__uinsert_option_groupupropertyuoption_list_all(u __locals__((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuCustomOptionParseris uCustomOptionParsercBs|EeZdZdZddZddZddZdd Zd d Zd d Z dddZ ddZ ddZ dS(uConfigOptionParserusCustom option parser which updates its defaults by checking the configuration files and environmental variablescOsxtj|_|jd|_|j|_|jrO|jj|jn|js^tt j j |||dS(Nuname( u ConfigParseruRawConfigParseruconfigupopunameuget_config_filesufilesureaduAssertionErroruoptparseu OptionParseru__init__(uselfuargsukwargs((u'/tmp/pip-zej_zi-build/pip/baseparser.pyu__init__s uConfigOptionParser.__init__cCsNtjjdd}|tjkr(gS|rGtjj|rG|gStgS(NuPIP_CONFIG_FILEF(uosuenvironugetuFalseudevnullupathuexistsudefault_config_file(uselfu config_file((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuget_config_filess u#ConfigOptionParser.get_config_filesc Cs[y|j||SWn@tjk rVtjd}td|tjdYnXdS(Niu*An error occurred during configuration: %si(u check_valueuoptparseuOptionValueErrorusysuexc_infouprintuexit(uselfuoptionukeyuvalue((u'/tmp/pip-zej_zi-build/pip/baseparser.pyu check_defaults u ConfigOptionParser.check_defaultcs#i}x6djfD]%}|jjj|qW|jjjx|jD]\}jdk rh|sqhnjd krt |}njdkr|j }fdd|D}nj |}||j s u6ConfigOptionParser.update_defaults..N(u store_trueu store_falseucount( unameuupdateunormalize_keysuget_config_sectionuget_environ_varsuitemsu get_optionuNoneuactionu strtoboolusplitu check_defaultudest(uselfudefaultsuconfigusectionuval((ukeyuoptionuselfu'/tmp/pip-zej_zi-build/pip/baseparser.pyuupdate_defaultss"#  "u"ConfigOptionParser.update_defaultscCsYi}xL|D]D\}}|jdd}|jdsGd|}n||||j }|j ||||jq>Wtj|S(uOverridding to make updating the defaults after instantiation of the option parser possible, update_defaults() does the dirty work.( uprocess_default_valuesuoptparseuValuesudefaultsuupdate_defaultsucopyu_get_all_optionsugetudestu isinstanceu string_typesuget_opt_stringu check_value(uselfudefaultsuoptionudefaultuopt_str((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuget_default_valuess   u%ConfigOptionParser.get_default_valuescCs(|jtj|jdd|dS(Niu%s (u print_usageusysustderruexit(uselfumsg((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuerrorsuConfigOptionParser.errorN( u__name__u __module__u __qualname__u__doc__u__init__uget_config_filesu check_defaultuupdate_defaultsunormalize_keysuget_config_sectionuget_environ_varsuget_default_valuesuerror(u __locals__((u'/tmp/pip-zej_zi-build/pip/baseparser.pyuConfigOptionParser}s     uConfigOptionParser(u__doc__usysuoptparseuosutextwrapudistutils.utilu strtoboolupip.backwardcompatu ConfigParseru string_typesu pip.locationsudefault_config_fileupip.utiluget_terminal_sizeuget_progu pip._vendoru pkg_resourcesuIndentedHelpFormatteruPrettyHelpFormatteruUpdatingDefaultsHelpFormatteru OptionParseruCustomOptionParseruConfigOptionParser(((u'/tmp/pip-zej_zi-build/pip/baseparser.pyus    O