HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/awscli/customizations/__pycache__/toplevelbool.cpython-38.pyc
U

<�^�@s�dZddlZddlmZddlmZddlmZddlm	Z	e�
e�Ze
�Zdd�Zd	d
�Zdd�Zd
d�ZGdd�dej�ZGdd�dej�ZdS)au
Top Level Boolean Parameters
----------------------------

This customization will take a parameter that has
a structure of a single boolean element and allow the argument
to be specified without a value.

Instead of having to say::

    --ebs-optimized '{"Value": true}'
    --ebs-optimized '{"Value": false}'

You can instead say `--ebs-optimized/--no-ebs-optimized`.


�N)�partial)�detect_shape_structure)�	arguments)�#validate_mutually_exclusive_handlercCs|�dtt|d��dS)Nzbuilding-argument-table.ec2.*��
event_handler)�registerr�pull_up_boolr�r
�D/usr/lib/python3/dist-packages/awscli/customizations/toplevelbool.py�register_bool_params#s
��rcCsPt|�dkrL|j}t|�dkrLt|���ddkrLt|���djdkrLdSdS)Nzstructure(scalar)�r�ValueZbooleanTF)r�members�len�list�keys�valuesZ	type_name)�	arg_modelrr
r
r�_qualifies_for_simplification)s��rc
Ks�g}|�dtt|d��t|���D]�\}}t|d�r$|j}t|�r$t|j	||j
|j|j	|jd�}|||j	<d|j	}t
|||j
|jdd|j|j	|jd�}	|	||<|�||	f�q$dS)	Nzoperation-args-parsed.ec2.*)�
boolean_pairs�argument_model)�
group_name�serialized_namezno-%s�
store_truezno_%s)�action�destrr)rr�validate_boolean_mutex_groupsr�items�hasattrrr�PositiveBooleanArgument�nameZ_operation_modelZ_event_emitter�_serialized_name�NegativeBooleanParameter�py_name�append)
Zargument_tabler�kwargsr�key�valuerZnew_argZ
negative_nameZnegative_argr
r
rr	3sB��
�

�r	cKsF|D]<\}}t||j�tk	rt||j�tk	rtd|j|jf��qdS)Nz8Cannot specify both the "%s" option and the "%s" option.)�getattrr$�_NOT_SPECIFIED�
ValueError�cli_name)rZparsed_argsr&Zpositive�negativer
r
rrYs�
��rcs8eZdZ�fdd�Zedd��Zdd�Zdd�Z�ZS)	r cs$tt|�j|||||d�||_dS)N)r)�superr �__init__�_group_name)�selfr!r�operation_model�
event_emitterrr��	__class__r
rr/ds
�z PositiveBooleanArgument.__init__cCs|jS)N)r0)r1r
r
rrksz"PositiveBooleanArgument.group_namecCs|j|j|jdtdd�dS)NZstore�?)�helpr�default�nargs)�add_argumentr,Z
documentationr*)r1�parserr
r
r�
add_to_parseros�z%PositiveBooleanArgument.add_to_parsercCs8|tkrdS|dkr$ddi||j<n|�|�||j<dS)NrT)r*r"Z_unpack_argument�r1Z
parametersr(r
r
r�
add_to_paramsys�z%PositiveBooleanArgument.add_to_params)	�__name__�
__module__�__qualname__r/�propertyrr<r>�
__classcell__r
r
r4rr cs


r cs&eZdZd�fdd�	Zdd�Z�ZS)r#rNc		s&tt|�j||||t|d�||_dS)N)r8r)r.r#r/r*r0)	r1r!rr2r3rrrrr4r
rr/�s
�z!NegativeBooleanParameter.__init__cCs|tk	r|rddi||j<dS)NrF)r*r"r=r
r
rr>�sz&NegativeBooleanParameter.add_to_params)rNN)r?r@rAr/r>rCr
r
r4rr#�s
�r#)�__doc__Zlogging�	functoolsrZawscli.argprocessrZawsclirZawscli.customizations.utilsrZ	getLoggerr?ZLOG�objectr*rrr	rZCLIArgumentr ZBooleanArgumentr#r
r
r
r�<module>s

&
&