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__/arguments.cpython-38.pyc
U

<�^�@s`ddlZddlmZddlZdd�Zdd�ZGdd�de�ZGd	d
�d
e�ZGdd�de�ZdS)
�N)�CustomArgumentcCsN|dkrdStj�tj�|��}t�tj�tj�|��tj�sJtd|��|S)z=Asserts that a path is writable and returns the expanded pathNzUnable to write to file: %s)	�os�path�
expanduser�
expandvars�access�dirname�abspath�W_OK�
ValueError)rZoutfile�r�A/usr/lib/python3/dist-packages/awscli/customizations/arguments.py�resolve_given_outfile_pathsrcCs|dddkS)z-Returns True if a parsed result is successfulZResponseMetadataZHTTPStatusCodei,r)Z
parsed_resultrrr
�is_parsed_result_successfulsrcs8eZdZdZddiZ�fdd�Zdd�Zdd	�Z�ZS)
�OverrideRequiredArgsArgumenta�An argument that if specified makes all other arguments not required

    By not required, it refers to not having an error thrown when the
    parser does not find an argument that is required on the command line.
    To obtain this argument's property of ignoring required arguments,
    subclass from this class and fill out the ``ARG_DATA`` parameter as
    described below. Note this class is really only useful for subclassing.
    �namezno-required-argscs&||_|��tt|�jf|j�dS�N)�_session�_register_argument_action�superr�__init__�ARG_DATA)�self�session��	__class__rr
r7sz%OverrideRequiredArgsArgument.__init__cCs|j�d|j�dS)Nz%before-building-argument-table-parser)r�register�override_required_args�rrrr
r<s�z6OverrideRequiredArgsArgument._register_argument_actioncKs.d|j}||kr*|��D]}d||_qdS)Nz--F)r�keysZrequired)rZargument_table�args�kwargsZname_in_cmdlineZarg_namerrr
r@s
z3OverrideRequiredArgsArgument.override_required_args)	�__name__�
__module__�__qualname__�__doc__rrrr�
__classcell__rrrr
r!s
rcs8eZdZdZ�fdd�Z�fdd�Zedd��Z�ZS)�StatefulArgumentz+An argument that maintains a stateful valuecstt|�j||�d|_dSr)rr'r�_value)rr r!rrr
rLszStatefulArgument.__init__cstt|��||�||_dSr)rr'�
add_to_paramsr(�rZ
parameters�valuerrr
r)PszStatefulArgument.add_to_paramscCs|jSr)r(rrrr
r+TszStatefulArgument.value)	r"r#r$r%rr)�propertyr+r&rrrr
r'Is
r'csLeZdZdZ�fdd�Zedd��Zedd��Z�fdd	�Zd
d�Z	�Z
S)�QueryOutFileArgumentz8An argument that write a JMESPath query result to a filecsJ||_||_||_||_d|kr.d|j|d<tt|�j|f|�|�dS)NZ	help_textz=Saves the command output contents of %s to the given filename)r�_query�_after_call_event�_perm�queryrr-r)rrrr1Zafter_call_event�permr r!rrr
r\s�zQueryOutFileArgument.__init__cCs|jSr)r.rrrr
r1hszQueryOutFileArgument.querycCs|jSr)r0rrrr
r2lszQueryOutFileArgument.permcs:t|�}tt|��||�|jdk	r6|j�|j|j�dSr)	rrr-r)r+rrr/�
save_queryr*rrr
r)ps
z"QueryOutFileArgument.add_to_paramsc	Ks`t|�r\t�|j|�}t|jd��4}|dkr8|�d�n
|�|�t�|j|j	�W5QRXdS)z�Saves the result of a JMESPath expression to a file.

        This method only saves the query data if the response code of
        the parsed result is < 300.
        �wN�)
r�jmespath�searchr1�openr+�writer�chmodr2)rZparsedr!�contents�fprrr
r3ws
zQueryOutFileArgument.save_query)r"r#r$r%rr,r1r2r)r3r&rrrr
r-Ys

r-)	rZawscli.argumentsrr6rrrr'r-rrrr
�<module>
s
(