
    XaJj:                        d Z dZddlZddlZddlZddlZddlZddlZddlm	Z	 ddlm
Z
mZmZmZ ej                  Z ej                  d      Zej"                  dz  dz   ej"                  ej"                   dz
  ej$                  j&                  ej$                  j(                  ej$                  j*                  ej,                  ej.                  ej0                  d	d

Zd Zd Zd Zd Z G d d      Zd Z G d de      Z y)z
Helper module that will enable lazy imports of Cocoa wrapper items.

This improves startup times and memory usage, at the cost
of not being able to use 'from Cocoa import *'
)ObjCLazyModulecreateFrameworkDirAndGetattr    N)ChainMap)getClassList
loadBundlelookUpClassnosuchclass_errorz^[A-Za-z_][A-Za-z_0-9]*$      l    )
	ULONG_MAXLONG_MAXLONG_MINDBL_MAXDBL_MINDBL_EPSILONFLT_MAXFLT_MINz	objc.NULL
UINT32_MAXc                 `    | j                  d      \  }}}t        |      dz  t        |      z   S )N.d   )	partitionint)valuemajor_minors       Z/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/objc/_lazyimport.py_deprecation_levelr   &   s.    ooc*OE1eu:c%j((    c                     t         j                  j                  dk7  rZt        t         j                  j                        |k\  r3t	        j
                  d| |dz  |dz  fz  t         j                  d       y y y )Nz0.0z%r is deprecated in macOS %d.%dr   r
   )
stacklevel)objcoptionsdeprecation_warningsr   warningswarnApiDeprecationWarning)namedeprecation_versions     r   _check_deprecatedr+   +   sn    ))U2t||@@AEXX-(3.0Cc0IJK&&		
 Y 	3r    c                     | j                  d      r,t        j                  d| dd j                  d            \  } | S d| v sd| v rt	        |       } | S t        |       } | S )N'z>lr   latin1r   e)
startswithstructunpackencodefloatr   )vals    r   	_prs_enumr7   8   sg    
~~ctS2Y%5%5h%?@ J 
sczCj
 J #hJr    c                     |t        | i |d      }|S 	 t        | i |d      }|S # t        $ r t        | i |d      }Y |S w xY w)NF)bundle_pathscan_classes)bundle_identifierr:   )r   ImportError)frameworkNameframeworkIdentifierframeworkPathbundles       r   _loadBundlerA   E   so    "2=u
$ M	"5"	F M  	r}5F M	s   & AAc                       e Zd ZdZd Zd Zy)_GetAttrMap_getattrc                     || _         y NrD   )selfgetattr_funcs     r   __init__z_GetAttrMap.__init___   s	    $r    c                 f    |dk(  rd S 	 | j                  |      S # t        $ r t        |      w xY w)NCFSTRc                 "    | j                         S rG   )decode)vs    r   <lambda>z)_GetAttrMap.__getitem__.<locals>.<lambda>d   s
    QXXZr    )rE   AttributeErrorKeyError)rH   keys     r   __getitem__z_GetAttrMap.__getitem__b   s<    '>''	 ==%% 	 3-	 s    0N)__name__
__module____qualname__	__slots__rJ   rT    r    r   rC   rC   \   s    I% r    rC   c                   
 ||t        | ||      xd<   nd|i }|d<   j                  |j                  di              |j                  d      |j                  di       |j                  di       |j                  d      |j                  d	i       |j                  d
      |j                  d      
|j                  di       |j                  d      fd}fd}
f
d
fdfd}	t        t	        |             |	|j                  d             |_        |_        ||fS )a7  
    Load the specified framework and return ``__dir__`` and ``__getattr__`` for the
    framework bindings.

    The result should be assigned to module constants, e.g. in SomeFramework.py use:

       __dir__, __getattr__ = objc.createFrameworkDirAndGetattr("SomeFramework", "...", "...", globals(), ...)
    N
__bundle____framework_identifier__misc	constantsdeprecated_constantsconstants_dictenumsdeprecated_enums	functionsaliasesdeprecated_aliasesexpressionsc                  4    dv rd   S          d<   d   S )N__all__rY   )calc_allglobals_dicts   r   __dir__z-createFrameworkDirAndGetattr.<locals>.__dir__   s-    $	**"**YI&&r    c                 x   | dk(  r        }|| <   |S | j                  d      sD ]  }	 t        ||       }|| <   |c S  t        j	                  |       st        |       	  |       }|| <   |S # t        $ r Y Uw xY w# t        $ r Y nw xY w	 t        |       }|| <   |S # t        $ r Y t        |       w xY w)Nrh   r   )r1   getattrrQ   _name_rematchr   r	   )r)   r   pri   get_constantrj   parentss      r   __getattr__z1createFrameworkDirAndGetattr.<locals>.__getattr__   s    9JE!&LL
 s##At,E).L& L	  ~~d# !&&	 &E
 "'LL# &   			%E
 "'LL ! 	 T""	s5   A2#B 2	A>=A>	BBB# #	B98B9c                    
 r&t              D ]  } 	 	|     
 j                          r)t        j                  d      D ]  \  } }| s		 	|      dr&t        j                  d      D ]  \  } }	 	|      d
r&t        
      D ]  } 	 	|     
 
j                          d rt              D ]  } 	 	|     
 g rt              D ]  } 	 	|     
 g t               }|j                         D ]  }	 |j                  |j                           |j                  d t        d      D               t        |D ch c]  }|j                  d      r| c}      S # t        $ r Y bw xY w# t        $ r Y ?w xY w# t        $ r Y $w xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r Y w xY w# t        $ r |j                  t        |             Y w xY wc c}w )Nz \$([A-Z0-9a-z_]*)(@[^$]*)?(?=\$) z\$([A-Z0-9a-z_]*)@([^$]*)(?=\$)c              3   j   K   | ]+  }|j                   j                         s|j                    - y wrG   )rU   isidentifier).0clss     r   	<genexpr>zAcreateFrameworkDirAndGetattr.<locals>.calc_all.<locals>.<genexpr>#  s(      
$6S#,,:S:S:UCLL$6s   33Tr   )listrR   clearrefindallsetupdaterh   rQ   dirr   sortedr1   )nm_tp_val	all_namesrp   rO   rd   enummaprf   expressions_mappingfuncmaprj   inline_listrr   varmap
varmap_dcts         r   ri   z.createFrameworkDirAndGetattr.<locals>.calc_all   s5    :&'+ ' ::&I6RC '+ S FJJ'I7SD'+ T G7m'+ $ MMO;''+ (
 K7m'+ $
 GE	 	& A)  +  	 
$0$6
 	
 )E)Q1<<3Dq)EFFQ                   " )  Q() Fs   E%E54FF8F%F4<GG,G,%	E21E25	FF	FF	F"!F"%	F10F14	G ?G #G)(G)c                    rz| v rv|    }|j                  d      r|dd  }d}n|j                  d      r|dd  }d}nd}t        j                  | ||      }j                  |        | v rt	        | |           |S rt        j                  d|  d      }|}|j                  d      }|sd}n|dd  }i }|j                  d      rd}|dd  }n|j                  d      r|dd  }d}nd}t        j                  | ||      }| v rt	        | |           |S rKt        j                  d|  d	      }|/t        |j                  d            }| v rt	        | |           |S rg| v rc|    }| f|z   g}i }t        j                  ||       | |v rj                  |        ||    S "t        j                  ||d
       | |v r||    S r*| v r&|    }	 t        |i       }j                  |        |S 	rG| 	v rC	|    }	j                  |        |t        v r
t        |   }n	 |   }| 
v rt	        | 
|           |S t        |       #  Y XxY w# t        $ r t        |       w xY w)Nz==r
   =r   r   z\$z(@[^$]*)?\$@z
@([^$]*)\$T)skip_undefined)r1   r#   _loadConstantpopr+   r}   searchgroupr7   loadBundleFunctionsloadFunctionListeval_DEFAULT_ALIASESrR   rQ   )r)   tpmagicresultmdinfo	func_listaliasrd   aliases_deprecatedr@   enum_deprecatedr   rf   r   r   r   r   r   varmap_deprecateds            r   rq   z2createFrameworkDirAndGetattr.<locals>.get_constant)  s   z!%==&ABBE]]3'ABBEE++D"e<t$,,%d,=d,CD		Rv[16:A}WWQZBABB==&EABB]]3'ABBEE++D"e<,,%d,=d,CD		RvZ0':A}"1771:.?*%dOD,ABwt}"Wt^,	((I>19KK%T7N*))#Q	$ qy w{""4(!$,?@FOOD)!M wD!,,-e4F3!4U!; --%d,>t,DET"") $ 3,T223s   I *I II+c                    | sy | D ]  \  }}}}|rN|j                  d      D ]  }	 t        j                  |       |} n 	 t        j                  ||d |      }|	|<   X|d }n	 |   }| |t        j                  ||d d      }|	|<   t        j                  || |             }|	|<    y # t        j                  $ r Y w xY w# t        j
                  $ r Y w xY w# t        $ r d }Y w xY w)N,NSCFType)splitr#   r   errorregisterCFSignaturer	   rR   )
cftypesr)   typestrgettypeid_functollfreer   rO   funcr   rj   s
           r   load_cftypesz2createFrameworkDirAndGetattr.<locals>.load_cftypes  s,   7>3D'>8"..-B((, $& .00whOA)*L& % .~>D |
 #00wjQA)*L&((w?A!"LM 8?
  ::  --     D s5   B0C	%C"0CC	CC"C0/C0r   )rA   r   getr   rC   _pyobjc_parents_pyobjc_funcmap)r)   r>   r?   rj   metadictr   rr   rk   rs   r   rd   r   r@   ri   r   r   rf   r   r   rq   r   r   r   s      ` ``   @@@@@@@@@@@@@r   r   r   k   s`   , &-*C.9%}/
 	
l+ /BL+,VR01\\+&F %;R@.3Jll7#Gll#5r:Oll;'Gll9%G!&:B? ,,}-K'.#`SG SGjc# c#J*#X #<[1IJi()")K")KKr    c                   ,     e Zd ZdZ	 	 	 	 d fd	Z xZS )r   a  
    A module type that loads PyObjC metadata lazily, that is constants, global
    variables and functions are created from the metadata as needed. This
    reduces the resource usage of PyObjC (both in time and memory), as most
    symbols exported by frameworks are never used in programs.

    The loading code assumes that the metadata dictionary is valid, and invalid
    metadata may cause exceptions other than AttributeError when accessing module
    attributes.
    c           	         t         |   |       t        |||| j                  |||      \  | _        | _        |dz   }t        t        j                  j                               D ]h  }	t        |	d      s|	j                  |      s"|	t        |      d  }
d|
v r5t        j                  |	   It        j                  |	   | j                  |
<   j |r| j                  j                  |       y y )N)r)   r>   r?   rj   r   rr   r   r   r1   )superrJ   r   __dict__rk   rs   r{   sysmoduleskeyshasattrr1   lenr   )rH   r)   r>   r?   r   r   initialdictrr   pfxr   rest	__class__s              r   rJ   zObjCLazyModule.__init__  s     	)E 3'#*
&d& Sjs{{'')*B r<(R]]3-?#c(*~$;;;r?.*-++b/DMM$' + MM  - r    )NNNrY   )rU   rV   rW   __doc__rJ   __classcell__)r   s   @r   r   r     s     	  &. &.r    r   )!r   rh   r}   r2   r   r&   r#   typescollectionsr   r   r   r   r	   
ModuleTypecompilern   maxsize
float_infomaxminepsilon_FLT_MAX_FLT_MINNULLr   r   r+   r7   rA   rC   r   r   rY   r    r   <module>r      s    = 	  
      I I
2::01 ++/Q&q ~~!!~~!!>>))}}}} )



.   U p
2.Z 2.r    