Current File : //kunden/lib64/python3.9/site-packages/gi/__pycache__/_option.cpython-39.opt-1.pyc |
a
f�_T3 � @ s� d Z ddlZddlZddlmZmZmZmZmZ ddlm Z ddl
mZ ddlm
Z
e d�Ze�e�� �Zg d �ZG d
d� dej�ZG dd
� d
ej�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)�_gi)�GError�GLib) r r r r r �Option�OptionGroup�OptionParser�make_optionc @ sN e Zd ZdZejjd Zejjg d� Zdej Z
dd� Zdd� Zd 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 O s^ t jj| g|�R i |�� | js(td��t| j�t| j�k rDtd��| jsZtd| 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 �0/usr/lib64/python3.9/site-packages/gi/_option.pyr ^ s �zOption.__init__c C sF | j |v r| 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! r$ j s
zOption._set_opt_stringc c s� d}| j r|tjjO }| jr(|tjjO }| �� rD| jrP|tjjO }n|tjj O }| j
dkrf|tjjO }t| j
| j�D ]@\}}|d }t|t�s�|�d�}|dd � ||| j| jfV qt| j
t| j�d � D ] }|dd � d|| j| jfV q�d S )Nr r r zutf-8� � )r r ZOptionFlagsZHIDDENr ZIN_MAINZtakes_valuer ZOPTIONAL_ARGZNO_ARG�typeZFILENAME�zipr r �
isinstance�bytes�encoder �metavarr )r �flagsZ long_nameZ
short_nameZshort_bytesr r r! �_to_goptionentriesr s$
zOption._to_goptionentriesN)�__name__�
__module__�__qualname__�__doc__r r ZTYPESZATTRSr ZOPTION_REMAININGr"