a
    ތxd                     @   s:   d dl Z d dlZe eZG dd dZG dd dZdS )    Nc                   @   s2   e Zd ZdZdddZdd Zdd Zd	d
 ZdS )ResourceMetaz9
    An object containing metadata about a resource.
    Nc                 C   s.   || _ |d u rg }|| _|| _|| _|| _d S N)service_nameidentifiersclientdataresource_model)selfr   r   r   r   r    r
   L/var/www/html/Ranjet/env/lib/python3.9/site-packages/boto3/resources/base.py__init__   s    	zResourceMeta.__init__c                 C   s   d | j| jS )Nz"ResourceMeta('{}', identifiers={}))formatr   r   )r	   r
   r
   r   __repr__2   s    zResourceMeta.__repr__c                 C   s    |j j| j jkrdS | j|jkS )NF)	__class____name____dict__)r	   otherr
   r
   r   __eq__7   s    zResourceMeta.__eq__c                 C   s$   | j  }|d}t|fi |S )z8
        Create a copy of this metadata object.
        r   )r   copypopr   )r	   paramsr   r
   r
   r   r   >   s    

zResourceMeta.copy)NNNN)r   
__module____qualname____doc__r   r   r   r   r
   r
   r
   r   r      s       
r   c                   @   s4   e Zd ZdZdZdd Zdd Zdd Zd	d
 ZdS )ServiceResourcez
    A base class for resources.

    :type client: botocore.client
    :param client: A low-level Botocore client instance
    Nc                 O   s   | j  | _ |dd ur*|d| j _nt| j j| j _t|D ] \}}t| d| j j|  | qD|	 D ]<\}}|dkrqn|| j jvrt
d| t| d| | qn| j jD ]"}t| |d u rt
d| dqd S )Nr   _zUnknown keyword argument: zRequired parameter z not set)metar   getr   boto3r   	enumeratesetattrr   items
ValueErrorgetattr)r	   argskwargsivaluename
identifierr
   r
   r   r   _   s    zServiceResource.__init__c              	   C   sF   g }| j jD ]"}|| dtt| |  qd| jjd|S )N=z{}({})z, )	r   r   appendreprr#   r   r   r   joinr	   r   r)   r
   r
   r   r      s    zServiceResource.__repr__c                 C   s@   |j j| j jkrdS | jjD ]}t| |t||kr dS qdS )NFT)r   r   r   r   r#   )r	   r   r)   r
   r
   r   r      s    zServiceResource.__eq__c                 C   s6   g }| j jD ]}|t| | qt| jjt|fS r   )r   r   r+   r#   hashr   r   tupler.   r
   r
   r   __hash__   s    zServiceResource.__hash__)	r   r   r   r   r   r   r   r   r1   r
   r
   r
   r   r   G   s    r   )loggingr   	getLoggerr   loggerr   r   r
   r
   r
   r   <module>   s   
2