%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python2.7/distutils/
Upload File :
Create Path :
Current File : //usr/local/lib/python2.7/distutils/fancy_getopt.pyc


Pac@sdZdZddlZddlZddlZddlZddlmZmZdZ	ej
de	Zej
de	e	fZej
dd	Zd
fdYZdZej
ejd
eejZdZdZdfdYZdS(s6distutils.fancy_getopt

Wrapper around the standard getopt module that provides the following
additional features:
  * short and long options are tied together
  * options have help strings, so fancy_getopt could potentially
    create a complete usage summary
  * options set attributes of a passed-in object
s$Id$iN(tDistutilsGetoptErrortDistutilsArgErrors[a-zA-Z](?:[a-zA-Z0-9-]*)s^%s$s^(%s)=!(%s)$t-t_tFancyGetoptcBseZdZddZdZdZdddZdZdZ	dZ
dZd	Zd
Z
dddZdZdd
ZdddZRS(sWrapper around the standard 'getopt()' module that provides some
    handy extra functionality:
      * short and long options are tied together
      * options have help strings, and help text can be assembled
        from them
      * options set attributes of a passed-in object
      * boolean options can have "negative aliases" -- eg. if
        --quiet is the "negative alias" of --verbose, then "--quiet"
        on the command line sets 'verbose' to false
    cCst||_i|_|jr(|jni|_i|_g|_g|_i|_i|_i|_	g|_
dS(N(toption_tabletoption_indext_build_indextaliastnegative_aliast
short_optst	long_optst
short2longt	attr_namet	takes_argtoption_order(tselfR((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt__init__-s
			
							cCs6|jjx"|jD]}||j|d<qWdS(Ni(RtclearR(Rtoption((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyRYs
cCs||_|jdS(N(RR(RR((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pytset_option_table^s	cCsO||jkrtd|n,|||f}|jj|||j|<dS(Ns'option conflict: already an option '%s'(RRRtappend(Rtlong_optiontshort_optionthelp_stringR((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt
add_optionbs
cCs
||jkS(scReturn true if the option table for this parser has an
        option with long name 'long_option'.(R(RR((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt
has_optionlscCstj|tS(sTranslate long option name 'long_option' to the form it
        has as an attribute of some object: ie., translate hyphens
        to underscores.(tstringt	translatet
longopt_xlate(RR((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt
get_attr_nameqscCst|tstxj|jD]\\}}||jkrVtd|||fn||jkr"td|||fq"q"WdS(Ns(invalid %s '%s': option '%s' not defineds0invalid %s '%s': aliased option '%s' not defined(t
isinstancetdicttAssertionErrortitemsRR(RtaliasestwhatRtopt((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt_check_alias_dictxscCs|j|d||_dS(s'Set the aliases for this option parser.RN(R&R(RR((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pytset_aliasesscCs|j|d||_dS(sSet the negative aliases for this option parser.
        'negative_alias' should be a dictionary mapping option names to
        option names, both the key and value must already be defined
        in the option table.snegative aliasN(R&R	(RR	((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pytset_negative_aliasesscCsg|_g|_|jji|_x]|jD]R}t|dkrb|\}}}d}n7t|dkr|\}}}}ntd|ft|t	st|dkrt
d|n|dkpt|t	ot|dkst
d|n||j|<|jj||d	d
kre|rH|d}n|dd	!}d|j
|<nk|jj|}|dk	r|j
|rt
d||fn||jd	<d|j
|<n
d|j
|<|jj|}|dk	r!|j
||j
|kr!t
d
||fq!ntj|sDt
dd|n|j||j|<|r2|jj|||j|d<q2q2WdS(sPopulate the various data structures that keep tabs on the
        option table.  Called by 'getopt()' before it can do anything
        worthwhile.
        iiisinvalid option tuple: %ris9invalid long option '%s': must be a string of length >= 2is:invalid short option '%s': must a single character or Noneit=t:s>invalid negative alias '%s': aliased option '%s' takes a valuesginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tsinvalid long option name '%s' s'(must be letters, numbers, hyphens onlyN(RR
RRtrepeatRtlent
ValueErrorRtstrRtNoneRRR	tgetRt
longopt_retmatchRR
(RRtlongtshortthelpR+talias_to((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt_grok_option_tablesd		
		"
!






cCs|dkrtjd}n|dkr:t}d}nd}|jtj|j}y"tj|||j	\}}Wntj
k
r}t|nXx\|D]T\}}t|dkr|ddkr|j
|d}n2t|dkr|d dkst|d}|jj|}	|	r<|	}n|j|s|dksatd|jj|}	|	r|	}d}qd}n|j|}
|r|jj|
dk	rt||
dd}nt||
||jj||fqW|r||fS|SdS(	sParse command-line options in args. Store as attributes on object.

        If 'args' is None or not supplied, uses 'sys.argv[1:]'.  If
        'object' is None or not supplied, creates a new OptionDummy
        object, stores option values there, and returns a tuple (args,
        object).  If 'object' is supplied, it is modified in place and
        'getopt()' just returns 'args'; in both cases, the returned
        'args' is a modified copy of the passed-in 'args' list, which
        is left untouched.
        iiiRs--tsboolean option can't have valueN(R/tsystargvtOptionDummyR7RtjoinR
tgetoptRterrorRR,RR!RR0RR	R
R+tgetattrtsetattrRR(Rtargstobjecttcreated_objectR
toptstmsgR%tvalRtattr((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyR=sF		
"
"(
	
		

cCs&|jdkrtdn|jSdS(sReturns the list of (option, value) tuples processed by the
        previous run of 'getopt()'.  Raises RuntimeError if
        'getopt()' hasn't been called yet.
        s!'getopt()' hasn't been called yetN(RR/tRuntimeError(R((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pytget_option_order*scCsd}x||jD]q}|d}|d}t|}|ddkrS|d}n|dk	rl|d}n||kr|}qqW|ddd}d}||}	d|}
|r|g}n	d	g}x|jD]}|d
 \}}}t||	}
