+
     Iiv-  c                   sd    ^ RI t ^ RIHt ^RIHt R tRR ltR t ! R R4      t ! R	 R
4      t	R# )i    N)
xform_name)get_data_memberc                s&    V  F
  pVe   K	   R# 	  R# )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 )ZiterableZelements   & =/usr/lib/python3.14/site-packages/boto3/resources/response.pyall_not_noner      s     ?      c                s   . pV  F  pVP                   pVP                  pVR8X  d#   \        P                  ! VP                  V4      pMVR8X  d#   \        P                  ! VP                  V4      pM[VR8X  d!   \        V\        VP                  4      4      pM4VR8X  d   \        WP                  4      pMVR8X  d   K  \        RV 24      hVP                  \        V4      V34       K  	  V# )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.
responseZrequestParameter
identifierdataZinputzUnsupported source type: )sourcetargetjmespathsearchZpathZgetattrr    namer   NotImplementedErrorappend)	identifiersparentparamsraw_responseZresultsr   r	   r
   values	   &&&&     r   build_identifiersr       s    & G!
""""ZOOJOO\BE))OOJOOV<E|#FJz$?@Ev $FOO<Ew%(A&&JKK
6*E23) ", Nr   c                s   RpVP                  V4      pVP                  pV '       d   V P                  R4       Fr  pVP                  R4      pVP                  R8X  d   VP
                  V,          pK:  VP                  R8X  d   VP                  pKY  \        RVP                   RV 24      h	  VP                  R8X  d   / pV# VP                  R8X  d   . pV# VP                  R8X  d   / pV# )	ai  
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
NZ.z[0123456789]$Z	structurelistzSearch path hits shape type z from Zmap)operation_modelZoutput_shapeZsplitZstripZ	type_nameZmembersZmemberr   )search_pathoperation_nameservice_modelr   r   ZshapeZitems   &&&    r   build_empty_responser   N   s      H#33NCO((E
  %%c*D::o.D+-d+F*)25??2C6$P  + +% O 
F	" O 
E	!Or   c                   s0   a  ] tR t^t o RtR tR tRtV tR# )
RawHandlera'  
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                s    Wn         R # Nr   )selfr   s   &&r   __init__ZRawHandler.__init__   s    &r   c                s    V P                   '       d3   V P                   R8w  d"   \        P                  ! V P                   V4      pV# )
: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.
Z$)r   r   r   )r   r   r   r   s   &&&&r   __call__ZRawHandler.__call__   s8      0 0C 7t'7'7BHr   r   N)	__name__
__module____qualname____firstlineno____doc__r    r"   __static_attributes____classdictcell__Z__classdict__   @r   r   r      s     	' r   r   c                   s:   a  ] tR t^t o RtRR ltR tR tRtV t	R# )ResourceHandlera"  
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                sB    Wn         W n        W0n        WPn        W@n        R # r   )r   factoryresource_modelr   service_context)r   r   r-   r.   r/   r   s   &&&&&&r   r    ZResourceHandler.__init__   s!     ',,.r   c           	     s   V P                   P                  pV P                  P                  P	                  V4      pV P
                  P                  VVV P                  R7      pTpRpV P                  '       d"   \        P                  ! V P                  V4      p\        \        V P                   P                  WV4      4      p	V	P                  4        U
u. uF  p
\        V
\        4      '       g   K  V
NK  	  pp
V'       dZ   . p\!        \#        V^ ,          4      4       F6  pRpV'       d	   W,          pVP%                  V P'                  WaW4      4       K8  	  V# \)        V	P                  4       4      '       d   V P'                  WaW4      pV# RpV P*                  e6   \-        V P                  V P*                  V P                  P.                  4      pV# u up
i )r!   )resource_nameZsingle_resource_json_definitionr/   N)r.   Ztyper/   Zresource_json_definitionsZgetr-   Zload_from_definitionr   r   r   Zdictr   r   Zvalues
isinstancer   ZrangeZlenr   handle_response_itemr   r   r   r   )r   r   r   r   r0   Zjson_definitionresource_clsr   Zsearch_responser   ZvZpluralZiZresponse_items   &&&&          r   r"   ZResourceHandler.__call__   s    ++00..HHLL

 ||88',; 00 9 

   &ood.>.>MO ##//
 )//1I1Z45H!!1IH 3vay>* !%"$3$6M--$k +B + +,,.// 00kH$  H"". 0$$''((66 Q Js   G4Gc                s    RVP                   P                  /pVP                  4        F0  w  rg\        V\        4      '       d   VP                  ^ 4      pWuV&   K2  	  V! R/ VB pVe   WHP                   n        V# )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   )Zmetar4   Zitemsr1   r   Zpopr   )	r   r3   r   r   Zresource_dataZkwargsr   r   Zresources	   &&&&&    r   r2   Z$ResourceHandler.handle_response_item  sv    & fkk((
 ',,.KD%&&		! 4L /  )&)$!.MMr   )r-   r   r.   r   r/   r   )
r#   r$   r%   r&   r'   r    r"   r2   r(   r)   r*   r+   r   r,   r,      s      2/Rh" "r   r,   )NN)
r   Zbotocorer    r   r   r   r   r   r   r,   r   r   r   <module>r5      s7      #	+\.b >^ ^r   