HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/boto3/resources/__pycache__/action.cpython-310.pyc
o

�h�%�@s�ddlZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZm
Z
e�e�ZGd	d
�d
�ZGdd�de�ZGd
d�d�ZGdd�d�ZdS)�N)�
xform_name)�ActionDocstring)�inject_attribute�)�Action)�create_request_parameters)�
RawHandler�ResourceHandlerc@s"eZdZdZddd�Zdd�ZdS)�
ServiceActiona�
    A class representing a callable action on a resource, for example
    ``sqs.get_queue_by_name(...)`` or ``s3.Bucket('foo').delete()``.
    The action may construct parameters from existing resource identifiers
    and may return either a raw response or a new resource instance.

    :type action_model: :py:class`~boto3.resources.model.Action`
    :param action_model: The action model.

    :type factory: ResourceFactory
    :param factory: The factory that created the resource class to which
                    this action is attached.

    :type service_context: :py:class:`~boto3.utils.ServiceContext`
    :param service_context: Context about the AWS service
    NcCs>||_|j}|rt|j||||jjd�|_dSt|j�|_dS)N)�search_path�factory�resource_model�service_context�operation_name)�
_action_model�resourcer	�path�request�	operation�_response_handlerr)�self�action_modelrr�resource_response_model�r�I/usr/local/CyberCP/lib/python3.10/site-packages/boto3/resources/action.py�__init__.s�zServiceAction.__init__cOslt|jjj�}t||jj�}|�|�t�d|jj	||�t
|jj|�|i|��}t�d|�|�|||�S)a�
        Perform the action's request operation after building operation
        parameters and build any defined resources from the response.

        :type parent: :py:class:`~boto3.resources.base.ServiceResource`
        :param parent: The resource instance to which this action is attached.
        :rtype: dict or ServiceResource or list(ServiceResource)
        :return: The response, either as a raw dict or resource instance(s).
        �Calling %s:%s with %r�Response: %r)
rrrrr�update�logger�debug�meta�service_name�getattr�clientr)r�parent�args�kwargsr�params�responserrr�__call__?s

�zServiceAction.__call__)NN��__name__�
__module__�__qualname__�__doc__rr*rrrrr
s
r
c@seZdZdZdd�ZdS)�BatchActiona�
    An action which operates on a batch of items in a collection, typically
    a single page of results from the collection's underlying service
    operation call. For example, this allows you to delete up to 999
    S3 objects in a single operation rather than calling ``.delete()`` on
    each one individually.

    :type action_model: :py:class`~boto3.resources.model.Action`
    :param action_model: The action model.

    :type factory: ResourceFactory
    :param factory: The factory that created the resource class to which
                    this action is attached.

    :type service_context: :py:class:`~boto3.utils.ServiceContext`
    :param service_context: Context about the AWS service
    c
Os�d}d}g}t|jjj�}|��D]S}i}	t|�D]\}
}|dur%|jj}|dur-|jj}t	||jj|	|
d�q|	s=|S|	�
|�t�d|||	�t
||�|i|	��}t�d|�|�|�||	|��q|S)a�
        Perform the batch action's operation on every page of results
        from the collection.

        :type parent:
            :py:class:`~boto3.resources.collection.ResourceCollection`
        :param parent: The collection iterator to which this action
                       is attached.
        :rtype: list(dict)
        :return: A list of low-level response dicts from each call.
        N)r(�indexrr)rrrr�pages�	enumerater!r"r$rrrr r#�appendr)
rr%r&r'r"r$�	responsesr�pager(r1rr)rrrr*rs8�
��zBatchAction.__call__N)r,r-r.r/r*rrrrr0_sr0c@� eZdZdZdd�Zdd�ZdS)�WaiterActiona/
    A class representing a callable waiter action on a resource, for example
    ``s3.Bucket('foo').wait_until_bucket_exists()``.
    The waiter action may construct parameters from existing resource
    identifiers.

    :type waiter_model: :py:class`~boto3.resources.model.Waiter`
    :param waiter_model: The action waiter.
    :type waiter_resource_name: string
    :param waiter_resource_name: The name of the waiter action for the
                                 resource. It usually begins with a
                                 ``wait_until_``
    cCs||_||_dS)N)�
_waiter_model�_waiter_resource_name)r�waiter_model�waiter_resource_namerrrr�s
zWaiterAction.__init__c	Osjt|jj�}t||j�}|�|�t�d|jj|j	|�|jj
}|�|�}|jdi|��}t�d|�dS)z�
        Perform the wait operation after building operation
        parameters.

        :type parent: :py:class:`~boto3.resources.base.ServiceResource`
        :param parent: The resource instance to which this action is attached.
        rrNr)
rr9�waiter_namerrrr r!r"r:r$�
get_waiter�wait)	rr%r&r'�client_waiter_namer(r$�waiterr)rrrr*�s
�
zWaiterAction.__call__Nr+rrrrr8�sr8c@r7)�CustomModeledActionz3A custom, modeled action to inject into a resource.cCs||_||_||_||_dS)a�
        :type action_name: str
        :param action_name: The name of the action to inject, e.g.
            'delete_tags'

        :type action_model: dict
        :param action_model: A JSON definition of the action, as if it were
            part of the resource model.

        :type function: function
        :param function: The function to perform when the action is called.
            The first argument should be 'self', which will be the resource
            the function is to be called on.

        :type event_emitter: :py:class:`botocore.hooks.BaseEventHooks`
        :param event_emitter: The session event emitter.
        N)�name�model�function�emitter)r�action_namerrE�
event_emitterrrrr�s
zCustomModeledAction.__init__cKsV|�d�d}t|j|ji�}|j|j_t||j||jdd�|j_	t
||j|j�dS)N�.���F)�
resource_namerHr�
service_model�include_signature)�rsplitrrCrDrEr,rrFrLr/r)r�class_attributesr�
event_namer'rK�actionrrr�inject�s

�zCustomModeledAction.injectN)r,r-r.r/rrRrrrrrB�srB)�logging�botocorer�boto3.docs.docstringr�boto3.utilsrrDrr(rr)rr	�	getLoggerr,rr
r0r8rBrrrr�<module>s

CL1