|ddkr|dd!}n|dkrk|
rQ|jd|||
dfq|jd||fnHd
||f}|
r|jd|||
dfn|jd|x#|
dD]}|j|
|qWqW|S(sGenerate help text (a list of strings, one per suggested line of
        output) from the option table for this FancyGetopt object.
        iiiR)iiiNt sOption summary:is  --%-*s  %ss
  --%-*s  s%s (-%s)s  --%-*sN(RR,R/t	wrap_textR(Rtheadertmax_optRR3R4tlt	opt_widtht
line_widtht
text_widtht
big_indenttlinesR5ttextt	opt_names((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt
generate_help5sF






	!	cCsG|dkrtj}nx(|j|D]}|j|dq(WdS(Ns
(R/R9tstdoutRVtwrite(RRLtfiletline((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt
print_helpsN(t__name__t
__module__t__doc__R/RRRRRRR&R'R(R7R=RIRVR[(((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyR!s
,		
							X@	TcCs)t|}|j||j||S(N(RR(R=(toptionstnegative_optRBRAtparser((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pytfancy_getopts
RJcCs~|dkrgSt||kr)|gStj|}tj|t}tjd|}td|}g}x|ryg}d}xt|rt|d}|||kr|j	|d|d=||}q|r|dddkr|d=nPqW|r]|dkr<|j	|dd|!|d||d<n|dddkr]|d=q]n|j	tj
|dqtW|S(swrap_text(text : string, width : int) -> [string]

    Split 'text' into multiple lines of no more than 'width' characters
    each, and return the list of strings that results.
    s( +|-+)iiRJR8N(R/R,Rt
expandtabsRtWS_TRANStretsplittfilterRR<(RTtwidthtchunksRStcur_linetcur_lenRN((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyRKs:		


cCstj|tS(sXConvert a long option name to a valid Python identifier by
    changing "-" to "_".
    (RRR(R%((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyttranslate_longoptsR;cBseZdZgdZRS(s_Dummy class just used as a place to hold command-line option
    values as instance attributes.cCs%x|D]}t||dqWdS(skCreate a new OptionDummy instance.  The attributes listed in
        'options' will be initialized to None.N(R@R/(RR_R%((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyRs
(R\R]R^R(((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyR;s(R^t__revision__R9RReR=tdistutils.errorsRRtlongopt_pattcompileR1tneg_alias_ret	maketransRRRbt
whitespaceR,RdRKRlR;(((s2/usr/local/lib/python2.7/distutils/fancy_getopt.pyt<module>	s"r	"	;	

Zerion Mini Shell 1.0