ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3
<_3              	   @   s   d Z ddlZddlZddlmZmZmZmZmZ ddlm	Z	 ej
dkrTeZdd ZneZeZdd	lmZ dd
lmZ e	dZejej Zdddddddddg	ZG dd dejZG dd dejZG dd dejZeZdS )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OptionErrorOptionValueErrorBadOptionErrorOptionConflictError   )get_introspection_module   c             C   s   | j  S )N)encode)s r   /usr/lib64/python3.6/_option.py<lambda>&   s    r   )_gi)GErrorGLibr   r   r   r   r   OptionOptionGroupOptionParsermake_optionc               @   sP   e Zd ZdZejjd Zejjdddg Zdej	 Z
dd Zd	d
 Zdd ZdS )r   a  Represents 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.
    filenamehiddenin_mainoptional_argz--c             O   sX   t jj| f|| | js"tdt| jt| jk r>td| jsTtd| jd d S )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
ValueErrorlen_short_optshelp)selfargskwargsr   r   r   r   e   s    zOption.__init__c             C   sF   | j |kr| jj| j  tjj| | t| jt| jkrBtdd S )NzCgoption.Option needs more long option names than short option names)		REMAININGr   appendr   r   _set_opt_stringr   r   r   )r!   Zoptsr   r   r   r&   q   s
    
zOption._set_opt_stringc             c   s   d}| j r|tjjO }| jr(|tjjO }| j rD| jrP|tjjO }n|tjj	O }| j
dkrf|tjjO }x>t| j| jD ],\}}|dd  t|d || j| jfV  qvW x<| jt| jd  D ]$}|dd  td|| j| jfV  qW d S )Nr   r      r    )r   r   ZOptionFlagsZHIDDENr   ZIN_MAINZtakes_valuer   ZOPTIONAL_ARGZNO_ARGtypeZFILENAMEzipr   r   _bytesr    metavarr   )r!   flagsZ	long_nameZ
short_namer   r   r   _to_goptionentriesy   s    
(zOption._to_goptionentriesN)r   )__name__
__module____qualname____doc__r   r   ZTYPESZATTRSr   ZOPTION_REMAININGr$   r   r&   r.   r   r   r   r   r   >   s   
c               @   s<   e Zd ZdZdddZdd Zdd	 Zdd
dZdd ZdS )r   a  A 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.
     Nc             C   sZ   t jj| td| || _d | _|| _|r.|| _d | _|| _	|rVx|D ]}| j
| qDW d S )Nerror)r   ZOptionContainerr   r   nameparserhelp_descriptiondefaultsvaluestranslation_domainZ
add_option)r!   r5   descriptionr7   option_listr8   r:   optionr   r   r   r      s    
zOptionGroup.__init__c             C   s   g | _ | j  d S )N)r<   Z_create_option_mappings)r!   r   r   r   _create_option_list   s    zOptionGroup._create_option_listc                sf    fdd}t jjjj|}jr6|jj g }xjD ]}|j|j	  qBW |j
| |S )Nc                s   | j drj|  }n
j|  }y|j| |j  W nJ tk
r   tj d }tt	|}t
|_tjj|_t	||_|Y nX d S )Nz--r   )
startswith	_long_opt
_short_optprocessr9   r   sysexc_infor   strOPTION_CONTEXT_ERROR_QUARKdomainr   r   	BAD_VALUEcodemessage)option_nameoption_valuegroupoptr4   Zgerror)r6   r!   r   r   callback   s    



z.OptionGroup._to_goptiongroup.<locals>.callback)r   r   r5   r;   r7   r:   Zset_translation_domainr<   extendr.   add_entries)r!   r6   rO   rM   Zentriesr=   r   )r6   r!   r   _to_goptiongroup   s    

