Ë
    £ªðiv-  ã                   ó`   — d dl Z d dlmZ ddlmZ d„ Zdd„Zd„ Z G d„ d	«      Z G d
„ d«      Z	y)é    N)Ú
xform_nameé   )Úget_data_memberc                 ó   — | D ]  }|�Œ y y)zÍ
    Return True if all elements of the iterable are not None (or if the
    iterable is empty). This is like the built-in ``all``, except checks
    against None, so 0 and False are allowable values.
    FT© )ÚiterableÚelements     úo/var/www/acinvestment.org/public_html/aci/backend/venv/lib/python3.12/site-packages/boto3/resources/response.pyÚall_not_noner      s    € ð ò ˆØ‰?Ùðð ó    c                 óÂ  — g }| D ]×  }|j                   }|j                  }|dk(  r!t        j                  |j                  |«      }n{|dk(  r!t        j                  |j                  |«      }nU|dk(  r t        |t        |j                  «      «      }n0|dk(  rt        ||j                  «      }n|dk(  rŒ®t        d|› �«      ‚|j                  t        |«      |f«       ŒÙ |S )aË  
    Builds a mapping of identifier names to values based on the
    identifier source location, type, and target. Identifier
    values may be scalars or lists depending on the source type
    and location.

    :type identifiers: list
    :param identifiers: List of :py:class:`~boto3.resources.model.Parameter`
                        definitions
    :type parent: ServiceResource
    :param parent: The resource instance to which this action is attached.
    :type params: dict
    :param params: Request parameters sent to the service.
    :type raw_response: dict
    :param raw_response: Low-level operation response.
    :rtype: list
    :return: An ordered list of ``(name, value)`` identifier tuples.
    ÚresponseÚrequestParameterÚ
identifierÚdataÚinputzUnsupported source type: )ÚsourceÚtargetÚjmespathÚsearchÚpathÚgetattrr   Únamer   ÚNotImplementedErrorÚappend)	ÚidentifiersÚparentÚparamsÚraw_responseÚresultsr   r   r   Úvalues	            r
   Úbuild_identifiersr"       sÙ   € ð& €Gà!ò 4ˆ
Ø×"Ñ"ˆØ×"Ñ"ˆà�ZÒÜ—O‘O J§O¡O°\ÓB‰EØÐ)Ò)Ü—O‘O J§O¡O°VÓ<‰EØ�|Ò#Ü˜F¤J¨z¯©Ó$?Ó@‰EØ�vÒô $ F¨J¯O©OÓ<‰EØ�wÒàä%Ð(AÀ&ÀÐ&JÓKÐKà�‰œ
 6Ó*¨EÐ2Õ3ð)4ð, €Nr   c                 ó®  — d}|j                  |«      }|j                  }| r|| j                  d«      D ]h  }|j                  d«      }|j                  dk(  r|j
                  |   }Œ3|j                  dk(  r|j                  }ŒOt        d|j                  › d|› �«      ‚ |j                  dk(  ri }|S |j                  dk(  rg }|S |j                  dk(  ri }|S )	a�  
    Creates an appropriate empty response for the type that is expected,
    based on the service model's shape type. For example, a value that
    is normally a list would then return an empty list. A structure would
    return an empty dict, and a number would return None.

    :type search_path: string
    :param search_path: JMESPath expression to search in the response
    :type operation_name: string
    :param operation_name: Name of the underlying service operation.
    :type service_model: :ref:`botocore.model.ServiceModel`
    :param service_model: The Botocore service model
    :rtype: dict, list, or None
    :return: An appropriate empty value
    Nú.z[0123456789]$Ú	structureÚlistzSearch path hits shape type z from Úmap)Úoperation_modelÚoutput_shapeÚsplitÚstripÚ	type_nameÚmembersÚmemberr   )Úsearch_pathÚoperation_nameÚservice_modelr   r(   ÚshapeÚitems          r
   Úbuild_empty_responser4   N   sî   € ð  €Hà#×3Ñ3°NÓC€OØ×(Ñ(€Eáð
  ×%Ñ% cÓ*ò 
	ˆDØ—:‘:˜oÓ.ˆDà�‰ +Ò-ØŸ™ dÑ+‘Ø—‘ FÒ*ØŸ™‘ä)Ø2°5·?±?Ð2CÀ6È$ÈÐPóð ð
	ð ‡�˜+Ò%Øˆð €Oð 
�‰˜FÒ	"Øˆð €Oð 
�‰˜EÒ	!Øˆà€Or   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú
RawHandleraG  
    A raw action response handler. This passed through the response
    dictionary, optionally after performing a JMESPath search if one
    has been defined for the action.

    :type search_path: string
    :param search_path: JMESPath expression to search in the response
    :rtype: dict
    :return: Service response
    c                 ó   — || _         y ©N)r/   )Úselfr/   s     r
   Ú__init__zRawHandler.__init__‹   s
   € Ø&ˆÕr   c                 ó|   — | j                   r/| j                   dk7  r t        j                  | j                   |«      }|S )á,  
        :type parent: ServiceResource
        :param parent: The resource instance to which this action is attached.
        :type params: dict
        :param params: Request parameters sent to the service.
        :type response: dict
        :param response: Low-level operation response.
        ú$)r/   r   r   )r9   r   r   r   s       r
   Ú__call__zRawHandler.__call__Ž   s5   € ð ×Ò × 0Ñ 0°CÒ 7Ü—‘ t×'7Ñ'7¸ÓBˆHàˆr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   r>   r   r   r
   r6   r6      s   „ ñ	ò'ór   r6   c                   ó&   — e Zd ZdZ	 dd„Zd„ Zd„ Zy)ÚResourceHandleraf  
    Creates a new resource or list of new resources from the low-level
    response based on the given response resource definition.

    :type search_path: string
    :param search_path: JMESPath expression to search in the response

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

    :type resource_model: :py:class:`~boto3.resources.model.ResponseResource`
    :param resource_model: Response resource model.

    :type service_context: :py:class:`~boto3.utils.ServiceContext`
    :param service_context: Context about the AWS service

    :type operation_name: string
    :param operation_name: Name of the underlying service operation, if it
                           exists.

    :rtype: ServiceResource or list
    :return: New resource instance(s).
    Nc                 óJ   — || _         || _        || _        || _        || _        y r8   )r/   ÚfactoryÚresource_modelr0   Úservice_context)r9   r/   rF   rG   rH   r0   s         r
   r:   zResourceHandler.__init__¸   s+   € ð 'ˆÔØˆŒØ,ˆÔØ,ˆÔØ.ˆÕr   c           	      óh  — | j                   j                  }| j                  j                  j	                  |«      }| j
                  j                  ||| j                  ¬«      }|}d}| j                  r t        j                  | j                  |«      }t        t        | j                   j                  |||«      «      }	|	j                  «       D �
cg c]  }
t        |
t        «      sŒ|
‘Œ }}
|rLg }t!        t#        |d   «      «      D ].  }d}|r||   }|j%                  | j'                  |||	|«      «       Œ0 |S t)        |	j                  «       «      r| j'                  |||	|«      }|S d}| j*                  �5t-        | j                  | j*                  | j                  j.                  «      }|S c c}
w )r<   )Úresource_nameÚsingle_resource_json_definitionrH   Nr   )rG   ÚtyperH   Úresource_json_definitionsÚgetrF   Úload_from_definitionr/   r   r   Údictr"   r   ÚvaluesÚ
isinstancer&   ÚrangeÚlenr   Úhandle_response_itemr   r0   r4   r1   )r9   r   r   r   rJ   Újson_definitionÚresource_clsr   Úsearch_responser   ÚvÚpluralÚiÚresponse_items                 r
   r>   zResourceHandler.__call__Æ   sÃ  € ð ×+Ñ+×0Ñ0ˆØ×.Ñ.×HÑH×LÑLØó
ˆð
 —|‘|×8Ñ8Ø'Ø,;Ø ×0Ñ0ð 9ó 
ˆð
  ˆØˆð ×ÒÜ&Ÿo™o¨d×.>Ñ.>ÀÓMˆOô ÜØ×#Ñ#×/Ñ/°¸Àóó
ˆð )×/Ñ/Ó1ÖI˜´ZÀÄ4Õ5H’!ÐIˆÐIáØˆHô œ3˜v a™y›>Ó*ò �ð !%�Ù"Ø$3°AÑ$6�MØ—‘Ø×-Ñ-Ø$ f¨k¸=óõððB ˆô+ ˜+×,Ñ,Ó.Ô/ð ×0Ñ0Ø˜f k°?óˆHð$ ˆð ˆHØ×"Ñ"Ð.ô 0Ø×$Ñ$Ø×'Ñ'Ø×(Ñ(×6Ñ6ó�ð ˆùòQ Js   ÃF/Ã'F/c                 óè   — d|j                   j                  i}|j                  «       D ]+  \  }}t        |t        «      r|j                  d«      }|||<   Œ-  |di |¤Ž}|�||j                   _        |S )a�  
        Handles the creation of a single response item by setting
        parameters and creating the appropriate resource instance.

        :type resource_cls: ServiceResource subclass
        :param resource_cls: The resource class to instantiate.
        :type parent: ServiceResource
        :param parent: The resource instance to which this action is attached.
        :type identifiers: dict
        :param identifiers: Map of identifier names to value or values.
        :type resource_data: dict or None
        :param resource_data: Data for resource attributes.
        :rtype: ServiceResource
        :return: New resource instance.
        Úclientr   r   )Úmetar^   ÚitemsrR   r&   Úpopr   )	r9   rW   r   r   Úresource_dataÚkwargsr   r!   Úresources	            r
   rU   z$ResourceHandler.handle_response_item  s~   € ð& �f—k‘k×(Ñ(ð
ˆð '×,Ñ,Ó.ò 	!‰KˆD�%ä˜%¤Ô&ØŸ	™	 !›�à ˆF�4ŠLð	!ñ  Ñ) &Ñ)ˆàÐ$Ø!.ˆH�M‰MÔàˆr   r8   )r?   r@   rA   rB   r:   r>   rU   r   r   r
   rD   rD   ž   s   „ ñð> ó/òRóh"r   rD   )NN)
r   Úbotocorer   r   r   r   r"   r4   r6   rD   r   r   r
   ú<module>rf      s7   ðó Ý å #ò	ó+ò\.÷bñ ÷>^ò ^r   