ó
    ýËâf•5  ã                   ó<  • S r SSKrSSKrSSKrSSKJrJrJrJrJr  SSK	J
r
  SSKJrJr  SSKJr  \
" S5      r\R#                  \R%                  5       5      r/ S	Qr " S
 S\R*                  5      r " S S\R,                  5      r " S S\R.                  5      r\rg)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)Ú_giÚPyGIDeprecationWarning)ÚGErrorÚGLib)	r   r   r   r   r   ÚOptionÚOptionGroupÚOptionParserÚmake_optionc                   ó°   • \ rS rSrSr\R                  R                  S-   r\R                  R                  / SQ-   rS\	R                  -   rS rS rS rS	rg
)r   é8   am  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_argú--c                 ó|  • [         R                  " S[        5        [        R                  R
                  " U /UQ70 UD6  U R                  (       d  [        S5      e[        U R                  5      [        U R                  5      :  a  [        S5      eU R                  (       d  [        SU R                  S   5      eg )NzZgi.repository.GLib.option.Option is deprecated, use gi.repository.GLib.OptionEntry insteadz!%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   )ÚwarningsÚwarnr   Úoptparser   Ú__init__Ú
_long_optsÚ
ValueErrorÚlenÚ_short_optsÚhelp©ÚselfÚargsÚkwargss      Ú,/usr/lib/python3/dist-packages/gi/_option.pyr   ÚOption.__init___   s˜   € Ü�ŠØhÜ"ô	
ô 	�‰× Ò  Ð7¨Ò7°Ò7Ø��ÜÐ@ÓAÐAäˆt�‰Ó¤# d×&6Ñ&6Ó"7Ó7ÜØMóOð Oð �y�yÜÐ7¸¿¹ÈÑ9KÓLÐLð ó    c                 ó  • U R                   U;   a%  U R                  R                  U R                   5        [        R                  R                  X5        [        U R                  5      [        U R                  5      :”  a  [        S5      eg )NzCgoption.Option needs more long option names than short option names)	Ú	REMAININGr   Úappendr   r   Ú_set_opt_stringr    r!   r   )r$   Úoptss     r'   r-   ÚOption._set_opt_stringo   si   € Ø�>‰>˜TÓ!Ø�O‰O×"Ñ" 4§>¡>Ô2Ü�‰×'Ñ'¨Ô3Üˆt×ÑÓ ¤3 t§¡Ó#7Ó7Üð 8ó 9ð 9ð 8r)   c              #   óZ  #   • SnU R                   (       a  U[        R                  R                  -  nU R                  (       a  U[        R                  R
                  -  nU R                  5       (       a/  U R                  (       a  U[        R                  R                  -  nOU[        R                  R                  -  nU R                  S:X  a  U[        R                  R                  -  n[        U R                  U R                  5       HO  u  p#US   n[        U[         5      (       d  UR#                  S5      nUSS  XAU R$                  U R&                  4v •  MQ     U R                  [)        U R                  5      S   H"  nUSS  SXR$                  U R&                  4v •  M$     g 7f)Nr   r   r   zutf-8é   ó    )r   r   ÚOptionFlagsÚHIDDENr   ÚIN_MAINÚtakes_valuer   ÚOPTIONAL_ARGÚNO_ARGÚtypeÚFILENAMEÚzipr   r!   Ú
isinstanceÚbytesÚencoder"   Úmetavarr    )r$   ÚflagsÚ	long_nameÚ
short_nameÚshort_bytess        r'   Ú_to_goptionentriesÚOption._to_goptionentriesw   sN  é € Øˆà�;�;Ø”T×%Ñ%×,Ñ,Ñ,ˆEà�<�<Ø”T×%Ñ%×-Ñ-Ñ-ˆEà×Ñ×ÑØ× × Øœ×)Ñ)×6Ñ6Ñ6�øà”T×%Ñ%×,Ñ,Ñ,ˆEà�9‰9˜
Ó"Ø”T×%Ñ%×.Ñ.Ñ.ˆEä'*¨4¯?©?¸D×<LÑ<LÖ'MÑ#ˆYØ$ Q™-ˆKÜ˜k¬5×1Ñ1Ø)×0Ñ0°Ó9�Ø˜Q˜R�= +°d·i±iÀÇÁÐNÔNñ	 (Nð Ÿ™¬¨T×-=Ñ-=Ó)>Ð)?Ó@ˆIØ˜Q˜R�= %¨·	±	¸4¿<¹<ÐHÔHò Aùs   ‚F)F+© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   ÚTYPESÚATTRSr   ÚOPTION_REMAININGr+   r   r-   rD   Ú__static_attributes__rF   r)   r'   r   r   8   s`   † ñð4 �O‰O×!Ñ!ð %ñ €Eð �O‰O×!Ñ!ò %ñ €Eð �t×,Ñ,Ñ,€IòMò 9õIr)   r   c                   óD   • \ rS rSrSr   S
S jrS rS rSS jrS r	S	r
g)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                 ó$  • [         R                  " S[        5        [        R                  R                  U [        SU5        Xl        S U l        X0l	        U(       a  XPl
        S U l        X`l        U(       a  U H  nU R                  U5        M     g g )Nzagi.repository.GLib.option.OptionGroup is deprecated, use gi.repository.GLib.OptionContext insteadÚerror)r   r   r   r   ÚOptionContainerr   r   ÚnameÚparserÚhelp_descriptionÚdefaultsÚvaluesÚtranslation_domainÚ
add_option)r$   rU   ÚdescriptionrW   Úoption_listrX   rZ   Úoptions           r'   r   ÚOptionGroup.__init__®   sw   € ô 	�ŠØoÜ"ô	
ô 	× Ñ ×)Ñ)¨$´¸ÀÔMØŒ	ØˆŒØ 0ÔÞØ$ŒMàˆŒà"4ÔæÛ%�Ø—‘ Ö'ò &ð r)   c                 ó2   • / U l         U R                  5         g ©N)r]   Ú_create_option_mappings)r$   s    r'   Ú_create_option_listÚOptionGroup._create_option_listÄ   s   € ØˆÔØ×$Ñ$Õ&r)   c                 óh  ^ ^• UU 4S jn[         R                  " T R                  T R                  T R                  U5      nT R
                  (       a  UR                  T R
                  5        / nT R                   H"  nUR                  UR                  5       5        M$     UR                  U5        U$ )Nc                 ó˜  >• U R                  S5      (       a  TR                  U    nOTR                  U    n UR                  XTR                  T5        g ! [
         ai    [        R                  " 5       S   n[        [        U5      5      n[        Ul        [        R                  R                  Ul        [        U5      Ul        Uef = f)Nr   r   )Ú
startswithÚ	_long_optÚ
_short_optÚprocessrY   r   ÚsysÚexc_infor   ÚstrÚOPTION_CONTEXT_ERROR_QUARKÚdomainr   r   Ú	BAD_VALUEÚcodeÚmessage)Úoption_nameÚoption_valueÚgroupÚoptrS   ÚgerrorrV   r$   s         €€r'   ÚcallbackÚ.OptionGroup._to_goptiongroup.<locals>.callbackÉ   s    ø€ Ø×%Ñ% d×+Ñ+Ø—n‘n [Ñ1‘à—o‘o kÑ2�ðØ—‘˜K°t·{±{ÀFÕKøÜ#ó ÜŸš› qÑ)�Ü¤ E£
Ó+�Ü :�”Ü"×.Ñ.×8Ñ8�”Ü!$ U£�”Ø�ðús   ¸A ÁA3C	)r
   r   rU   r\   rW   rZ   Úset_translation_domainr]   ÚextendrD   Úadd_entries)r$   rV   rx   ru   Úentriesr^   s   ``    r'   Ú_to_goptiongroupÚOptionGroup._to_goptiongroupÈ   sŽ   ù€ ö	ô  —’ §	¡	¨4×+;Ñ+;Ø $× 5Ñ 5°xóAˆà×"×"Ø×(Ñ(¨×)@Ñ)@ÔAàˆØ×&Ô&ˆFØ�N‰N˜6×4Ñ4Ó6Ö7ñ 'ð 	×Ñ˜'Ô"àˆr)   c                 óD   • U R                  5         U R                  U5      $ )zoReturns the corresponding GOptionGroup object.

Can be used as parameter for gnome_program_init(), gtk_init().
)Úset_values_to_defaultsr~   )r$   rV   s     r'   Úget_option_groupÚOptionGroup.get_option_groupæ   s!   € ð
 	×#Ñ#Ô%Ø×$Ñ$ VÓ,Ð,r)   c                 ó\  • U R                    Hw  nU R                  R                  UR                  5      n[	        U[
        5      (       d  M?  UR                  5       nUR                  X25      U R                  UR                  '   My     [        R                  " U R                  5      U l
        g ra   )r]   rX   ÚgetÚdestr<   rm   Úget_opt_stringÚcheck_valuer   ÚValuesrY   )r$   r^   ÚdefaultÚopt_strs       r'   r�   Ú"OptionGroup.set_values_to_defaultsî   s{   € Ø×&Ô&ˆFØ—m‘m×'Ñ'¨¯©Ó4ˆGÜ˜'¤3×'Ó'Ø ×/Ñ/Ó1�Ø-3×-?Ñ-?Øó.&�—‘˜fŸk™kÓ*ñ	 'ô —o’o d§m¡mÓ4ˆ�r)   )rX   rW   rU   r]   rV   rZ   rY   )Ú NNNra   )rG   rH   rI   rJ   rK   r   rc   r~   r‚   r�   rO   rF   r)   r'   r   r   “   s+   † ñð4 <>Ø,0Ø$(ô(ò,'òô<-õ5r)   r   c                   óF   • \ rS rSrSrS rS rS rS rS r	S r
SS
 jrSrg	)r   éø   a  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                 ó   • [         R                  " S[        5        SU;  a	  [        US'   UR	                  SS5      U l        UR	                  SS5      U l        [        R                  R                  " U /UQ7SS0UD6  g )Nzbgi.repository.GLib.option.OptionParser is deprecated, use gi.repository.GLib.OptionContext insteadÚoption_classÚhelp_enabledTÚignore_unknown_optionsFÚadd_help_option)
r   r   r   r   Úpopr’   r“   r   r   r   r#   s      r'   r   ÚOptionParser.__init__  s   € Ü�ŠØpÜ"ô	
ð  Ó'Ü%+ˆF�>Ñ"Ø"ŸJ™J ~°tÓ<ˆÔØ&,§j¡jÐ1IØ16ó'8ˆÔ#ä×Ñ×&Ò& tð 	8Ø(,ò	8¸Uð 	8Ø06ó	8r)   c                 óz   • Uc  SU l         g UR                  S5      (       a  U[        S5      S  U l         g Xl         g )Nr�   z%prog)Úusagerg   r    )r$   r˜   s     r'   Ú	set_usageÚOptionParser.set_usage  s6   € Ø‰=ØˆD�JØ×Ñ˜g×&Ñ&Øœs 7›|˜}Ð-ˆD�Jà�Jr)   c                 ó°  ^ ^• T R                   (       a  T R                  S-   T R                   -   nOT R                  n[        R                  " U5      nUR	                  T R
                  5        UR                  T R                  5        T R                   HG  n[        U[        R                  5      (       a  UnOUR                  T 5      nUR                  U5        MI     U U4S jn[        R                  " S S S U5      n/ nT R                   H"  n	UR                  U	R                  5       5        M$     UR!                  U5        UR#                  U5        U$ )Nz - c                 ó–   >• U R                  S5      (       a  TR                  U    nOTR                  U    nUR                  XTT5        g )Nr   )rg   rh   ri   rj   )rs   rt   ru   rv   r$   rY   s       €€r'   rx   Ú1OptionParser._to_goptioncontext.<locals>.callback4  s@   ø€ Ø×%Ñ% d×+Ñ+Ø—n‘n [Ñ1‘à—o‘o kÑ2�Ø�K‰K˜°6¸4Õ@r)   )r\   r˜   r
   ÚOptionContextÚset_help_enabledr’   Úset_ignore_unknown_optionsr“   Úoption_groupsr<   r   r‚   Ú	add_groupr]   r{   rD   r|   Úset_main_group)
r$   rY   Úparameter_stringÚcontextÚoption_groupÚg_grouprx   Ú
main_groupÚmain_entriesr^   s
   ``        r'   Ú_to_goptioncontextÚOptionParser._to_goptioncontext$  s  ù€ Ø××Ø#Ÿz™z¨EÑ1°D×4DÑ4DÑDÑà#Ÿz™zÐÜ×#Ò#Ð$4Ó5ˆØ× Ñ  ×!2Ñ!2Ô3Ø×*Ñ*¨4×+FÑ+FÔGà ×.Ô.ˆLÜ˜,¬¯©×8Ñ8Ø&‘à&×7Ñ7¸Ó=�Ø×Ñ˜gÖ&ñ /ö	Aô —_’_ T¨4°°xÓ@ˆ
ØˆØ×&Ô&ˆFØ×Ñ × 9Ñ 9Ó ;Ö<ñ 'à×Ñ˜|Ô,Ø×Ñ˜zÔ*àˆr)   c                 ó*  • [        US   [        5      (       a.  [        R                  R	                  U [        U /UQ70 UD65        g [        U5      S:X  aš  U(       d“  [        US   [
        5      (       a:  US   R                  (       d	  XS   l        US   R                  U La  [        S5      e[        US   [        R
                  5      (       a  U R                  R                  US   5        g [        R                  R                  " U /UQ70 UD6  g )Nr   r   z"invalid OptionGroup (wrong parser))r<   rm   r   r   Úadd_option_groupr   r    rV   r   r
   r¡   r,   r#   s      r'   r­   ÚOptionParser.add_option_groupD  sÛ   € Ü�d˜1‘gœs×#Ñ#Ü×!Ñ!×2Ñ2°4Ü3>¸tÐ3UÀdÒ3UÈfÑ3UôWàÜ�‹Y˜!‹^¦FÜ˜$˜q™'¤;×/Ñ/Ø˜A‘w—~—~Ø%)˜‘G”NØ˜‘7—>‘>¨Ò-Ü$Ð%IÓJÐJÜ˜$˜q™'¤3§?¡?×3Ñ3Ø×"Ñ"×)Ñ)¨$¨q©'Ô2ØÜ×Ñ×.Ò.¨tÐE°dÒE¸fÓEr)   c                 óÂ   • U R                   S S  nU R                   H?  n[        U[        R                  5      (       d  M$  UR                  UR                   5        MA     U$ ra   )r]   r¡   r<   r   r   r{   )r$   Úoptionsru   s      r'   Ú_get_all_optionsÚOptionParser._get_all_optionsT  sN   € Ø×"Ñ"¡1Ð%ˆØ×'Ô'ˆEÜ˜%¤×!5Ñ!5×6Ó6Ø—‘˜u×0Ñ0Ö1ñ (ð ˆr)   c                 ó~   • U R                  U5      nUR                  [        R                  S   /U-   5      SS  US S & g )Nr   r   )rª   Úparserk   Úargv)r$   ÚlargsÚrargsrY   r¥   s        r'   Ú_process_argsÚOptionParser._process_args[  s<   € Ø×)Ñ)¨&Ó1ˆð
 —=‘=¤#§(¡(¨1¡+ °Ñ!6Ó7¸¸Ð;ˆ‰a‰r)   Nc                 óÖ  •  [         R                  R                  XU5      u  p1U R$                   HA  nUR&                  R(                  R+                  5        H  u  pgUR-                  Xg5        M     MC     X14$ ! [         aæ    [        R
                  " 5       S   nUR                  [        :w  a  e UR                  [        R                  R                  :X  a  [        UR                  5      eUR                  [        R                  R                  :X  a  [        UR                  5      eUR                  [        R                  R                   :X  a  [#        UR                  5      ee f = f)Nr   )r   r   Ú
parse_argsr   rk   rl   ro   rn   rq   r   r   rp   r   rr   ÚUNKNOWN_OPTIONr   ÚFAILEDr   r¡   rY   Ú__dict__ÚitemsÚensure_value)r$   r%   rY   r°   rS   ru   ÚkeyÚvalues           r'   r»   ÚOptionParser.parse_argsc  s  € ð	Ü$×1Ñ1×<Ñ<Ø˜Fó$‰MˆGð ×'Ô'ˆEØ#Ÿl™l×3Ñ3×9Ñ9Ö;‘
�Ø×$Ñ$ SÖ0ó <ñ (ð ˆ}Ðøô# ó 	Ü—L’L“N 1Ñ%ˆEØ�|‰|Ô9Ó9ØØ�z‰zœT×-Ñ-×7Ñ7Ó7Ü& u§}¡}Ó5Ð5Ø—‘œt×/Ñ/×>Ñ>Ó>Ü$ U§]¡]Ó3Ð3Ø—‘œt×/Ñ/×6Ñ6Ó6Ü# E§M¡MÓ2Ð2àð	ús   ‚"A8 Á8C0E()r’   r“   r˜   )NN)rG   rH   rI   rJ   rK   r   r™   rª   r­   r±   r¸   r»   rO   rF   r)   r'   r   r   ø   s,   † ñò,8òòò@Fò ò<÷r)   r   )rK   rk   r   r   r   r   r   r   r   Úmoduler	   Úgir
   r   Ú	gi._errorr   r   Úquark_to_stringÚoption_error_quarkrn   Ú__all__r   r   r   r   rF   r)   r'   Ú<module>rÊ      s™   ðñ(ó Û Û ÷(õ (å ,ç *Ý Ù Ó'€à!×1Ñ1°$×2IÑ2IÓ2KÓLÐ ò
€ôXIˆX�_‰_ô XIôvb5�(×&Ñ&ô b5ôJ@�8×(Ñ(ô @ðF �r)   