o
    é’OjA  ã                   @   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                   @   s:   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
   úZ/var/www/html/pharmsmart-cdr-gen/venv/lib/python3.10/site-packages/boto3/resources/base.pyÚ__init__   s   	
zResourceMeta.__init__c                 C   s   d| j › d| j› d�S )NzResourceMeta('z', identifiers=ú))r   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__5   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                   @   s6   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| › �|ƒ q"| 	¡ D ]\}}|dkrAq8|| j jvrNt
d|› �ƒ‚t| d|› �|ƒ q8| j jD ]}t| |ƒd u rmt
d|› d�ƒ‚q\d 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                    s0   ‡ fdd„ˆ j jD ƒ}ˆ jj› dd |¡› d�S )Nc                    s$   g | ]}|› d t tˆ |ƒƒ› �‘qS )ú=)Úreprr$   )Ú.0r*   r   r
   r   Ú
<listcomp>~   s    ÿÿz,ServiceResource.__repr__.<locals>.<listcomp>ú(z, r   )r   r   r   r   Újoin)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   Úappendr$   Úhashr   r   Útuple)r	   r   r*   r
   r
   r   Ú__hash__‘   s   zServiceResource.__hash__)	r   r   r   r   r   r   r   r   r4   r
   r
   r
   r   r   E   s     r   )Úloggingr   Ú	getLoggerr   Úloggerr   r   r
   r
   r
   r   Ú<module>   s
   
0