>–Sc @sdZddlZddlZddlmZmZmZmZmZejdkrge Z dZ n e Z e Z ddl Z ejdZdd d d d d dddg Zd ejfdYZdejfdYZdejfdYZeZdS(s,GOption command line parser Extends optparse to use the GOptionGroup, GOptionEntry and GOptionContext objects. So it is possible to use the gtk, gnome_program and gstreamer command line groups and contexts. Use this interface instead of the raw wrappers of GOptionContext and GOptionGroup in glib. iN(t OptParseErrort OptionErrortOptionValueErrortBadOptionErrortOptionConflictErroriicCs |jS(N(tencode(ts((s1/usr/lib64/python2.7/site-packages/glib/option.pyt'ss glib._glibRRRRRtOptiont OptionGroupt OptionParsert make_optioncBs_eZdZejjd ZejjdddgZdejZ dZ dZ dZ RS( sRepresents a command line option To use the extended possibilities of the GOption API Option (and make_option) are extended with new types and attributes. Types: filename The supplied arguments are read as filename, GOption parses this type in with the GLib filename encoding. Attributes: optional_arg This does not need a arguement, but it can be supplied. hidden The help list does not show this option in_main This option apears in the main group, this should only be used for backwards compatibility. Use Option.REMAINING as option name to get all positional arguments. NOTE: Every argument to an option is passed as utf-8 coded string, the only exception are options which use the 'filename' type, its arguments are passed as strings in the GLib filename encoding. For further help, see optparse.Option. tfilenamethiddentin_maint optional_args--cOstjj||||js.tdnt|jt|jkr[tdn|js}td|jdndS(Ns!%s at least one long option name.s;%s at least more long option names than short option names.s%s needs a help message.i(toptparseRt__init__t _long_optst ValueErrortlent _short_optsthelp(tselftargstkwargs((s1/usr/lib64/python2.7/site-packages/glib/option.pyR_s   cCsi|j|kr%|jj|jntjj||t|jt|jkretdndS(NsCgoption.Option needs more long option names than short option names( t REMAININGRtappendRRt_set_opt_stringRRR(Rtopts((s1/usr/lib64/python2.7/site-packages/glib/option.pyRls ccs#d}|jr|tjO}n|jr8|tjO}n|jr`|jrm|tjO}qmn |tjO}|j dkr|tj O}nxKt |j |j D]4\}}|dt|d||j|jfVqWxB|j t|j D]*}|dtd||j|jfVqWdS(NiR iit(R t_glibtOPTION_FLAG_HIDDENRtOPTION_FLAG_IN_MAINt takes_valueRtOPTION_FLAG_OPTIONAL_ARGtOPTION_FLAG_NO_ARGttypetOPTION_FLAG_FILENAMEtzipRRt_bytesRtmetavarR(Rtflagst long_namet short_name((s1/usr/lib64/python2.7/site-packages/glib/option.pyt_to_goptionentriests     ",(sfilename( t__name__t __module__t__doc__RRtTYPEStATTRSRtOPTION_REMAININGRRRR-(((s1/usr/lib64/python2.7/site-packages/glib/option.pyR;s     cBsJeZdZdddddZdZdZddZdZRS(sA group of command line options. Arguements: name: The groups name, used to create the --help-{name} option description: Shown as title of the groups help view help_description: Shown as help to the --help-{name} option option_list: The options used in this group, must be option.Option() defaults: A dicitionary of default values translation_domain: Sets the translation domain for gettext(). NOTE: This OptionGroup does not exactly map the optparse.OptionGroup interface. There is no parser object to supply, but it is possible to set default values and option_lists. Also the default values and values are not shared with the OptionParser. To pass a OptionGroup into a function which expects a GOptionGroup (e.g. gnome_program_init() ). OptionGroup.get_option_group() can be used. For further help, see optparse.OptionGroup. tcCstjj|td|||_d|_||_|rF||_nd|_ ||_ |rx|D]}|j |qeWndS(Nterror( RtOptionContainerRRtnametNonetparserthelp_descriptiontdefaultstvaluesttranslation_domaint add_option(RR7t descriptionR:t option_listR;R=toption((s1/usr/lib64/python2.7/site-packages/glib/option.pyRs       cCsg|_|jdS(N(R@t_create_option_mappings(R((s1/usr/lib64/python2.7/site-packages/glib/option.pyt_create_option_lists csfd}tjjjj|}jrO|jjng}x$jD]}|j|j q_W|j ||S(Ncs|jdrj|}n j|}y|j||jWnctk rtjd}tj t |}tj |_ tj |_t ||_|nXdS(Ns--i(t startswitht _long_optt _short_opttprocessR<Rtsystexc_infoRtGErrortstrt OPTION_ERRORtdomaintOPTION_ERROR_BAD_VALUEtcodetmessage(t option_namet option_valuetgrouptoptR5tgerror(R9R(s1/usr/lib64/python2.7/site-packages/glib/option.pytcallbacks    ( RR R7R?R:R=tset_translation_domainR@textendR-t add_entries(RR9RVRStentriesRA((R9Rs1/usr/lib64/python2.7/site-packages/glib/option.pyt_to_goptiongroups  cCs|j|j|S(s Returns the corresponding GOptionGroup object. Can be used as parameter for gnome_program_init(), gtk_init(). (tset_values_to_defaultsR[(RR9((s1/usr/lib64/python2.7/site-packages/glib/option.pytget_option_groups cCs|x`|jD]U}|jj|j}t|tr |j}|j|||j|js  cCs5|j|}|jtjdg|d|(dS(Nii(R|tparseRHtargv(RtlargstrargsR<Rw((s1/usr/lib64/python2.7/site-packages/glib/option.pyt _process_argsEsc CsA|p g}y"tjj|||\}}Wntjk rtjd}|jtjkrin|j tj krt |j q|j tj krt|j q|j tjkrt|j qnXxD|jD]9}x0|jjjD]\}}|j||qWqW|dt| !}||fS(Nii(RR t parse_argsRRJRHRIRMRLRORNRRPtOPTION_ERROR_UNKNOWN_OPTIONRtOPTION_ERROR_FAILEDRRsR<t__dict__titemst ensure_valueR( RRR<told_argsR~R5RStkeytvalue((s1/usr/lib64/python2.7/site-packages/glib/option.pyRMs(  N( R.R/R0RRoR|R}RRR8R(((s1/usr/lib64/python2.7/site-packages/glib/option.pyR s    (ii(R0RHRRRRRRt version_infoRKRaR(t basestringtglibtmodulesRt__all__RR R R (((s1/usr/lib64/python2.7/site-packages/glib/option.pyts.  (    Q[