JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr O6uf4rddlmZddlmZmZmZmZdZdZGddZ GddeZ Gd d Z y ) )Action) ConfigParser ParsingErrorErrorDuplicateOptionErrorc<t|}|tuxs|tuS)z@Return true if val is an instance of a known sequence type. )typelisttuple)valval_types -/usr/lib/python3/dist-packages/sos/options.py_is_seqrs"CyH t  0x500c8|j}|dvry|dvryy)N)trueonyesT)falseoffnoF)lower)r _vals r str_to_boolrs( 99;D $$ ' 'rc|eZdZdZdZddZdZdZifdZe ifdZ e dZ d Z d Z dd Zdd Zd Zy) SoSOptionscpd}t||rt||}t||}||r||r|s||jvrRt|sGt ||||r|jj |y|jj |yt|rt ||||zyyy)Nc|dk(xs|duS)N)r s r_unsetz%SoSOptions._merge_opt.._unset"s2I, -r)hasattrgetattr _nondefaultrsetattrdiscardadd)selfoptsrc is_defaultr!newvalueoldvalues r _merge_optzSoSOptions._merge_opt!s . 3 sC(HtS)H x )9D,,,wx7Hc8,$$,,S1$$((-"c8h#67#! rct|ts t|}|jD]}|j |||yN) isinstancedictvars arg_namesr.)r(r*r+args r _merge_optszSoSOptions._merge_opts9s8#t$s)C>> 2C OOCj 1 2rc|}d}|jD] }|||z|zz }|j||jDcgc]}t||}}|s,|D cgc] } t| rdj | n| "}} n%|D cgc]} t | t rd| dn| }} |t|zj||zScc}wcc} wcc} w)aIFormat a SoSOptions object as a human or machine readable string. :param quote: quote option values :param sep: list separator string :param prefix: arbitrary prefix string :param suffix: arbitrary suffix string :param literal: print values as Python literals z=%s,')r4stripr#rjoinr1strr ) r(quotesepprefixsuffixargsarg_fmtr5valsvs r__strzSoSOptions.__str?s>> (C C'MC' 'D ( 3.2nn=sc"==>BC71:CHHQK14CDCDHHa 1c 2as!H9HDHuT{"))#.77>DIsC%C Cc"|jSr0_SoSOptions__strr(s r__str__zSoSOptions.__str__Xszz|rc,|jddddS)NTz, z SoSOptions())r=r>r?r@rGrIs r__repr__zSoSOptions.__repr__[s!zz$}!$& &rc B||_t|j|_t |_|jD]}t |||j||jD]-}|jj|t ||||/y)aInitialise a new ``SoSOptions`` object from keyword arguments. Initialises the new object with values taken from keyword arguments matching the names of ``SoSOptions`` attributes. A ``ValueError`` is raised is any of the supplied keyword arguments does not correspond to a known ``SoSOptions` attribute name. :param *kwargs: a list of ``SoSOptions`` keyword args. :returns: the new ``SoSOptions`` object. N) arg_defaultsr keysr4setr$r%append)r(rOkwargsr5s r__init__zSoSOptions.__init___s)l//125$$ 7C D#t005 6 7;;= ,C NN ! !# & D#vc{ + ,rcZtdit|d|i}|j|d|S)a Initialise a new SoSOptions object from a ``Namespace`` obtained by parsing command line arguments. :param args: parsed command line arguments :returns: an initialised SoSOptions object :returntype: SoSOptions rOTr )rr3r6)clsrArOoptss r from_argszSoSOptions.from_argsws/BDJB\B t$ rcd}d}||vrd|gS||vr&tdt|Dcgc]}d| c}Sd|d|gScc}w)zConvert a named option and optional value to command line argument notation, correctly handling options that take no value or that have special representations (e.g. verify and verbose). ) alloptionszallow-system-changeszall-logsbatchbuilddebug experimentalz list-pluginsz list-presetsz list-profilesz no-reportz no-env-varsquietverify)verbose--r=)rangeint)rVr)r no_valuecountds r _opt_to_argszSoSOptions._opt_to_argssi   (?J<  %<(-aS(:;1bJ; ;SE3% !!._update_from_sectionsD!!'*V\\'23 ,),UYYy-A)BE+& $%/)  ;ACcz7> 1C3$sC ,LS%0  1rc^i}|jD]}t||}|r|dvrd}|||<|S)zReturn this ``SoSOptions`` option values as a dictionary of argument name to value mappings. :returns: a name:value dictionary of option values.  add_preset del_presetdescnoteN)r4r#)r( preset_filterrr5values rr2zSoSOptions.dictsI >> CD#&EFF EE#J   rcfdfd}d}tjjd}|Dcgc]\}}|||s|||c}}Scc}}w)zReturn command arguments for this object. Return a list of the non-default options of this ``SoSOptions`` object in ``sosreport`` command line argument notation: ``["--all-logs", "-vvv"]`` cd}|r||vry|dk(r|ry|jvr%t|tj|k(ryy)z. Test for non-null option values. )FalseNonez[]z""z''0FrvT)rOr<)rxr null_valuesr(s r has_valuez%SoSOptions.to_args..has_valuesUCKE[0z!et(((u:T%6%6t%.filter_opt,s1CCDDA:T5) )rc|jdrdt|dzz}|S|jdd}t|rdj |n|}|dur|d|}n|}t |dkDrd |z}|Sd|z}|S) zD Convert sos option notation to command line arguments. rtr{rDr|r8Tr~rrb) startswithrerrr;len)rxrr5r)s rargifyz"SoSOptions.to_args..argify7s{+CJ,, <<S)D'.u~CHHUO5ED aw' #C1 $*CJ36)CJrc |dS)Nrr )xs rz$SoSOptions.to_args..Ks adr)ro)sortedr2r)r(rr opt_itemsnrDrs` @rto_argszSoSOptions.to_argssV  * (499;,,.NC +4I!Q 1a8Hq! IIIs A  A N)Fr~rr)T)__name__ __module__ __qualname__r.r6rHrJrMrT classmethodrXrirqrrr2rr rrrrsl802 82&%',0*,  ""$:A:F 1 6JrrceZdZdZddZy) SosListOptionz0Allow to specify comma delimited list of pluginsNc|jdDcgc]}|}}t||jr|t||jz }t||j|ycc}w)Nr8)rkr#destr%)r(parser namespacevalues option_stringr)rs r__call__zSosListOption.__call__SsV & S 1222 9dii ( WY 2 2E 499e,3s A&r0)rrr__doc__rr rrrrOs :-rrceZdZdZddZy) ClusterOptionz6Used to store/manipulate options for cluster profiles.NcJ||_||_||_||_||_yr0)rxropt_typecluster description)r(rxrrrrs rrTzClusterOption.__init__]s&     &rr0)rrrrrTr rrrrZs @'rrN) argparser configparserrrrrrrrrrr rrrsC001mJmJ` -F-''r