HEX
Server: Apache/2.4.68 (Debian)
System: Linux as-cs-widget-demo-us-central1 6.1.0-44-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
User: root (0)
PHP: 8.2.32
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/gi/__pycache__/_option.cpython-311.pyc
�

f�_T3��<�dZddlZddlZddlmZmZmZmZmZddlm	Z	ddl
mZddlm
Z
e	d��Ze�e�����Zgd	�ZGd
�dej��ZGd�d
ej��ZGd�dej��ZeZdS)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)�GError�GLib)	rrrrr�Option�OptionGroup�OptionParser�make_optionc�x�eZdZdZejjdzZejjgd�zZdej	zZ
d�Zd�Zd�Z
dS)	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_arg�--c��tjj|g|�Ri|��|jst	d���t|j��t|j��krt	d���|jst	d|jd���dS)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�kwargss   �,/usr/lib/python3/dist-packages/gi/_option.pyrzOption.__init__^s����� ��7��7�7�7��7�7�7���	B��@�A�A�A��t����#�d�&6�"7�"7�7�7��M�O�O�
O��y�	M��7����9K�L�L�L�	M�	M�c��|j|vr|j�|j��tj�||��t
|j��t
|j��krtd���dS)NzCgoption.Option needs more long option names than short option names)	�	REMAININGr�appendrr
�_set_opt_stringrrr)r �optss  r#r(zOption._set_opt_stringjs~���>�T�!�!��O�"�"�4�>�2�2�2���'�'��d�3�3�3��t�� � �3�t��#7�#7�7�7��8�9�9�
9�8�7r$c#�K�d}|jr|tjjz}|jr|tjjz}|���r|jr|tjjz}n|tjj	z}|j
dkr|tjjz}t|j
|j��D]R\}}|d}t|t ��s|�d��}|dd�|||j|jfV��S|j
t)|j��d�D]}|dd�d||j|jfV��dS)Nrrrzutf-8��)rr�OptionFlags�HIDDENr�IN_MAIN�takes_valuer�OPTIONAL_ARG�NO_ARG�type�FILENAME�ziprr�
isinstance�bytes�encoder�metavarr)r �flags�	long_name�
short_name�short_bytess     r#�_to_goptionentrieszOption._to_goptionentriesrsp�������;�	-��T�%�,�,�E��<�	.��T�%�-�-�E������	-�� �
7���)�6�6����T�%�,�,�E��9�
�"�"��T�%�.�.�E�'*�4�?�D�<L�'M�'M�	O�	O�#�Y�
�$�Q�-�K��k�5�1�1�
:�)�0�0��9�9���Q�R�R�=�+�u�d�i���N�N�N�N�N����T�-=�)>�)>�)?�)?�@�	I�	I�I��Q�R�R�=�%���	�4�<�H�H�H�H�H�	I�	Ir$N)�__name__�
__module__�__qualname__�__doc__rr
�TYPES�ATTRSr�OPTION_REMAININGr&rr(r>�r$r#r
r
7s���������4
�O�!�%�
�E�
�O�!�%�%�%�
�E��t�,�,�I�
M�
M�
M�9�9�9�I�I�I�I�Ir$r
c�:�eZdZdZ			d	d�Zd�Zd�Zd
d�Zd�ZdS)ra�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���tj�|td|��||_d|_||_|r||_d|_||_	|r|D]}|�
|���dSdS)N�error)r�OptionContainerrr
�name�parser�help_description�defaults�values�translation_domain�
add_option)r rL�descriptionrN�option_listrOrQ�options        r#rzOptionGroup.__init__�s���	� �)�)�$����M�M�M���	���� 0����	%�$�D�M����"4����	(�%�
(�
(������'�'�'�'�	(�	(�
(�
(r$c�<�g|_|���dS�N)rT�_create_option_mappings)r s r#�_create_option_listzOptionGroup._create_option_list�s"������$�$�&�&�&�&�&r$c�4�����fd�}tj�j�j�j|��}�jr|��j��g}�jD])}|�|�	�����*|�
|��|S)Nc���|�d��r�j|}n
�j|}	|�||�j���dS#t
$rnt
j��d}tt|����}t|_tj
j|_t|��|_|�wxYw)Nrr)�
startswith�	_long_opt�
_short_opt�processrPr�sys�exc_infor�str�OPTION_CONTEXT_ERROR_QUARK�domainrr�	BAD_VALUE�code�message)�option_name�option_value�group�optrJ�gerrorrMr s      ��r#�callbackz.OptionGroup._to_goptiongroup.<locals>.callback�s�����%�%�d�+�+�
3��n�[�1����o�k�2��
����K��t�{�F�K�K�K�K�K��#�
�
�
�����q�)����E�
�
�+�+�� :��
�"�.�8���!$�U�������

���s�A�A8C
)r
rrLrSrNrQ�set_translation_domainrT�extendr>�add_entries)r rMrmrj�entriesrUs``    r#�_to_goptiongroupzOptionGroup._to_goptiongroup�s�����	�	�	�	�	�	� ���	�4�+;� $� 5�x�A�A���"�	B��(�(��)@�A�A�A����&�	8�	8�F��N�N�6�4�4�6�6�7�7�7�7�
���'�"�"�"��r$c�T�|���|�|��S)z� Returns the corresponding GOptionGroup object.

        Can be used as parameter for gnome_program_init(), gtk_init().
        )�set_values_to_defaultsrr)r rMs  r#�get_option_groupzOptionGroup.get_option_group�s*��
	
