HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/awscli/customizations/__pycache__/toplevelbool.cpython-310.pyc
o

.&�a�@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|�dkr&|j}t|�dkr&t|���ddkr&t|���djdkr&dSdS)Nzstructure(scalar)�r�Value�booleanTF)r�members�len�list�keys�values�	type_name)�	arg_modelrr
r
r�_qualifies_for_simplification)src
Ks�g}|�dtt|d��t|���D]G\}}t|d�rY|j}t|�rYt|j	||j
|j|j	|jd�}|||j	<d|j	}t
|||j
|jdd|j|j	|jd�}	|	||<|�||	f�qdS)	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�name�_operation_model�_event_emitter�_serialized_name�NegativeBooleanParameter�py_name�append)
�argument_tabler�kwargsr�key�valuer�new_arg�
negative_name�negative_argr
r
rr	3s<��

�


���r	cKsF|D]\}}t||j�tur t||j�tur td|j|jf��qdS)Nz8Cannot specify both the "%s" option and the "%s" option.)�getattrr(�_NOT_SPECIFIED�
ValueError�cli_name)r�parsed_argsr+�positive�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
rr9ds

�
z PositiveBooleanArgument.__init__cCs|jS)N)r:)r;r
r
rrksz"PositiveBooleanArgument.group_namecCs|j|j|jdtdd�dS)N�store�?)�helpr�default�nargs)�add_argumentr4�
documentationr2)r;�parserr
r
r�
add_to_parseros
�z%PositiveBooleanArgument.add_to_parsercCs:|turdS|durddi||j<dS|�|�||j<dS)NrT)r2r&�_unpack_argument�r;�
parametersr-r
r
r�
add_to_paramsys�z%PositiveBooleanArgument.add_to_params)	�__name__�
__module__�__qualname__r9�propertyrrHrL�
__classcell__r
r
r>rr"cs

r"cs*eZdZ		d�fdd�	Zdd�Z�ZS)r'rNc		s&tt|�j||||t|d�||_dS)N)rCr)r8r'r9r2r:)	r;r#rr<r=rrrrr>r
rr9�s

�
z!NegativeBooleanParameter.__init__cCs&|tur|rddi||j<dSdSdS)NrF)r2r&rJr
r
rrL�s�z&NegativeBooleanParameter.add_to_params)rNN)rMrNrOr9rLrQr
r
r>rr'�s
�r')�__doc__�logging�	functoolsr�awscli.argprocessr�awsclir�awscli.customizations.utilsr�	getLoggerrM�LOG�objectr2rrr	r�CLIArgumentr"�BooleanArgumentr'r
r
r
r�<module>s

&
&