Current File : //usr/lib/python3/dist-packages/boto3/resources/__pycache__/action.cpython-312.pyc |
�
��e�% � �� � d dl Z d dlmZ d dlmZ d dlmZ ddlmZ ddl m
Z
ddlmZm
Z
e j e� Z G d � d
� Z G d� de� Z G d
� d� Z G d� d� Zy)� N)�
xform_name)�ActionDocstring)�inject_attribute� )�Action)�create_request_parameters)�
RawHandler�ResourceHandlerc � � e Zd ZdZdd�Zd� Zy)�
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
Nc �� � || _ |j }|r4t |j ||||j j
�� | _ y t |j � | _ y )N)�search_path�factory�resource_model�service_context�operation_name)�
_action_model�resourcer
�path�request� operation�_response_handlerr )�self�action_modelr r �resource_response_models �8/usr/lib/python3/dist-packages/boto3/resources/action.py�__init__zServiceAction.__init__. s^ � �)��� #/�"7�"7��"�%4�3�8�8��6� /�+�3�3�=�=�&�D�"� &0��0A�0A�%B�D�"� c � � t | j j j � }t || j j � }|j |� t j d|j j ||� t |j j |� |i |��}t j d|� | j |||� 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)
r r r r r �update�logger�debug�meta�service_name�getattr�clientr )r �parent�args�kwargsr �params�responses r �__call__zServiceAction.__call__? s� � � $�D�$6�$6�$>�$>�$H�$H�I��
+�6�4�3E�3E�3M�3M�N���
�
�f�����#��K�K�$�$���
� ?�7�6�;�;�-�-�~�>��O��O�����^�X�.��%�%�f�f�h�?�?r )NN��__name__�
__module__�__qualname__�__doc__r r. � r r r r s � ��"C�"@r r c � � e Zd ZdZd� Zy)�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 �N � d}d}g }t | j j j � }|j � D ]� }i } t |� D ]X \ }
}|�|j j }|�|j j }t || j j | |
�� �Z | s |S | j |� t j d||| � t ||� |i | ��}t j d|� |j | j || |� � �� |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, �indexr r! )r r r r �pages� enumerater% r&