�#�#�%�%�%��$�$�V�,�,�,r$c�,�|jD]m}|j�|j��}t	|t
��r7|���}|�||��|j|j<�ntj	|j��|_
dSrW)rTrO�get�destr6rb�get_opt_string�check_valuer�ValuesrP)r rU�default�opt_strs    r#rtz"OptionGroup.set_values_to_defaults�s����&�	&�	&�F��m�'�'���4�4�G��'�3�'�'�
&� �/�/�1�1��-3�-?�-?��W�.&�.&��
�f�k�*���o�d�m�4�4����r$)rHNNNrW)	r?r@rArBrrYrrrurtrFr$r#rr�s~��������4<>�,0�$(�(�(�(�(�$'�'�'����<-�-�-�-�5�5�5�5�5r$rc�>�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d
d	�Z
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.
    c���d|vr
t|d<|�dd��|_|�dd��|_t	jj|g|�Rddi|��dS)N�option_class�help_enabledT�ignore_unknown_optionsF�add_help_option)r
�popr�r�rrrrs   r#rzOptionParser.__init__s�����'�'�%+�F�>�"�"�J�J�~�t�<�<���&,�j�j�1I�16�'8�'8��#���&�t�	8�(,�	8�	8�	8�U�	8�06�	8�	8�	8�	8�	8r$c��|�	d|_dS|�d��r|td��d�|_dS||_dS)NrHz%prog)�usager\r)r r�s  r#�	set_usagezOptionParser.set_usagesM���=��D�J�J�J�
�
�
�g�
&�
&�	��s�7�|�|�}�}�-�D�J�J�J��D�J�J�Jr$c�r����jr�jdz�jz}n�j}tj|��}|��j��|��j���jD]I}t|tj
��r|}n|����}|�|���J��fd�}tj
ddd|��}g}�j
D])}	|�|	������*|�|��|�|��|S)Nz - c���|�d��r�j|}n
�j|}|�||����dS)Nr)r\r]r^r_)rhrirjrkr rPs    ��r#rmz1OptionParser._to_goptioncontext.<locals>.callback'sQ����%�%�d�+�+�
3��n�[�1����o�k�2���K�K��\�6�4�@�@�@�@�@r$)rSr�r
�
OptionContext�set_help_enabledr��set_ignore_unknown_optionsr��
option_groupsr6rru�	add_grouprTror>rp�set_main_group)
r rP�parameter_string�context�option_group�g_grouprm�
main_group�main_entriesrUs
``        r#�_to_goptioncontextzOptionParser._to_goptioncontextsg������	*�#�z�E�1�D�4D�D���#�z���#�$4�5�5��� � ��!2�3�3�3��*�*�4�+F�G�G�G� �.�	'�	'�L��,���8�8�
>�&���&�7�7��=�=�����g�&�&�&�&�	A�	A�	A�	A�	A�	A��_�T�4��x�@�@�
����&�	=�	=�F����� 9� 9� ;� ;�<�<�<�<����|�,�,�,����z�*�*�*��r$c�$�t|dt��r0tj�|t|g|�Ri|����dSt
|��dkr�|s�t|dt
��r8|djs
||d_|dj|urtd���t|dtj��r"|j
�|d��dStjj|g|�Ri|��dS)Nrrz"invalid OptionGroup (wrong parser))r6rbrr�add_option_grouprrrMrr
r�r'rs   r#r�zOptionParser.add_option_group7s���d�1�g�s�#�#�	��!�2�2�4�3>�t�3U�d�3U�3U�3U�f�3U�3U�
W�
W�
W��F�
��Y�Y�!�^�^�F�^��$�q�'�;�/�/�
K��A�w�~�*�%)�D��G�N���7�>��-�-�$�%I�J�J�J��$�q�'�3�?�3�3�
��"�)�)�$�q�'�2�2�2�����.�t�E�d�E�E�E�f�E�E�E�E�Er$c��|jdd�}|jD]6}t|tj��r|�|j���7|SrW)rTr�r6rrro)r �optionsrjs   r#�_get_all_optionszOptionParser._get_all_optionsGsU���"�1�1�1�%���'�	2�	2�E��%��!5�6�6�
2����u�0�1�1�1���r$c��|�|��}|�tjdg|z��dd�|dd�<dS)Nrr)r��parser`�argv)r �largs�rargsrPr�s     r#�
_process_argszOptionParser._process_argsNsJ���)�)�&�1�1��
�=�=�#�(�1�+���!6�7�7����;��a�a�a���r$Nc�d�	tj�|||��\}}n�#t$r�t	j��d}|jtkr�|jtj
jkrt|j
���|jtj
jkrt|j
���|jtj
jkrt#|j
����wxYw|jD]<}|jj���D]\}}|�||����=||fS)Nr)rr�
parse_argsrr`rardrcrfrrrerrg�UNKNOWN_OPTIONr�FAILEDrr�rP�__dict__�items�ensure_value)r r!rPr�rJrj�key�values        r#r�zOptionParser.parse_argsVs6��	�$�1�<�<��d�F�$�$�M�G�T�T���	�	�	��L�N�N�1�%�E��|�9�9�9���z�T�-�7�7�7�&�u�}�5�5�5���t�/�>�>�>�$�U�]�3�3�3���t�/�6�6�6�#�E�M�2�2�2��	�����'�	1�	1�E�#�l�3�9�9�;�;�
1�
1�
��U��$�$�S�%�0�0�0�0�
1���}�s
�$'�CC')NN)r?r@rArBrr�r�r�r�r�r�rFr$r#rr�s���������,8�8�8�������@F�F�F� ���<�<�<������r$r)rBr`rrrrrr�moduler	�gir
�	gi._errorrr�quark_to_string�option_error_quarkrc�__all__r
rrrrFr$r#�<module>r�s���(���
�
�
�����(�(�(�(�(�(�(�(�(�(�(�(�(�(�,�,�,�,�,�,����������������'�'��!�1�1�$�2I�2I�2K�2K�L�L��
�
�
��TI�TI�TI�TI�TI�X�_�TI�TI�TI�n^5�^5�^5�^5�^5�(�&�^5�^5�^5�B|�|�|�|�|�8�(�|�|�|�~���r$