zOptionGroup._to_goptiongroupc             C   s   | 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!   r6   r   r   r   get_option_group   s    zOptionGroup.get_option_groupc             C   sV   xB| j D ]8}| jj|j}t|tr|j }|j||| j|j< qW tj	| j| _
d S )N)r<   r8   getdest
isinstance_basestringZget_opt_stringZcheck_valuer   ZValuesr9   )r!   r=   defaultZopt_strr   r   r   rS      s    
z"OptionGroup.set_values_to_defaults)r3   NNN)N)	r/   r0   r1   r2   r   r>   rR   rT   rS   r   r   r   r   r      s     

c               @   sJ   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dddZ
dS )r   aH  Command 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.
    c             O   sL   d|krt |d< |jdd| _|jdd| _tjj| f|ddi| d S )NZoption_classhelp_enabledTignore_unknown_optionsFZadd_help_option)r   poprZ   r[   r   r   r   )r!   r"   r#   r   r   r   r   
  s    
zOptionParser.__init__c             C   s8   |d krd| _ n$|jdr.|tdd  | _ n|| _ d S )Nr3   z%prog)usager?   r   )r!   r]   r   r   r   	set_usage  s
    
zOptionParser.set_usagec       
         s    j r jd  j  }n j}tj|}|j j |j j x4 jD ]*}t	|tj
r^|}n
|j }|j| qHW  fdd}tj
d d d |}g }x jD ]}	|j|	j  qW |j| |j| |S )Nz - c                s4   | j dr j|  }n
 j|  }|j| |  d S )Nz--)r?   r@   rA   rB   )rK   rL   rM   rN   )r!   r9   r   r   rO   +  s    

z1OptionParser._to_goptioncontext.<locals>.callback)r;   r]   r   ZOptionContextZset_help_enabledrZ   Zset_ignore_unknown_optionsr[   option_groupsrW   r   rT   Z	add_groupr<   rP   r.   rQ   Zset_main_group)
r!   r9   Zparameter_stringcontextZoption_groupZg_grouprO   Z
main_groupZmain_entriesr=   r   )r!   r9   r   _to_goptioncontext  s&    



zOptionParser._to_goptioncontextc             O   s   t |d tr,tjj| t| f|| d S t|dkr| rt |d trv|d js`| |d _|d j| k	rvtdt |d t	jr| j
j|d  d S tjj| f|| d S )Nr   r   z"invalid OptionGroup (wrong parser))rW   rX   r   r   add_option_groupr   r   r6   r   r   r_   r%   )r!   r"   r#   r   r   r   rb   ;  s    

zOptionParser.add_option_groupc             C   s:   | j d d  }x&| jD ]}t|tjr|j|j  qW |S )N)r<   r_   rW   r   r   rP   )r!   optionsrM   r   r   r   _get_all_optionsK  s
    zOptionParser._get_all_optionsc             C   s4   | j |}|jtjd g| dd  |d d < d S )Nr   r   )ra   parserC   argv)r!   ZlargsZrargsr9   r`   r   r   r   _process_argsR  s    
zOptionParser._process_argsNc       	      C   s   |pg }yt jj| ||\}}W n| tk
r   tj d }|jtkrH |jt	j
jkrbt|jn6|jt	j
jkr|t|jn|jt	j
jkrt|jn Y nX x4| jD ]*}x$|jjj D ]\}}|j|| qW qW |dt|  }||fS )Nr   r'   )r   r   
parse_argsr   rC   rD   rG   rF   rI   r   r   rH   r   rJ   ZUNKNOWN_OPTIONr   ZFAILEDr   r_   r9   __dict__itemsZensure_valuer   )	r!   r"   r9   Zold_argsrc   r4   rM   keyvaluer   r   r   rh   Z  s(    
zOptionParser.parse_args)NN)r/   r0   r1   r2   r   r^   ra   rb   rd   rg   rh   r   r   r   r   r      s   	 )r	   r   )r2   rC   r   r   r   r   r   r   moduler   version_inforE   rX   r+   Z
basestringZgir   Z	gi._errorr   r   Zquark_to_stringZoption_error_quarkrF   __all__r   r   r   r   r   r   r   r   <module>   s6   

Ta 