
    XaJj/                     z    d Z ddlZdZdddiiZ e       ZdZd Z G d d	      Zd
 Z	d Z
eej                  _        y)a  
Implementation of `__new__` for arbitrary Cocoa classes

The __new__ method just translates invocations into the
corresponding invocation of the Cocoa pattern (
`cls.alloc().init()` or `cls.new()`), based on a mapping
maintaind in this file.

The mapping is updated in two ways:
    1. From framework bindings for native classes
    2. Based on `init` methods in Python subclasses

    N NSObjectinitz.The order of keyword arguments is significant
c                 t   i }t        | j                        D ]  }t        j                  |j                  t
              }|t
        u r0|j                         D ]  \  }}||j                  |d       |s| j                   d||<   n'| j                   ddj                  |      z   dz   ||<   |j                  d      r$||xx   d| ddj                  |       d	z  cc<   ||xx   d
| ddj                  |       d	z  cc<     dj                  t        |j                                     t        z   S )z?
    Calculate the docstring for the __new__
    for *cls*
    Nz():z(*, , z):r   z
   returns cls.alloc().(z)

z
   returns cls. )reversed__mro__NEW_MAPget__name__UNSETitemspopjoin
startswithsortedvalues
DOC_SUFFIX)clsresultcnew_mapkwdsselectors         S/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/objc/_new.pycalculate_new_docr   )   s,   
 Fckk"++ajj%0e%mmoND(

4&"%,,s3t"%,,t4tyyFMt""6*0
!DIIdO;LERS  t"3H:Qtyy>Ou UU . #( 776&--/*+j88    c                   \    e Zd ZdZdZd Zed        Zed        Zed        Zd Zd Z	d	 Z
y
)function_wrapperzU
    Wrapper for the __new__ function to generate the
    docstring dynamically.
    	_function_clsc                      || _         || _        y Nr"   )selffunctionr   s      r   __init__zfunction_wrapper.__init__N   s    !	r   c                 .    | j                   j                  S r&   )r#   	__class__r'   s    r   r+   zfunction_wrapper.__class__R   s    ~~'''r   c                 ,    t        | j                        S r&   )r   r$   r,   s    r   __doc__zfunction_wrapper.__doc__V   s     ++r   c                 .    | j                   j                  S r&   )r$   
__module__r,   s    r   r0   zfunction_wrapper.__module__Z   s    yy###r   c                     |dk(  r7| j                   j                  xs ddz   | j                   j                  z   dz   S |dk(  ryt        | j                  |      S )N__qualname__objc.z.__new__r   __new__)r$   r0   r   getattrr#   )r'   names     r   __getattr__zfunction_wrapper.__getattr__^   sX    >!%%/369K9KKjX Zt~~t,,r   c                 f    |dv rt         j                  | ||      S t        | j                  ||      S )Nr"   )object__setattr__setattrr#   )r'   r7   values      r   r;   zfunction_wrapper.__setattr__g   s3    ((%%dD%88t~~tU33r   c                 &     | j                   |i |S r&   )r#   )r'   argsr   s      r   __call__zfunction_wrapper.__call__l   s    t~~t,t,,r   N)r   r0   r2   r.   	__slots__r)   propertyr+   r8   r;   r@   r   r   r   r!   r!   F   s^    
 &I ( ( , , $ $-4
-r   r!   c           	         t        |j                               }| j                  D ]E  }t        j	                  |j
                  t              }|t        u r1|j	                  |t              }|t        u rP|J|r0t        | j
                   ddj                  d |D                     t        | j
                   d      t        |t              s || g|i |c S |rt        | j
                   d      |D cg c]  }||   	 }}|j                  d      r@t        |      dk(  s|d   j                         r t        | j                         |      | c S  t        | |      | c S  |dv r t!        j"                  j$                  | fi |S |r0t        | j
                   ddj                  d	 |D                     t        | j
                   d      c c}w )
z;
    Generic implementation for Objective-C `__new__`.
    z&() does not support keyword arguments r   c              3   2   K   | ]  }t        |        y wr&   repr.0ks     r   	<genexpr>znew_func.<locals>.<genexpr>   s     TjfiabUYZ[U\fi   z() requires keyword argumentsz'() does not accept positional argumentsr      ))cobject)c_void_pc              3   2   K   | ]  }t        |        y wr&   rE   rG   s     r   rJ   znew_func.<locals>.<genexpr>   s     Lb^aYZTRSW^arK   )tuplekeysr   r   r   r   r   	TypeErrorr   
isinstancestrr   lenisupperr6   allocr3   objc_objectr5   )r   r?   r   keyr   r   r7   ns           r   new_funcr[   p   s    		
C[[++ajj%0e{{3&5=<||n$J499TjfiTjKjJkl   3<<.0M NOO$$
 +d+d++s||n,STUU!$%AQ%??6"D	Q$q'//:K-7399;-t44 &73%t,,A D ++ ''4t44
||nB499Lb^aLbCbBcd
 	
 3<<.(EFGG' &s   >Gc                 "    t        t        |       S r&   )r!   r[   )r   s    r   make_generic_newr]      s    Hc**r   )r.   r3   __all__r   r:   r   r   r   r!   r[   r]   options_genericNewClassr   r   r   <module>ra      s`    
 V
 	 ?
9:'- '-T4Hn+ !1 r   