File: //usr/lib/python3/dist-packages/gi/__pycache__/_option.cpython-38.pyc
U
�� ^�3 � @ s� d Z ddlZddlZddlmZmZmZmZmZ ddlm Z ddl
mZ ddlm
Z
ddlmZ e d �Ze�e�� �Zd
ddd
dddddg ZG dd� dej�ZG dd� dej�ZG dd� 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)�string_types)�_gi)�GError�GLibr r r r r �Option�OptionGroup�OptionParser�make_optionc @ sP e Zd ZdZejjd Zejjdddg Zdej Z
dd� Zd d
� Zdd� 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_arg�--c O sX t jj| f|�|� | js"td��t| j�t| j�k r>td��| jsTtd| jd ��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�kwargs� r! �,/usr/lib/python3/dist-packages/gi/_option.pyr _ s �zOption.__init__c C sF | j |kr| j�| j � tj�| |� t| j�t| j�krBtd��d S )NzCgoption.Option needs more long option names than short option names) � REMAININGr �appendr r
�_set_opt_stringr r r )r Zoptsr! r! r"