a DOg@sdZgdZdZddlZddlZddlZddZzddlmZmZWn"e yfdd Zd d ZYn0eZ Gd d d e Z Gddde Z Gddde ZGddde ZGddde ZGdddeZGdddZGdddeZGdddeZddZd d!Zee d"fee d"fee d#fee d$fd%Zd&d'Zd(d)Zd*ZGd+d,d,Zd-Zd.ZGd/d0d0Z Gd1d2d2Z!Gd3d4d4e!Z"Gd5d6d6e!Z#d7d8Z$eZ%dS)9z1.5.3)Option make_option SUPPRESS_HELPSUPPRESS_USAGEValuesOptionContainer OptionGroup OptionParser HelpFormatterIndentedHelpFormatterTitledHelpFormatter OptParseError OptionErrorOptionConflictErrorOptionValueErrorBadOptionError check_choicea" Copyright (c) 2001-2006 Gregory P. Ward. All rights reserved. Copyright (c) 2002-2006 Python Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. NcCsd|jjt||fS)Nz<%s at 0x%x: %s>) __class____name__idselfr /usr/lib64/python3.9/optparse.py_reprOsr)gettextngettextcCs|SNr)messagerrrr\srcCs|dkr |S|SNr)Zsingularpluralnrrrr_src@seZdZddZddZdS)r cCs ||_dSrmsgrr$rrr__init__hszOptParseError.__init__cCs|jSrr#rrrr__str__kszOptParseError.__str__Nr __module__ __qualname__r&r'rrrrr gsr c@seZdZddZddZdS)r cCs||_t||_dSr)r$str option_id)rr$optionrrrr&uszOptionError.__init__cCs |jrd|j|jfS|jSdS)Nz option %s: %s)r,r$rrrrr'yszOptionError.__str__Nr(rrrrr osr c@s eZdZdS)rNrr)r*rrrrrsrc@s eZdZdS)rNr.rrrrrsrc@seZdZddZddZdS)rcCs ||_dSr)opt_strrr/rrrr&szBadOptionError.__init__cCstd|jS)Nzno such option: %s)_r/rrrrr'szBadOptionError.__str__Nr(rrrrrsrc@seZdZddZddZdS)AmbiguousOptionErrorcCst||||_dSr)rr& possibilities)rr/r3rrrr&s zAmbiguousOptionError.__init__cCstd|jd|jfS)Nzambiguous option: %s (%s?), )r1r/joinr3rrrrr'szAmbiguousOptionError.__str__Nr(rrrrr2sr2c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!r Znonec Csd|_||_|durJzttjd}Wnttfy@d}Yn0|d8}||_t|t |d|d|_ |_ d|_ d|_ d|_||_d|_i|_d|_d|_dS) NCOLUMNSPrz%defaultz%s %sz%s=%s)parserindent_incrementintosenvironKeyError ValueErrorwidthminmax help_positionmax_help_positioncurrent_indentlevel help_width short_first default_tagoption_strings_short_opt_fmt _long_opt_fmtrr;rErArIrrrr&s&  zHelpFormatter.__init__cCs ||_dSr)r:rr:rrr set_parserszHelpFormatter.set_parsercCs&|dvrtd|d|d|_dS)N) z/invalid metavar delimiter for short options: %r%s)r@rLrdelimrrrset_short_opt_delimiters z%HelpFormatter.set_short_opt_delimitercCs&|dvrtd|d|d|_dS)N)=rRz.invalid metavar delimiter for long options: %rrS)r@rMrTrrrset_long_opt_delimiters z$HelpFormatter.set_long_opt_delimitercCs"|j|j7_|jd7_dSrrFr;rGrrrrindentszHelpFormatter.indentcCs"|j|j8_|jd8_dSrrYrrrrdedentszHelpFormatter.dedentcCs tddSNzsubclasses must implementNotImplementedErrorrusagerrr format_usageszHelpFormatter.format_usagecCs tddSr\r]rheadingrrrformat_headingszHelpFormatter.format_headingcCs.t|j|jd}d|j}tj||||dS)N rR)initial_indentsubsequent_indent)rCrArFtextwrapfill)rtext text_widthrZrrr _format_texts zHelpFormatter._format_textcCs|r||dSdSdSN rQrlr descriptionrrrformat_descriptionsz HelpFormatter.format_descriptioncCs|rd||dSdSdSrmro)repilogrrr format_epilogszHelpFormatter.format_epilogcCsP|jdus|js|jS|jj|j}|tus6|dur<|j}|j|jt |Sr) r:rJhelpdefaultsgetdest NO_DEFAULTNO_DEFAULT_VALUEreplacer+)rr-Z default_valuerrrexpand_defaults zHelpFormatter.expand_defaultcsg}j|}jjd}t||krBdjd|f}j}ndjd||f}d}|||jr|}t|j }|d|d|df| fdd|ddDn|d d kr|d d |S) Nr8%*s%s rQz %*s%-*s rcsg|]}djd|fqS)r}rQ)rD).0linerrr Esz/HelpFormatter.format_option..r rn) rKrDrFlenappendrur|rhwraprHextendr5)rr-resultoptsZ opt_width indent_first help_text help_linesrrr format_option(s&       zHelpFormatter.format_optioncCs|d}|jD],}||}||j|<t|t||j}q||jD]8}|jD],}||}||j|<t|t||j}qXqN||t |d|j |_ t|j |j d|_ dS)Nrr8re)rZ option_listformat_option_stringsrKrCrrF option_groupsr[rBrErDrArH)rr:Zmax_lenoptstringsgrouprrrstore_option_stringsKs        z"HelpFormatter.store_option_stringscst|rF|jp|jfdd|jD}fdd|jD}n |j}|j}jrb||}n||}d|S)Ncsg|]}j|fqSr)rL)r~Zsoptmetavarrrrrasz7HelpFormatter.format_option_strings..csg|]}j|fqSr)rM)r~Zloptrrrrcsr4) takes_valuerrxupper _short_opts _long_optsrIr5)rr-Z short_optsZ long_optsrrrrr]s   z#HelpFormatter.format_option_stringsN)rr)r*rzr&rPrVrXrZr[rardrlrrrtr|rrrrrrrr s +  #r c@s&eZdZd ddZddZd d ZdS) r r8Nr cCst|||||dSrr r&rNrrrr&ts zIndentedHelpFormatter.__init__cCs td|S)Nz Usage: %s )r1r_rrrra|sz"IndentedHelpFormatter.format_usagecCsd|jd|fS)Nz%*s%s: rQ)rFrbrrrrdsz$IndentedHelpFormatter.format_heading)r8rNr rr)r*r&rardrrrrr ps r c@s&eZdZd ddZddZdd ZdS) r rrNcCst|||||dSrrrNrrrr&s zTitledHelpFormatter.__init__cCsd|td|fS)Nz%s %s ZUsage)rdr1r_rrrrasz TitledHelpFormatter.format_usagecCsd|d|jt|fS)Nz%s %s z=-)rGrrbrrrrdsz"TitledHelpFormatter.format_heading)rrNrrrrrrr s r cCsh|dddkrd}nD|dddkrDd}|ddp@d}n|dddkrZd}nd}|||S) Nr80xZ0b0r  )lower)valtyperadixrrr _parse_numsrcCs t|tSr)rr<)rrrr _parse_intsrZintegerzfloating-pointcomplex)r<longfloatrcCsFt|j\}}z ||WSty@ttd|||fYn0dS)Nzoption %s: invalid %s value: %r) _builtin_cvtrr@rr1)r-rvalueZcvtZwhatrrr check_builtins  rcCs:||jvr|Sdtt|j}ttd|||fdS)Nr4z.option %s: invalid choice: %r (choose from %s))choicesr5mapreprrr1)r-rrrrrrrs r)ZNOZDEFAULTc@seZdZgdZdZdZdZdZdZdZ e e e e e dZ d Z d d Zd d ZddZddZddZddZddZddZddZddZddZeeeeeeegZ d d!ZeZd"d#Zd$d%Zd&d'Zd(d)Zd*d+Z d,d-Z!d S).r) actionrrxdefaultnargsconstrcallback callback_argscallback_kwargsrur) store store_const store_true store_falser append_constcountrruversion)rrrrrrr)rrr)rr)rr)stringr<rrrchoice)r<rrrrNcOsBg|_g|_||}|||||jD] }||q0dSr)rr_check_opt_strings_set_opt_strings _set_attrs CHECK_METHODS)rrattrscheckerrrrr&4s    zOption.__init__cCsdd|D}|std|S)NcSsg|] }|r|qSrr)r~rrrrrKz-Option._check_opt_strings..z+at least one option string must be supplied) TypeError)rrrrrrGszOption._check_opt_stringscCs|D]}t|dkr$td||qt|dkrd|ddkrH|ddksVtd|||j|q|dddkr|ddkstd|||j|qdS) Nr8z>invalid option string %r: must be at least two characters longr-r zMinvalid short option string %r: must be of the form -x, (x any non-dash char)--zGinvalid long option string %r: must start with --, followed by non-dash)rr rrr)rrrrrrrPs2  zOption._set_opt_stringscCsv|jD]F}||vr*t||||||=q|dkr@t||tqt||dq|rrt|}tdd||dS)Nrzinvalid keyword arguments: %sr4)ATTRSsetattrrysortedkeysr r5)rrattrrrrres   zOption._set_attrscCs2|jdurd|_n|j|jvr.td|j|dS)Nrzinvalid action: %r)rACTIONSr rrrr _check_actionxs  zOption._check_actioncCs|jdur0|j|jvr|jdur(d|_qd|_n^t|jtrF|jj|_|jdkrVd|_|j|jvrrtd|j||j|jvrtd|j|dS)Nrrr+zinvalid option type: %rz$must not supply a type for action %r) rrALWAYS_TYPED_ACTIONSr isinstancerTYPESr TYPED_ACTIONSrrrr _check_type~s         zOption._check_typecCsr|jdkrT|jdur td|qnt|jttfsntdtt|jdd|n|jdurntd|j|dS)Nrz/must supply a list of choices for type 'choice'z1choices must be a list of strings ('%s' supplied)'r z#must not supply choices for type %r)rrr rtuplelistr+splitrrrr _check_choices     zOption._check_choicecCs\|j|jvp|jdu}|jdurX|rX|jrH|jddddd|_n|jdd|_dS)Nrr8rr1r )r STORE_ACTIONSrrxrr{r)rrrrr _check_dests zOption._check_destcCs*|j|jvr&|jdur&td|j|dS)Nz*'const' must not be supplied for action %r)r CONST_ACTIONSrr rrrr _check_consts zOption._check_constcCs<|j|jvr|jdur8d|_n|jdur8td|j|dS)Nr z*'nargs' must not be supplied for action %r)rrrr rrrr _check_nargss   zOption._check_nargscCs|jdkrrt|js$td|j||jdurJt|jtsJtd|j||jdurt|jtstd|j|nB|jdurtd|j||jdurtd||jdurtd|dS)Nrzcallback not callable: %rz3callback_args, if supplied, must be a tuple: not %rz4callback_kwargs, if supplied, must be a dict: not %rz.callback supplied (%r) for non-callback optionz.callback_args supplied for non-callback optionz0callback_kwargs supplied for non-callback option) rcallablerr rrrrdictrrrr_check_callbacksL          zOption._check_callbackcCsd|j|jS)N/)r5rrrrrrr'szOption.__str__cCs |jduSr)rrrrrrszOption.takes_valuecCs|jr|jdS|jdSdSNr)rrrrrrget_opt_strings zOption.get_opt_stringcCs*|j|j}|dur|S||||SdSr) TYPE_CHECKERrwr)rrrrrrr check_valueszOption.check_valuecs:|dur6jdkr|Stfdd|DSdS)Nr csg|]}|qSr)r)r~vrrrrrrz(Option.convert_value..)rrr)rrrrrr convert_values  zOption.convert_valuecCs$|||}||j|j||||Sr)r take_actionrrx)rrrvaluesr:rrrprocesss zOption.processc Cs@|dkrt|||n$|dkr2t|||jn |dkrHt||dn|dkr^t||dn|dkrz||g|n|dkr||g|jn|d krt||||d d n|d kr|jpd }|jpi}|j||||g|Ri|nF|dkr||n*|dkr.| |nt d|j d S)NrrrTrFrrrrr rrrurzunknown action %r) rr ensure_valuerrrr print_helpexit print_versionr@r) rrrxrrrr:argskwargsrrrrs4       zOption.take_action)"rr)r*rrrrrrrrrrrr&rrrrrrrrrrr'r__repr__rrrrrrrrrrrsR       rZ SUPPRESSHELPZ SUPPRESSUSAGEc@s^eZdZdddZddZeZddZdd Zd d Z d d Z dddZ dddZ ddZ dS)rNcCs&|r"|D]\}}t|||q dSr)itemsr)rrvrrrrrr&9szValues.__init__cCs t|jSr)r+__dict__rrrrr'>szValues.__str__cCs2t|tr|j|jkSt|tr*|j|kStSdSr)rrrrNotImplemented)rotherrrr__eq__Cs     z Values.__eq__cCs6t|D](}||vr||}|durt|||qdSr)dirr)rrrZdvalrrr_update_carefulKs  zValues._update_carefulcCs|j|dSr)rupdate)rrrrr _update_looseXszValues._update_loosecCs8|dkr||n |dkr(||n td|dS)NcarefulZloosezinvalid update mode: %r)rrr@)rrmoderrr_update`s   zValues._updatercCs&t|tj|}|t||dSr) __import__sysmodulesrvars)rmodnamermodrrr read_modulehs zValues.read_modulecCs&i}tt|||||dSr)execopenreadr)rfilenamerrrrr read_filemszValues.read_filecCs.t||rt||dur$t|||t||Sr)hasattrgetattrr)rrrrrrrrs zValues.ensure_value)N)r)r)rr)r*r&r'rrrrrrrr rrrrrr7s    rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!S)"rcCs&|||_||||dSr)_create_option_list option_classset_conflict_handlerset_description)rrconflict_handlerrqrrrr&s zOptionContainer.__init__cCsi|_i|_i|_dSr _short_opt _long_optrvrrrr_create_option_mappingssz'OptionContainer._create_option_mappingscCs|j|_|j|_|j|_dSrrrOrrr_share_option_mappingssz&OptionContainer._share_option_mappingscCs|dvrtd|||_dS)N)errorresolvez$invalid conflict_resolution value %r)r@r)rhandlerrrrrs z$OptionContainer.set_conflict_handlercCs ||_dSrrqrprrrrszOptionContainer.set_descriptioncCs|jSrrrrrrget_descriptionszOptionContainer.get_descriptioncCs|`|`|`dSrrrrrrdestroyszOptionContainer.destroycCsg}|jD]"}||jvr |||j|fq |jD]"}||jvr4|||j|fq4|r|j}|dkrtdddd|D|nd|dkr|D]V\}}|dr|j ||j|=n|j ||j|=|js|js|j j |qdS)Nrz conflicting option string(s): %sr4cSsg|] }|dqS)rr)r~corrrrrz3OptionContainer._check_conflict..rr) rrrrrrrr5 startswithremove containerr)rr-Z conflict_optsrrZc_optionrrr_check_conflicts2          zOptionContainer._check_conflictcOst|dtr |j|i|}n8t|dkrP|sP|d}t|tsXtd|ntd|||j|||_ |j D]}||j |<qz|j D]}||j |<q|jdur|jtur|j|j|j<n|j|jvrd|j|j<|S)Nrr znot an Option instance: %rinvalid arguments)rr+rrrrr#rrr"rrrrrxrryrv)rrrr-rrrr add_options(           zOptionContainer.add_optioncCs|D]}||qdSr)r%)rrr-rrr add_optionsszOptionContainer.add_optionscCs|j|p|j|Sr)rrwrr0rrr get_options  zOptionContainer.get_optioncCs||jvp||jvSr)rrr0rrr has_option s zOptionContainer.has_optioncCsn|j|}|dur |j|}|dur4td||jD] }|j|=q:|jD] }|j|=qN|jj|dS)Nzno such option %r) rrwrr@rrr"rr!)rr/r-rrrr remove_options       zOptionContainer.remove_optioncCs>|js dSg}|jD]}|jtur|||qd|SNrQ)rrurrrr5)r formatterrr-rrrformat_option_helps  z"OptionContainer.format_option_helpcCs||Sr)rrrrr+rrrrr(sz"OptionContainer.format_descriptioncCs:g}|jr||||jr0|||d|S)Nrn)rqrrrrr,r5rr+rrrr format_help+s zOptionContainer.format_helpN)rr)r*r&rrrrrrr#r%r&r'r(r)r,rrr/rrrrrxs      rc@s6eZdZd ddZddZddZdd Zd d ZdS) rNcCs$||_t||j|j|||_dSr)r:rr&rrtitle)rr:r0rqrrrr&6s  zOptionGroup.__init__cCsg|_||jdSr)rrr:rrrrr<szOptionGroup._create_option_listcCs ||_dSr)r0)rr0rrr set_title@szOptionGroup.set_titlecCst||`dSr)rrrrrrrrCs zOptionGroup.destroycCs0||j}||t||7}||Sr)rdr0rZrr/r[r.rrrr/Js  zOptionGroup.format_help)N)rr)r*r&rr1rr/rrrrr4s  rc @s^eZdZgZddedddddddf ddZddZdd Zd d Zd d Z dOddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'ZdPd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9ZdQd;d<Z d=d>Z!d?d@Z"dRdAdBZ#dCdDZ$dSdEdFZ%dTdGdHZ&dIdJZ'dUdKdLZ(dVdMdNZ)dS)WrNrTc Csrt||||||| |_||_d|_d|_|dur@t}||_|j || |_ |j ||d| dS)NT)add_help) rr& set_usageprograllow_interspersed_argsprocess_default_valuesr r+rPrs_populate_option_list_init_parsing_state) rr`rrrrrqr+Zadd_help_optionr4rsrrrr&s"   zOptionParser.__init__cCs.t||jD] }|q|`|`|`dSr)rrrrr+)rrrrrrs    zOptionParser.destroycCsg|_g|_|dSr)rrrrrrrrsz OptionParser._create_option_listcCs|jdddtdddS)Nz-hz--helpruzshow this help message and exitrrur%r1rrrr_add_help_optionszOptionParser._add_help_optioncCs|jddtdddS)Nz --versionrz&show program's version number and exitr9r:rrrr_add_version_optionsz OptionParser._add_version_optioncCs>|jr||j|r |||jr.||r:|dSr)standard_option_listr&rr<r;)rrr2rrrr7s  z"OptionParser._populate_option_listcCsd|_d|_d|_dSr)rargslargsrrrrrr8sz OptionParser._init_parsing_statecCsL|durtd|_n4|tur$d|_n$|drB|dd|_n||_dS)Nz%prog [options]zusage: )r1r`rrr r_rrrr3s zOptionParser.set_usagecCs d|_dS)NTr5rrrrenable_interspersed_argssz%OptionParser.enable_interspersed_argscCs d|_dS)NFrArrrrdisable_interspersed_argssz&OptionParser.disable_interspersed_argscCs ||_dSr)r6)rrrrrset_process_default_values sz'OptionParser.set_process_default_valuescCs||j|<dSr)rv)rrxrrrr set_defaultszOptionParser.set_defaultcKs|j|dSr)rvr)rrrrr set_defaultsszOptionParser.set_defaultscCs*|jdd}|jD]}||jq|Sr)rrr)roptionsrrrr_get_all_optionss zOptionParser._get_all_optionscCs`|jst|jS|j}|D]4}||j}t|tr"| }| ||||j<q"t|Sr) r6rrvcopyrHrwrxrr+rr)rrvr-rr/rrrget_default_valuess     zOptionParser.get_default_valuescOst|dtr&t|g|Ri|}nJt|dkrh|sh|d}t|tsTtd||j|urptdntd|j||S)Nrr znot an OptionGroup instance: %rz"invalid OptionGroup (wrong parser)r$) rr+rrrr:r@rr)rrrrrrradd_option_group+s     zOptionParser.add_option_groupcCs0|j|p|j|}|r,|j|ur,|jSdSr)rrwrr")rr/r-rrrget_option_group;s   zOptionParser.get_option_groupcCs&|durtjddS|ddSdSr)rargv)rrrrr _get_argsEszOptionParser._get_argsc Cs||}|dur|}||_g|_}||_z||||}Wn6ttfyx}z|t |WYd}~n d}~00||}| ||Sr) rNrJr>r?r _process_argsrrrr+ check_values)rrrr>r?stoperrrrr parse_argsKs   $zOptionParser.parse_argscCs||fSrr)rrrrrrrPrs zOptionParser.check_valuescCs|r|d}|dkr|d=dS|dddkr<|||q|dddkrft|dkrf|||q|jr~|||d=qdSqdS)Nrrr8r r)_process_long_optr_process_short_optsr5r)rr?r>rargrrrrOs  zOptionParser._process_argscCs t||jSr) _match_abbrevr)rrrrr_match_long_optszOptionParser._match_long_optc Cs|d}d|vr4|dd\}}|d|d}n|}d}||}|j|}|r|j}t||kr|t dd|||dq|dkr|d} qt |d|} |d|=n|r|t d |nd} | || ||dS) NrrWr TF.%(option)s option requires %(number)d argument/%(option)s option requires %(number)d argumentsr-numberz%s option does not take a value) poprinsertrXrrrrrrrr1r) rr>rrVrZnext_argZhad_explicit_valuer-rrrrrrTs6       zOptionParser._process_long_optc Cs|d}d}d}|ddD]}d|}|j|}|d7}|sJt||r|t|krv|d||dd}|j} t|| kr|t dd| || dq| dkr|d} qt |d| } |d| =nd} | || |||rqqdS) NrFr rTrYrZr[) r]rrwrrrr^rrrrr) rr>rrVrQiZchrr-rrrrrrUs<      z OptionParser._process_short_optscCs&|jdurtjtjdS|jSdSr)r4r=pathbasenamerrMrrrr get_prog_names zOptionParser.get_prog_namecCs|d|S)Nz%prog)r{rb)rsrrrexpand_prog_nameszOptionParser.expand_prog_namecCs ||jSr)rdrqrrrrrszOptionParser.get_descriptionrcCs|rtj|t|dSr)rstderrwriter)rstatusr$rrrrs zOptionParser.exitcCs(|tj|dd||fdS)Nr8z%s: error: %s ) print_usagerrerrbr%rrrrs zOptionParser.errorcCs"|jr|j||jSdSdSr*)r`r+rardrrrr get_usage#s  zOptionParser.get_usagecCs|jrt||ddSN)file)r`printrirrkrrrrh*s zOptionParser.print_usagecCs|jr||jSdSdSr*)rrdrrrr get_version6s zOptionParser.get_versioncCs|jrt||ddSrj)rrlrnrmrrrr<szOptionParser.print_versioncCs|dur|j}||g}||td||jrZ|t|||d|j D]}|| ||dq`| d |ddS)NZOptionsrnrQr) r+rrrdr1rZrrr,rr/r[r5)rr+rrrrrr,Gs    zOptionParser.format_option_helpcCs ||jSr)rtrsr-rrrrtXszOptionParser.format_epilogcCsn|dur|j}g}|jr*||d|jrD|||d||||||d|Srm) r+r`rrirqrrr,rtr5r.rrrr/[szOptionParser.format_helpcCs |durtj}||dSr)rstdoutrfr/rmrrrrgszOptionParser.print_help)T)NN)rN)N)N)N)N)N)*rr)r*r=rr&rrr;r<r7r8r3rBrCrDrErFrHrJrKrLrNrSrPrOrXrTrUrbrdrrrrirhrnrr,rtr/rrrrrrRs`F "     ' 3 $)     rcsZ|vr Sfdd|D}t|dkr6|dS|sDtn|t|dS)Ncsg|]}|r|qSr)r )r~Zwordrcrrrs z!_match_abbrev..r r)rrrsortr2)rcZwordmapr3rrprrWts  rW)& __version____all__Z __copyright__rr=rhrrr ImportErrorr1 Exceptionr r rrrr2r r r rrrrrrrryrrrrrrrrWrrrrrs^     P      uA=&