asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T 3 <_3 @sdZddlZddlZddlmZmZmZmZmZddlm Z ej dkrTe Z ddZ neZ e Z dd lmZdd lmZe d ZejejZd d dddddddg ZGdddejZGdddejZGdddejZeZdS)a,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. N) OptParseError OptionErrorOptionValueErrorBadOptionErrorOptionConflictError)get_introspection_modulecCs|jS)N)encode)sr /usr/lib64/python3.6/_option.py&sr)_gi)GErrorGLibrrrrrOption OptionGroup OptionParser make_optionc@sPeZdZdZejjdZejjdddgZdej Z ddZ d d Z d d Z d S)raRepresents 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. :ivar optional_arg: This does not need a arguement, but it can be supplied. :ivar hidden: The help list does not show this option :ivar 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. filenamehiddenin_main optional_argz--cOsXtjj|f|||js"tdt|jt|jkr>td|jsTtd|jddS)Nz!%s at least one long option name.z;%s at least more long option names than short option names.z%s needs a help message.r)optparser__init__ _long_opts ValueErrorlen _short_optshelp)selfargskwargsr r r reszOption.__init__cCsF|j|kr|jj|jtjj||t|jt|jkrBtddS)NzCgoption.Option needs more long option names than short option names) REMAININGrappendrr_set_opt_stringrrr)r!Zoptsr r r r&qs  zOption._set_opt_stringccsd}|jr|tjjO}|jr(|tjjO}|jrD|jrP|tjjO}n |tjj O}|j dkrf|tjj O}x>t |j |jD],\}}|ddt|d||j|jfVqvWx<|j t|jdD]$}|ddtd||j|jfVqWdS)Nrrr)rrZ OptionFlagsZHIDDENrZIN_MAINZ takes_valuerZ OPTIONAL_ARGZNO_ARGtypeZFILENAMEziprr_bytesr metavarr)r!flagsZ long_nameZ short_namer r r _to_goptionentriesys     (zOption._to_goptionentriesN)r)__name__ __module__ __qualname____doc__rrZTYPESZATTRSrZOPTION_REMAININGr$rr&r.r r r r r>s  c@s<eZdZdZdddZddZdd Zdd d Zd d ZdS)raA group of command line options. :param str name: The groups name, used to create the --help-{name} option :param str description: Shown as title of the groups help view :param str help_description: Shown as help to the --help-{name} option :param list option_list: The options used in this group, must be option.Option() :param dict defaults: A dicitionary of default values :param 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. NcCsZtjj|td|||_d|_||_|r.||_d|_||_ |rVx|D]}|j |qDWdS)Nerror) rZOptionContainerrrnameparserhelp_descriptiondefaultsvaluestranslation_domainZ add_option)r!r5 descriptionr7 option_listr8r:optionr r r rs zOptionGroup.__init__cCsg|_|jdS)N)r<Z_create_option_mappings)r!r r r _create_option_listszOptionGroup._create_option_listcsffdd}tjjjj|}jr6|jjg}xjD]}|j|j qBW|j ||S)Nc s|jdrj|}n j|}y|j||jWnJtk rtjd}tt |}t |_ t j j|_t ||_|YnXdS)Nz--r) startswith _long_opt _short_optprocessr9rsysexc_inforstrOPTION_CONTEXT_ERROR_QUARKdomainrr BAD_VALUEcodemessage) option_name option_valuegroupoptr4Zgerror)r6r!r r callbacks       z.OptionGroup._to_goptiongroup..callback) rrr5r;r7r:Zset_translation_domainr<extendr. add_entries)r!r6rOrMZentriesr=r )r6r!r _to_goptiongroups     zOptionGroup._to_goptiongroupcCs|j|j|S)z Returns the corresponding GOptionGroup object. Can be used as parameter for gnome_program_init(), gtk_init(). )set_values_to_defaultsrR)r!r6r r r get_option_groupszOptionGroup.get_option_groupcCsVxB|jD]8}|jj|j}t|tr|j}|j|||j|j<qWtj |j|_ dS)N) r<r8getdest isinstance _basestringZget_opt_stringZ check_valuerZValuesr9)r!r=defaultZopt_strr r r rSs  z"OptionGroup.set_values_to_defaults)r3NNN)N) r/r0r1r2rr>rRrTrSr r r r rs  c@sJeZdZdZddZddZddZdd Zd d Zd d Z dddZ dS)raHCommand line parser with GOption support. :param bool help_enabled: The --help, --help-all and --help-{group} options are enabled (default). :param bool ignore_unknown_options: Do not throw a exception when a option is not knwon, the option will be in the result list. .. NOTE:: The OptionParser interface is not the exactly the same as the optparse.OptionParser interface. Especially the usage parameter is only used to show the metavar of the arguements. OptionParser.add_option_group() does not only accept OptionGroup instances but also glib.OptionGroup, which is returned by gtk_get_option_group(). Only glib.option.OptionGroup and glib.option.Option instances should be passed as groups and options. For further help, see optparse.OptionParser. cOsLd|krt|d<|jdd|_|jdd|_tjj|f|ddi|dS)NZ option_class help_enabledTignore_unknown_optionsFZadd_help_option)rpoprZr[rrr)r!r"r#r r r r s zOptionParser.__init__cCs8|dkrd|_n$|jdr.|tdd|_n||_dS)Nr3z%prog)usager?r)r!r]r r r set_usages  zOptionParser.set_usagec sjrjdj}nj}tj|}|jj|jjx4jD]*}t |tj r^|}n |j }|j |qHWfdd}tj ddd|}g}xj D]} |j| jqW|j||j||S)Nz - cs4|jdrj|}n j|}|j||dS)Nz--)r?r@rArB)rKrLrMrN)r!r9r r rO+s   z1OptionParser._to_goptioncontext..callback)r;r]rZ OptionContextZset_help_enabledrZZset_ignore_unknown_optionsr[ option_groupsrWrrTZ add_groupr<rPr.rQZset_main_group) r!r9Zparameter_stringcontextZ option_groupZg_grouprOZ main_groupZ main_entriesr=r )r!r9r _to_goptioncontexts&         zOptionParser._to_goptioncontextcOst|dtr,tjj|t|f||dSt|dkr| rt|dtrv|djs`||d_|dj|k rvtdt|dt jr|j j |ddStjj|f||dS)Nrrz"invalid OptionGroup (wrong parser)) rWrXrradd_option_grouprrr6rrr_r%)r!r"r#r r r rb;s  zOptionParser.add_option_groupcCs:|jdd}x&|jD]}t|tjr|j|jqW|S)N)r<r_rWrrrP)r!optionsrMr r r _get_all_optionsKs   zOptionParser._get_all_optionscCs4|j|}|jtjdg|dd|dd<dS)Nrr)raparserCargv)r!ZlargsZrargsr9r`r r r _process_argsRs zOptionParser._process_argsNc Cs|pg}ytjj|||\}}Wn|tk rtjd}|jtkrH|jt j j krbt |j n6|jt j jkr|t|j n|jt j jkrt|j nYnXx4|jD]*}x$|jjjD]\}}|j||qWqW|dt| }||fS)Nrr')rr parse_argsrrCrDrGrFrIrrrHrrJZUNKNOWN_OPTIONrZFAILEDrr_r9__dict__itemsZ ensure_valuer) r!r"r9Zold_argsrcr4rMkeyvaluer r r rhZs(      zOptionParser.parse_args)NN) r/r0r1r2rr^rarbrdrgrhr r r r rs  )r r)r2rCrrrrrrmoduler version_inforErXr+Z basestringZgirZ gi._errorrrZquark_to_stringZoption_error_quarkrF__all__rrrrr r r r s6     Ta