
    XaJj\                         d Z dZddlZddlmZmZmZmZ d Z	ddZ
d Zde	fd	e
fd
effZd Zd ZddZd Z e       ZefdZd Zedefdefdefdefdefdeffz   ZddZy)z.
Convenience methods for Cocoa mapping types.
)addConvenienceForBasicMapping    N)	CLASS_ABCaddConvenienceForClasscontainer_unwrapcontainer_wrapc                 X    | j                  t        |            }t        |t        |      S N)objectForKey_r   r   KeyErrorselfkeyress      c/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/objc/_convenience_mapping.py__getitem__objectForKey_r      s&    


^C0
1CC3//    c                 B    | j                  t        |            }||}|S r	   r
   r   r   r   dfltr   s       r   get_objectForKey_r      s&    


^C0
1C
{Jr   c                 >    | j                  t        |            }|d uS r	   r   r   s      r   contains_objectForKey_r      s!    


^C0
1Cd?r   __getitem__get__contains__c                 8    | j                  t        |             y r	   )removeObjectForKey_r   )r   r   s     r   __delitem__removeObjectForKey_r   )   s    ^C01r   c                    t        |      dk(  rnct        |      dk7  rt        dt        |             |d   }t        |d      r|j                         D ]
  }||   | |<    n|D ]
  \  }}|| |<    |D ]
  }||   | |<    y )Nr      z)update expected at most 1 arguments, got keys)len	TypeErrorhasattrr"   )r   argskwdsotherr   valueks          r   update_setObject_forKey_r+   -   s    
4yA~	TaCCI;OPP Q5&! zz|!#JS	 $ $
U!S	 $ q'Q r   c                 :    	 | |   S # t         $ r
 || |<   |cY S w xY wr	   )r   )r   r   r   s      r   setdefault_setObject_forKey_r-   C   s.    Cy S	s    c                 L    | j                  t        |      t        |             y r	   )setObject_forKey_r   )r   r   r)   s      r   __setitem__setObject_forKey_r0   K   s    >%0.2EFr   c                 d    	 | |   }| |= |S # t         $ r |t        k(  rt        |      |}Y |S w xY wr	   )r   _pop_setObject_dfltr   s       r   pop_setObject_forKey_r3   R   sN    3i IJ  &&3- Js    //c                 0   	 | j                         }t        |j                         t              }|t        | j	                  |      t
              f}| j                  |       |S # t        t        f$ r" t        dt        |       j                         w xY w)Nzpopitem on an empty )
keyEnumeratorr   
nextObjectStopIterationr
   r   r   
IndexErrortype__name__)r   itr*   results       r   popitem_setObject_forKey_r=   ^   s    !R]]_m< %d&8&8&;XFG  # :& E-d4j.A.A-BCDDEs   .A$ $1B__delitem____setitem__update
setdefaultpoppopitemc                    t        | |rt        nt               	 t        |    }|j                  |rt        j                  j                         yt        j                  j                         y# t        $ r g x}t        | <   Y aw xY w)z
    Add the convenience methods for a Cocoa mapping type

    Used to add the basic collections.abc.Mapping or collections.abc.MutableMapping
    APIs to a Cocoa class that has an API similar to NSDictionary.
    N)
r   _CONVENIENCES_MAPPING_RO_CONVENIENCES_MAPPING_RWr   r   appendcollectionsabcMappingMutableMapping)	classnamereadonlylsts      r   r   r   t   so     x+=U(	" JJ({&&W8V8VW  (%''i	"(s   	A. .BBr	   )T)__doc____all__collections.abcrH   objc._conveniencer   r   r   r   r   r   r   rE   r   r+   r-   r0   objectr2   r3   r=   rF   r    r   r   <module>rU      s    -  0
 ,-
+, 2,G h  +> 		 42301'(/0
!")*7  Xr   