o
    d`                     @   s   d dl Z G dd deZdS )    Nc                       sN   e Zd ZdZ fddZedd Zejdd Zdd Z fd	d
Z	  Z
S )
Collectionz
    Defines a collection of objects.

    The collection holds extra metadata about the objects which are used
    in things like pagination.
    c                    s(   | di | _tt| j|i | d S )Nmetadata)pop	_metadatasuperr   __init__)selfargskwargs	__class__ r/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/pyactiveresource/collection.pyr      s   zCollection.__init__c                 C   s   | j S Nr   )r   r   r   r   r      s   zCollection.metadatac                 C   s
   || _ d S r   r   )r   valuer   r   r   r      s   
c                 C   s   t | }t|t| jdS )z3Override list.copy so that it returns a Collection.)r   )listr   copydeepcopyr   )r   copied_listr   r   r   r      s   zCollection.copyc                    s<   t t| |}t|tr|o| j|jkS t|tr|S dS )z/Test equality of metadata as well as the items.F)r   r   __eq__
isinstancer   r   )r   other	same_listr   r   r   r      s   

zCollection.__eq__)__name__
__module____qualname____doc__r   propertyr   setterr   r   __classcell__r   r   r   r   r      s    

r   )r   r   r   r   r   r   r   <module>   s    