
    f'                         S SK r S SKJr  S SKJr  S SKJrJrJr  S r	S r
S rS rS	 r " S
 S\5      r " S S\5      r " S S\5      rS r " S S\5      rS/rg)    N)abc)partial)GLibGObjectGioc                 |   S n[        U [        R                  5      (       a  U R                  US 5      nO[	        XS 5      nUc  [        SU-  5      eSn[        U[        R                  5      (       a*  [        U5      S:X  a  [        SU-  5      eUSS  nUS   nX#4$ [        U5      (       d  [        SU-  5      eX#4$ )NzHandler %s not found r   z!Handler %s tuple can not be empty   z-Handler %s is not a method, function or tuple)

isinstancer   MappinggetgetattrAttributeErrorSequencelen	TypeErrorcallable)
obj_or_maphandler_namehandlerargss       1/usr/lib/python3/dist-packages/gi/_gtktemplate.py_extract_handler_and_argsr      s    G*ckk**..t4*D93lBCCD'3<<((w<1?'IJJqr{!*
 = gG'QRR=    c                  b   ^ SSK Jm   " U4S jS[        R                  TR                  5      n U $ )Nr   Gtkc                   :   >^  \ rS rSrSU 4S jjrU4S jrSrU =r$ )*define_builder_scope.<locals>.BuilderScope5   c                 .   > [         TU ]  5         Xl        g N)super__init___scope_object)selfscope_object	__class__s     r   r$   3define_builder_scope.<locals>.BuilderScope.__init__7   s    G!-r   c                 .  > UR                  5       =(       d    U R                  nU R                  (       dK  UR                  5       nX%R                  ;  a  g UR                  R	                  U5        UR                  U   nOU R                  nUn[        UTR                  R                  -  5      nU(       a&  [        S[        R                  R                  -  5      e[        XV5      u  pU(       a  [        U/U	Q7SU06n
O[        U/U	Q76 n
SU
l        U
$ )N%r not supported	swap_dataT)get_current_objectr%   __gtktemplate_methods____gtktemplate_handlers__addintBuilderClosureFlagsSWAPPEDRuntimeErrorr   ConnectFlagsr   r   __gtk_template__)r&   builder	func_nameflagsobjcurrent_objectr   swappedr   r   pr   s              r   do_create_closure<define_builder_scope.<locals>.BuilderScope.do_create_closure;   s    $779OT=O=ON%%!(!;!;!=$J$JJ77;;IF-EEiP!%!3!3(%#"9"9"A"AABG"&)=)=)E)EEG G 6nSMGG:d:c:G+d+!%AHr   )r%   r"   )__name__
__module____qualname____firstlineno__r$   r>   __static_attributes____classcell__)r(   r   s   @r   BuilderScoper   5   s    	.	 	r   rF   )gi.repositoryr   r   rF   )rF   r   s    @r   define_builder_scoperH   2   s'    !"w(8(8 "H r   c                 `   X6R                   ;  a  g UR                   U   nU R                  UR                  5      nUR                  R	                  U5        [        X5      n	[        U[        R                  R                  -  5      n
[        U[        R                  R                  -  5      nU(       a&  [        S[        R                  R                  -  5      eUb*  U
(       a  UR                  nOUR                  nU" X)U5        g U
(       a  UR                  nOUR                  nU" X)5        g )Nr+   )r.   
get_object__gtype_name__r/   r0   r   r1   r   r5   AFTERr3   r4   connect_object_afterconnect_objectconnect_afterconnect)r7   r:   signal_namer   rN   r9   clsmethod_nametemplate_instr   afterr<   funcs                r   connect_funcrW   \   s     666--l;K&&s'9'9:M**..|<m1G,,2223E%'..6667G!5!5!=!==? 	? !++D%%D[>2$$D;;D["r   c           	        ^ ^
 SSK Jn  0 n0 n[        T R                  R	                  5       5       H  u  pE[        U[        5      (       aM  [        T XER                  5        UR                  nUc  UnXb;   a  X&   n[        SU< SU< SU< 35      eXBU'   Mg  [        U[        5      (       d  M~  UR                  nUc  UnX;   a  X8   n[        SU< SU< SU< 35      eXCU'   T R                  XR                  S5        M     UT l        UT l        UR                   S:X  a!  [#        5       n	T R%                  U	" 5       5        OT R'                  [(        T 5        T R*                  m
U
U 4S jT l        T R,                  T l        g )	Nr   r   zError while exposing handler z as z, already available as zError while exposing child z4.0c                    > [        U TT5      $ r"   )init_template)sbase_init_templaterR   s    r   <lambda>#register_template.<locals>.<lambda>   s    -3(:;r   )rG   r   list__dict__itemsr   	CallThingsetattr_func_namer4   Childbind_template_child_full	_internalr.   __gtktemplate_widgets___versionrH   set_template_scopeset_connect_funcrW   rZ   __dontuse_ginstance_init__)rR   r   bound_methodsbound_widgets	attr_namer:   r   old_attr_namewidget_namerF   r\   s   `         @r   register_templaters   {   sj   !MMs||1134	c9%%CII.99L#(, - ;" %i@A A
 /8l+U##))K"'+ - :" $Y?@ @
 .7k*,,[--K9 5< #0C"/C
||u+-|~.\3/**; " 66Cr   c                 x   S U l         U R                  ULa  [        S5      e[        5       U l        U" U 5        U R
                  R                  5        H#  u  p4U R                  X5      U R                  U'   M%     U R                  R                  5        H"  u  pTXPR                  ;  d  M  [        SU-  5      e   g )Nc                      g r"   r	   r	   r   r   r]   init_template.<locals>.<lambda>   s    r   zRInheritance from classes with @Gtk.Template decorators is not allowed at this timezUHandler '%s' was declared with @Gtk.Template.Callback but was not present in template)rZ   r(   r   setr/   ri   ra   get_template_childr`   r.   r4   )r&   rR   r\   rr   rp   r   s         r   rZ   rZ      s    %D~~S *+ 	+ %(ED!t"&">">"D"D"F#'#:#:3#Li  #G $(#?#?#E#E#G<<<24@AB B $Hr   c                       \ rS rSrSS jrSrg)rf      Nc                 h    Xl         UR                  SS5      U l        U(       a  [        SU-  5      eg )NinternalFzUnhandled arguments: %r)re   poprh   r   )r&   namekwargss      r   r$   Child.__init__   s2    
J65>?? r   )rh   re   r"   r@   rA   rB   rC   r$   rD   r	   r   r   rf   rf      s    @r   rf   c                       \ rS rSrS rSrg)rb      c                     Xl         X l        g r"   )re   rd   )r&   r~   rV   s      r   r$   CallThing.__init__   s    

r   )rd   re   Nr   r	   r   r   rb   rb      s    r   rb   c                   $    \ rS rSrSS jrS rSrg)Callback   Nc                     Xl         g r"   re   )r&   r~   s     r   r$   Callback.__init__   s    
r   c                 .    [        U R                  U5      $ r"   )rb   re   )r&   rV   s     r   __call__Callback.__call__   s    T**r   r   r"   )r@   rA   rB   rC   r$   r   rD   r	   r   r   r   r      s    +r   r   c                      [         R                  " U [         R                  R                  5        g! [        R
                   a2    [         R                  " U [         R                  R                  5         gf = f)z4Raises GLib.Error in case the resource doesn't existN)r   resources_get_infoResourceLookupFlagsNONEr   Errorresources_lookup_data)paths    r   validate_resource_pathr      sW    FtS%<%<%A%AB:: F 	!!$(?(?(D(DE	Fs   /2 AA87A8c                   X    \ rS rSrS r\S 5       r\S 5       r\S 5       r\	r	\
r
S rSrg)	Template   c                    S U l         S U l        S U l        SU;   a  UR                  S5      U l         OESU;   a  UR                  S5      U l        O(SU;   a  UR                  S5      U l        O[	        S5      eU(       a  [	        SU-  5      eg )Nstringfilenameresource_pathzHRequires one of the following arguments: string, filename, resource_pathzUnhandled keyword arguments %r)r   r   r   r}   r   )r&   r   s     r   r$   Template.__init__   s    !v **X.DK6!"JJz2DM&!'O!<D23 3 <vEFF r   c                     U " US9$ )N)r   r	   )rR   r   s     r   	from_fileTemplate.from_file   s    H%%r   c                     U " US9$ )N)r   r	   )rR   r   s     r   from_stringTemplate.from_string  s    &!!r   c                     U " US9$ )N)r   r	   )rR   r   s     r   from_resourceTemplate.from_resource  s    //r   c                    SSK Jn  [        U[        5      (       a  [	        XR
                  5      (       d  [        S5      eSUR                  ;  a  [        SUR                  -  5      e[        US5      (       a  [        S5      eU R                  bo  U R                  n[        U[        5      (       d  UR                  S5      n[        R                  R                  U5      nUR!                  U5        [#        U5        U$ U R$                  b=  ['        U R$                  5        UR)                  U R$                  5        [#        U5        U$ U R*                  c   e[,        R.                  R1                  [2        R4                  " U R*                  5      5      n[        R                  R                  UR7                  5       S	   5      nUR!                  U5        [#        U5        U$ )
Nr   r   z%Can only use @Gtk.Template on WidgetsrK   zS%r does not have a __gtype_name__. Set it to the name of the class in your templater.   zCannot nest template classeszutf-8r
   )rG   r   r   type
issubclassWidgetr   r`   r@   hasattrr   bytesencoder   Bytesnewset_templaters   r   r   set_template_from_resourcer   r   Filenew_for_pathosfspathload_contents)r&   rR   r   databytes_file_s         r   r   Template.__call__  sv   %#t$$JsJJ,G,GCDD3<</025,,?@ @ 3122:;;;;";;DdE**{{7+ZZ^^D)FV$c"J+"4#5#56**4+=+=>c"J==,,,HH))"))DMM*BCEZZ^^E$7$7$9!$<=FV$c"Jr   )r   r   r   N)r@   rA   rB   rC   r$   classmethodr   r   r   r   rf   r   rD   r	   r   r   r   r      sU    G$ & & " " 0 0 HE!r   r   )r   collectionsr   	functoolsr   rG   r   r   r   r   rH   rW   rs   rZ   objectrf   rb   r   r   r   __all__r	   r   r   <module>r      sv   ( 
   , ,.'T#>27jB,@F @ +v +	FEv EP ,r   