
    Mf                      @    d  Z  e            Zd Z G d d          ZdS )c                 "    | |t          di |dS )N)	operationlocationparams )dict)namer   kwargss      J/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/dash/_patch.py
_operationr      s    8t~~f~~NNN    c                 N    t          | t                    rt          d          d S )Nz&a slice is not a valid index for patch)
isinstanceslice	TypeError)objs    r
   validate_slicer      s0    #u B@AAAB Br   c                       e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZd Zd ZdS )Patchz
    Patch a callback output value

    Act like a proxy of the output prop value on the frontend.

    Supported prop types: Dictionaries and lists.
    Nc                 h    ||| _         n|r|j         pg | _         ||j        | _        d S g | _        d S N	_location_operations)selfr   parents      r
   __init__zPatch.__init__   sL    %DNN %9)9@bDN%1D!Dr   c                      t          |           S r   )varsr   s    r
   __getstate__zPatch.__getstate__!   s    Dzzr   c                 J    t          |                               |           d S r   )r   update)r   states     r
   __setstate__zPatch.__setstate__$   s"    T

%     r   c                 T    t          |           t          | j        |gz   |           S )N)r   r   )r   r   r   r   items     r
   __getitem__zPatch.__getitem__'   s,    tdnv5dCCCCr   c                 z    |dk    rt           |dk    r| j        S |dk    r| j        S |                     |          S )Ntolistr   r   )AttributeErrorr   r   r(   r&   s     r
   __getattr__zPatch.__getattr__+   sN    8  ;>!=  ##%%%r   c                 R    |dv r|| j         |<   d S |                     ||           d S )Nr   )__dict____setitem__r   keyvalues      r
   __setattr__zPatch.__setattr__5   s<    ...!&DM#S%(((((r   c                 0    |                      |           d S r   )__delitem__r&   s     r
   __delattr__zPatch.__delattr__;   s    r   c                     t          |           |t          u rd S | j                            t	          d| j        |gz   |                     d S )NAssignr2   )r   _noopr   appendr   r   r0   s      r
   r/   zPatch.__setitem__>   sg    sE>>F#&  	
 	
 	
 	
 	
r   c                     t          |           | j                            t          d| j        |gz                        d S )NDelete)r   r   r;   r   r   )r   r1   s     r
   r5   zPatch.__delitem__K   s@    s
8T^se5K L LMMMMMr   c                     t          |t          t          f          r|                     |           n/| j                            t          d| j        |                     t          S )NAddr9   )	r   listtupleextendr   r;   r   r   r:   r   others     r
   __iadd__zPatch.__iadd__O   s[    edE]++ 	TKK##JudnE$R$R$RSSSr   c                 n    | j                             t          d| j        |                     t          S )NSubr9   r   r;   r   r   r:   rC   s     r
   __isub__zPatch.__isub__V   /    
5$. N N NOOOr   c                 n    | j                             t          d| j        |                     t          S )NMulr9   rH   rC   s     r
   __imul__zPatch.__imul__Z   rJ   r   c                 n    | j                             t          d| j        |                     t          S )NDivr9   rH   rC   s     r
   __itruediv__zPatch.__itruediv__^   rJ   r   c                 <    |                      |           t          S )N)E)r"   r:   rC   s     r
   __ior__zPatch.__ior__b   s    er   c                 d    | j                             t          d| j        |                     dS )z!Add the item to the end of a listAppendr9   Nr   r;   r   r   r&   s     r
   r;   zPatch.appendf   0    
8T^4 P P PQQQQQr   c                 d    | j                             t          d| j        |                     dS )z#Add the item to the start of a listPrependr9   NrV   r&   s     r
   prependzPatch.prependj   s0    
9dnD Q Q QRRRRRr   c                 f    | j                             t          d| j        ||                     dS )z#Add the item at the index of a listInsert)r2   indexNrV   )r   r]   r'   s      r
   insertzPatch.insertn   s=    xt5III	
 	
 	
 	
 	
r   c                 `    | j                             t          d| j                             dS )zRemove all items in a listClearNrV   r   s    r
   clearzPatch.cleart   s+    
7DN C CDDDDDr   c                 `    | j                             t          d| j                             dS )z(Reversal of the order of items in a listReverseNrV   r   s    r
   reversezPatch.reversex   s+    
9dn E EFFFFFr   c                     t          |t          t          f          st          | d          | j                            t          d| j        |                     dS )z&Add all the items to the end of a listz should be a list or tupleExtendr9   N)r   r@   rA   r   r   r;   r   r   r&   s     r
   rB   zPatch.extend|   s^    $u.. 	At???@@@
8T^4 P P PQQQQQr   c                 d    | j                             t          d| j        |                     dS )z-filter the item out of a list on the frontendRemover9   NrV   r&   s     r
   removezPatch.remove   rW   r   c                     |pi }|                     |           | j                            t          d| j        |                     dS )z9Merge a dict or keyword arguments with another dictionaryMerger9   N)r"   r   r;   r   r   )r   rR   Fr2   s       r
   r"   zPatch.update   sH    RQ
7DN% P P PQQQQQr   c                      t          d          )NzOsort is reserved for future use, use brackets to access this key on your object)KeyErrorr   s    r
   sortz
Patch.sort   s    ]
 
 	
r   c                     d| j         dS )N__dash_patch_update)rq   
operations)r   r   s    r
   to_plotly_jsonzPatch.to_plotly_json   s    #8*
 
 	
r   )NNr   )__name__
__module____qualname____doc__r   r    r$   r(   r,   r3   r6   r/   r5   rE   rI   rM   rP   rS   r;   rZ   r^   ra   rd   rB   ri   r"   ro   rs   r   r   r
   r   r      s        	" 	" 	" 	"  ! ! !D D D& & &) ) )  
 
 
N N N          R R RS S S
 
 
E E EG G GR R RR R RR R R R
 
 


 
 
 
 
r   r   N)r   objectr:   r   r   r   r   r
   <module>ry      sr   O O O 	B B B
I
 I
 I
 I
 I
 I
 I
 I
 I
 I
r   