
    gi<d                        d dl Z d dlZd dlmZ d dlZd dlmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ ej"                  j%                  d	      Zg Zd d
lmZ eZdD ]1  Z ee
e       e       e<    ed	edez          ej5                  e       3 dD ]^  Z ej6                         5   ej8                  de        ee
e       e       e<   ddd        ed	edez          ej5                  e       ` dD ]F  Zej;                  dd      d   Z ee
e       e       e<    ed	edez          ej5                  e       H dD ]F  Zej;                  dd      d   Z ee
e       e       e<    ed	edez          ej5                  e       H ej?                  d      Z ej?                  d      Z!ej?                  d      Z"ej?                  d      Z#ej?                  d      Z$ej?                  d      Z%ej?                  d      Z&ej?                  d      Z'ej?                  d      Z(ej?                  d      Z)ej?                  d      Z*ej?                  d      Z+ej?                  d       Z,ej?                  d!      Z-ej?                  d"      Z.ej?                  d#      Z/ej?                  d$      Z0ej?                  d%      Z1ej?                  d&      Z2ej?                  d'      Z3ej?                  d	      Z4ej?                  d(      Z5ej?                  d)      Z6ej?                  d*      Z7ej?                  d+      Z8ej?                  d,      Z9ejt                  jv                  Z<e'Z=eg d-z  Zd.D ]1  Z ee
e       e       e<    ed	edez          ej5                  e       3 d/D ]P  Zej;                  dd      d   Z eej|                  e       e       e<    ed	ed0ez          ej5                  e       R ej|                  j~                  ej|                  j                  z  ZA ed	d1d2       ej5                  d1       d3D ]P  Zej;                  dd      d   Z eej                  e       e       e<    ed	ed4ez          ej5                  e       R ej                  ZCej                  ZDej                  ZEej                  ZFej                  ZGej                  ZHej                  ZIej                  ZJej                  ZKeg d5z  Zd6d7iZLej                  ZMej                  ZNej                  ZOe
j                  ZPej                  ZQeg d8z  Z G d9 d:ejt                        Z: ee:      Z:ej5                  d:       d; Zej5                  d<       d= ZRej5                  d>       d? ZSd@ ZTej5                  dA       dB ZUej5                  dC       dD ZVej5                  dE        edFg dG      ZWdldHZXej5                  dI        G dJ dK      ZYdL ZZej5                  dM       dN Z[ej5                  dO       dP Z\ej5                  dQ       dldRZ]ej5                  dS       dldTZ^ej5                  dU       ej                  Z_ej                  Z`edVdWgz  Z G dX dY      ZadZ Zb G d[ d\ej                        Zc eec      ZcecZGed	d\gz  Z G d] d^ej                        Zd eed      Zdej5                  d^       ej                  Zeej                  Zfej                  ZgeeZh ed	d_d`       eg daz  Ze G db dcej                               ZieiZj ed	ddde       edddcgz  Ze G df dgej                               Zkej5                  dg       e G dh diej                               Zlej5                  di        G dj dkem      Znej5                  dk       y# 1 sw Y   xY w)m    N)
namedtuple)overridedeprecated_attr)GLib)PyGIDeprecationWarning)_propertyhelper)_signalhelper)_giGObject)_option)markup_escape_textget_application_nameset_application_nameget_prgnameset_prgname
main_depthfilename_display_basenamefilename_display_namefilename_from_utf8uri_list_extract_urisMainLoopMainContextmain_context_defaultsource_removeSourceIdleTimeoutPollFDidle_addtimeout_addtimeout_add_secondsio_add_watchchild_watch_addget_current_timespawn_asynczGLib.)*PRIORITY_DEFAULTPRIORITY_DEFAULT_IDLEPRIORITY_HIGHPRIORITY_HIGH_IDLEPRIORITY_LOWIO_INIO_OUTIO_PRIIO_ERRIO_HUPIO_NVALIO_STATUS_ERRORIO_STATUS_NORMALIO_STATUS_EOFIO_STATUS_AGAINIO_FLAG_APPENDIO_FLAG_NONBLOCKIO_FLAG_IS_READABLEIO_FLAG_IS_WRITEABLEIO_FLAG_IS_SEEKABLEIO_FLAG_MASKIO_FLAG_GET_MASKIO_FLAG_SET_MASKSPAWN_LEAVE_DESCRIPTORS_OPENSPAWN_DO_NOT_REAP_CHILDSPAWN_SEARCH_PATHSPAWN_STDOUT_TO_DEV_NULLSPAWN_STDERR_TO_DEV_NULLSPAWN_CHILD_INHERITS_STDINSPAWN_FILE_AND_ARGV_ZEROOPTION_FLAG_HIDDENOPTION_FLAG_IN_MAINOPTION_FLAG_REVERSEOPTION_FLAG_NO_ARGOPTION_FLAG_FILENAMEOPTION_FLAG_OPTIONAL_ARGOPTION_FLAG_NOALIASOPTION_ERROR_UNKNOWN_OPTIONOPTION_ERROR_BAD_VALUEOPTION_ERROR_FAILEDOPTION_REMAININGglib_versionignore)	G_MININT8	G_MAXINT8
G_MAXUINT8
G_MININT16
G_MAXINT16G_MAXUINT16
G_MININT32
G_MAXINT32G_MAXUINT32
G_MININT64
G_MAXINT64G_MAXUINT64_   )
G_MINFLOAT
G_MAXFLOATG_MINDOUBLEG_MAXDOUBLE
G_MINSHORT
G_MAXSHORTG_MAXUSHORTG_MININTG_MAXINT	G_MAXUINT	G_MINLONG	G_MAXLONG
G_MAXULONG	G_MAXSIZE
G_MINSSIZE
G_MAXSSIZEG_MINOFFSETG_MAXOFFSETinvalidvoid
GInterfacegcharguchargbooleangintguintglonggulonggint64guint64GEnumGFlagsgfloatgdouble
gchararraygpointerGBoxedGParamPyObjectGTypeGStrvGVariantGString)TYPE_BOOLEAN
TYPE_BOXED	TYPE_CHARTYPE_DOUBLE	TYPE_ENUM
TYPE_FLAGS
TYPE_FLOATTYPE_GSTRING
TYPE_GTYPETYPE_INT
TYPE_INT64TYPE_INTERFACETYPE_INVALID	TYPE_LONG	TYPE_NONETYPE_OBJECT
TYPE_PARAMTYPE_POINTERTYPE_PYOBJECTTYPE_STRING	TYPE_STRV
TYPE_UCHAR	TYPE_UINTTYPE_UINT64
TYPE_ULONGTYPE_UNICHAR
TYPE_VALUETYPE_VARIANT)PidGErrorOptionGroupOptionContext)PARAM_CONSTRUCTPARAM_CONSTRUCT_ONLYPARAM_LAX_VALIDATIONPARAM_READABLEPARAM_WRITABLEzGObject.ParamFlags.PARAM_READWRITEzGObject.ParamFlags.READWRITE)SIGNAL_ACTIONSIGNAL_DETAILEDSIGNAL_NO_HOOKSSIGNAL_NO_RECURSESIGNAL_RUN_CLEANUPSIGNAL_RUN_FIRSTSIGNAL_RUN_LASTzGObject.SignalFlags.)	r   r~   r   rt   r   GObjectWeakRefGPointerr   Warningzgeneric-c-marshallerT)featureslist_propertiesnewpygobject_versionthreads_inittype_registerc                   B    e Zd Zd	dZed        Zd Zd Zd Zd Z	d Z
y)
ValueNc                     t         j                  j                  |        |&| j                  |       || j	                  |       y y y N)GObjectModuler   __init__init	set_value)self
value_typepy_values      6/usr/lib/python3/dist-packages/gi/overrides/GObject.pyr   zValue.__init__A  sD    $$T*!IIj!#x( $ "    c                 ,    t        j                  |       S r   )r
   _gvalue_get_typer   s    r   __g_typezValue.__g_typeH  s     ##D))r   c                     | j                   j                  t              st        j                  dt
        d       t        j                  | |       y )Nz2Calling set_boxed() on a non-boxed type deprecated   
stacklevel)_Value__g_typeis_ar   warningswarnr   r
   _gvalue_set)r   boxeds     r   	set_boxedzValue.set_boxedN  s9    }}!!*-MMD& 	e$r   c                     | j                   j                  t              st        j                  dt
        d       t        j                  |       S )Nz2Calling get_boxed() on a non-boxed type deprecatedr   r   )r   r   r   r   r   r   r
   _gvalue_getr   s    r   	get_boxedzValue.get_boxedZ  s:    }}!!*-MMD&
 t$$r   c                    | j                   }|t        k(  r| j                  |       y |t        k(  r| j	                  |       y |t
        k(  rBt        |t              s|t        d| t        |             t        j                  | |       y |t        k(  r| j                  |       y |j                  t              r| j!                  |       y |t"        k(  r| j%                  |       y |t&        k(  r| j)                  |       y |t*        k(  r| j-                  |       y 	 t        j                  | |       y # t        $ r |t.        k(  rt        d       w xY w)NzExpected string but got z+GObject.Value needs to be initialized first)r   r   set_charr   	set_ucharr   
isinstancestr	TypeErrortyper
   r   r   	set_paramr   r   	set_flagsr   set_pointerr   	set_gtyper   set_variantr   )r   r   gtypes      r   r   zValue.set_valuec  s   IMM(#j NN8$k!h,1E":8*T(^DT UVVOOD(+j NN8$ZZ
#NN8$l"X&j NN8$l"X&h/ L(#$QRRs   "D9 9Ec                 8   | j                   }|t        k(  r| j                         S |t        k(  r| j	                         S |t
        k(  r| j                         S |j                  t              r| j                         S |j                  t              r| j                         S |t        k(  r| j                         S |t        k(  r| j                         S |t         k(  r| j#                         S 	 t%        j&                  |       S # t(        $ r |t*        k(  rY y  w xY wr   )r   r   get_charr   	get_ucharr   	get_paramr   r   get_enumr   	get_flagsr   get_pointerr   	get_gtyper   dup_variantr
   r   r   r   )r   r   s     r   	get_valuezValue.get_value  s    I==?"J>>##J>>##::i ==?"::j!>>##L ##%%J>>##L  ##%%	??4(( 	$	s   .D DDc                 X    d| j                   j                   d| j                          dS )Nz<Value (z) >)r   namer   r   s    r   __repr__zValue.__repr__  s*    $--,,-R0@/ACCr   )NN)__name__
__module____qualname__r   propertyr   r   r   r   r   r    r   r   r   r   @  s5    ) * *

%%>8Dr   r   c                 ^    t         j                  |       }|t        k(  rt        d|        |S )Nzunknown type name: )r   type_from_namer   RuntimeErrorr   type_s     r   r  r    s2    ((.E0788Lr   r  c                 X    t         j                  |       }|t        k(  rt        d      |S )Nzno parent for type)r   type_parentr   r  )r  parents     r   r  r    s+    &&u-F/00Mr   r  c                     t        | d      r| j                  } | j                         s| j                         st	        d|        y y )N	__gtype__z/type must be instantiable or an interface, got )hasattrr	  is_instantiatableis_interfacer   r  s    r    _validate_type_for_signal_methodr    sH    uk"""$U-?-?-AI%QRR .B$r   c                 B    t        |        t        j                  |       S r   )r  r   signal_list_idsr  s    r   r  r    s    $U+((//r   r  c                 <    t        |       }t        d |D              S )Nc              3   F   K   | ]  }t         j                  |        y wr   )r   signal_name).0is     r   	<genexpr>z$signal_list_names.<locals>.<genexpr>  s     ;!**1-;s   !)r  tuple)r  idss     r   signal_list_namesr    s    
%
 C;s;;;r   r  c                 D    t        |       t        j                  | |      S r   )r  r   signal_lookupr  s     r   r  r    s    $U+&&tU33r   r  SignalQuery)	signal_idr  itypesignal_flagsreturn_typeparam_typesc           
         |t        | |      } t        j                  |       }|J |j                  dk(  ry t	        |j                  |j
                  |j                  |j                  |j                  t        |j                              S )Nr   )r  r   signal_queryr  r  r  r  r  r   r  r!  )
id_or_namer  ress      r   r#  r#    s}    ":u5


$
$Z
0C??
}} 		coo r   r#  c                       e Zd Zd Zd Zd Zy)_HandlerBlockManagerc                      || _         || _        y r   obj
handler_id)r   r*  r+  s      r   r   z_HandlerBlockManager.__init__  s    $r   c                      y r   r   r   s    r   	__enter__z_HandlerBlockManager.__enter__      r   c                 X    t         j                  | j                  | j                         y r   )r   signal_handler_unblockr*  r+  r   exc_type	exc_value	tracebacks       r   __exit__z_HandlerBlockManager.__exit__
  s    ,,TXXtGr   Nr   r   r   r   r-  r5  r   r   r   r'  r'    s    %Hr   r'  c                 F    t         j                  | |       t        | |      S )a  Blocks the signal handler from being invoked until
    handler_unblock() is called.

    :param GObject.Object obj:
        Object instance to block handlers for.
    :param int handler_id:
        Id of signal to block.
    :returns:
        A context manager which optionally can be used to
        automatically unblock the handler:

    .. code-block:: python

        with GObject.signal_handler_block(obj, id):
            pass
    )r   signal_handler_blockr'  r)  s     r   r8  r8    s!    " &&sJ7Z00r   r8  c                 d    t         j                  | ||      \  }}}|r||fS t        | d|        )a%  Parse a detailed signal name into (signal_id, detail).

    :param str detailed_signal:
        Signal name which can include detail.
        For example: "notify:prop_name"
    :returns:
        Tuple of (signal_id, detail)
    :raises ValueError:
        If the given signal is unknown.
    z: unknown signal name: )r   signal_parse_name
ValueError)detailed_signalr  force_detail_quarkr%  r  details         r   r:  r:  &  sK     +<< 2CF &  
w5o5FG
HHr   r:  c                 P    t        || d      \  }}t        j                  ||       y )NT)r:  r   signal_remove_emission_hook)r*  r<  hook_idr  _details        r   remove_emission_hookrC  <  s%    *?CFIw--iAr   rC  c                 
    d|fS )NFr   ihintreturn_accuhandler_return	user_datas       r   signal_accumulator_first_winsrJ  H  s    >""r   rJ  c                     | |fS r   r   rE  s       r   signal_accumulator_true_handledrL  P  s    //r   rL  add_emission_hook
signal_newc                       e Zd Zd Zd Zd Zy)_FreezeNotifyManagerc                     || _         y r   )r*  )r   r*  s     r   r   z_FreezeNotifyManager.__init__a  s	    r   c                      y r   r   r   s    r   r-  z_FreezeNotifyManager.__enter__d  r.  r   c                 8    | j                   j                          y r   )r*  thaw_notifyr1  s       r   r5  z_FreezeNotifyManager.__exit__g  s    r   Nr6  r   r   r   rP  rP  `  s    r   rP  c                 B     t        j                          fd       }|S )Nc                       | i |S r   r   )argskwargsfuncs     r   methz_signalmethod.<locals>.metho  s    T$V$$r   )	functoolswraps)rY  rZ  s   ` r   _signalmethodr]  k  s'     __T% % Kr   c                   D    e Zd Zd Zd ZeZeZeZeZeZ	eZ
eZeZeZeZeZeZeZeZd Zd Zd Zd ZeZeZeZeZej8                  j:                  Zej8                  j<                  Zej8                  j>                  Zej8                  j@                  Z ej8                  jB                  Z!ej8                  jD                  Z"ej8                  jF                  Z#ej8                  jH                  Z$ej8                  jJ                  Z%ej8                  jL                  Z&ej8                  jN                  Z'ej8                  jP                  Z(ej8                  jR                  Z)ej8                  jT                  Z*ej8                  jV                  Z+ej8                  jX                  Z,ej8                  jZ                  Z- fdZ.dd	d
Z/e0Z1 e2e3jh                        Z5 e2e3jl                        Z7 e2e3jl                        Z8 e2e3jr                        Z: e2e3jv                        Z<d Z=e=Z> xZ?S )Objectc                     t        d      )Nz%This method is currently unsupported.r  r   rW  kargss      r   _unsupported_methodzObject._unsupported_methodw  s    BCCr   c                     t        d      )NzIData access methods are unsupported. Use normal Python attributes insteadra  rb  s      r   _unsupported_data_methodzObject._unsupported_data_methodz  s    W
 	
r   c                     t        j                  | j                  j                  t        d       t
        j                  j                  |       S z1Deprecated, do not explicitly reference GObjects.r   r   )r   r   _ref__doc__r   r   r_  refr   s    r   ri  zObject._ref  s4    dii'')?AN##''--r   c                     t        j                  | j                  j                  t        d       t
        j                  j                  |       S rh  )r   r   	_ref_sinkrj  r   r   r_  ref_sinkr   s    r   rm  zObject._ref_sink  s5    dnn,,.DQRS##,,T22r   c                     t        j                  | j                  j                  t        d       t
        j                  j                  |       S rh  )r   r   _unrefrj  r   r   r_  unrefr   s    r   rp  zObject._unref  s4    dkk))+AaP##))$//r   c                     t        j                  | j                  j                  t        d       t
        j                  j                  |       S )z-Deprecated, do not explicitly float GObjects.r   r   )r   r   _force_floatingrj  r   r   r_  force_floatingr   s    r   rs  zObject._force_floating  s;      ((*@Q	
 ##22488r   c                 6    t         |           t        |       S )a  Freezes the object's property-changed notification queue.

        :returns:
            A context manager which optionally can be used to
            automatically thaw notifications.

        This will freeze the object so that "notify" signals are blocked until
        the thaw_notify() method is called.

        .. code-block:: python

            with obj.freeze_notify():
                pass
        )superfreeze_notifyrP  )r   	__class__s    r   rw  zObject.freeze_notify  s     	#D))r   r   )connect_flagsc                B   |t         j                  j                  z  rt        j                  j
                  }nt        j                  j                  }|t         j                  j                  z  r#t        |      dk7  rt        d|gz        fd}n} || ||g| S )a   Connect a callback to the given signal with optional user data.

        :param str detailed_signal:
            A detailed signal to connect to.
        :param callable handler:
            Callback handler to connect to the signal.
        :param *data:
            Variable data which is passed through to the signal handler.
        :param GObject.ConnectFlags connect_flags:
            Flags used for connection options.
        :returns:
            A signal id which can be used with disconnect.
        r^   zWUsing GObject.ConnectFlags.SWAPPED requires exactly one argument for user data, got: %sc                 X    t        |      }|j                         }g || } |g| S r   )listpop)r*  rW  swaphandlers      r   new_handlerz(Object.connect_data.<locals>.new_handler  s6     Dzxxz#|s|t+d++r   )
r   ConnectFlagsAFTERr
   r   connect_afterconnectSWAPPEDlenr;  )r   r<  r  ry  dataconnect_funcr  s     `    r   connect_datazObject.connect_data  s     =55;;;;;44L;;..L=55===4yA~ :=AFC 
, "KD/;FFFr   c                     t        j                  | j                  j                  t        d       | j                  |      S )z-Deprecated, please use stop_emission_by_name.r   r   )r   r   stop_emissionrj  r   stop_emission_by_name)r   r<  s     r   r  zObject.stop_emission
  s1    d((002HUVW))/::r   )@r   r   r   rd  rf  get_data	get_qdataset_data
steal_datasteal_qdatareplace_datareplace_qdatabind_property_fullcompat_controlinterface_find_propertyinterface_install_propertyinterface_list_propertiesnotify_by_pspecwatch_closureri  rm  rp  rs  rk  rn  rq  rt  r
   r   get_propertyget_propertiesset_propertyset_propertiesbind_propertyr  r  connect_objectconnect_object_afterdisconnect_by_funchandler_block_by_funchandler_unblock_by_funcemitchainweak_ref__copy____deepcopy__rw  r  r8  handler_blockr]  r   r0  handler_unblocksignal_handler_disconnect
disconnecthandler_disconnectsignal_handler_is_connectedhandler_is_connectedsignal_stop_emission_by_namer  r  emit_stop_by_name__classcell__rx  s   @r   r_  r_  v  s   D
 (H(I'H)J*K+L,M -(N1!4 3)O'M.
3
0
9 C"HE(N ;;++L[[//N;;++L[[//NKK--Mkk!!GKK--M[[//N;;;;77KK==!kkAA;;DKKE{{##H{{##H;;++L*$ KL $GT )M#M$H$HIO}FFGJ&}'N'NO()R)RS)-*T*TU;
 &r   r_  c                       e Zd Zd Zy)Bindingc                 >    t        j                  dt        d       | S )NzUsing parentheses (binding()) to retrieve the Binding object is no longer needed because the binding is returned directly from "bind_property.r   r   )r   r   r   r   s    r   __call__zBinding.__call__  s!    Z"		
 r   N)r   r   r   r  r   r   r   r  r    s    r   r  r   zGObject.Property)PropertySignalSignalOverrider   c                   t    e Zd Zed        Zej
                  d        Zed        Zej
                  d        Zy)	ParamSpecc                     | j                   S r   _nickr   s    r   nickzParamSpec.nick2  s    zzr   c                     || _         y r   r  )r   r  s     r   r  zParamSpec.nick6  s	    
r   c                     | j                   S r   _blurbr   s    r   blurbzParamSpec.blurb:  s    {{r   c                     || _         y r   r  )r   r  s     r   r  zParamSpec.blurb>  s	    r   N)r   r   r   r   r  setterr  r   r   r   r  r  0  sX      
[[    \\ r   r  
GParamSpeczGObject.ParamSpecc                   (     e Zd Ze fd       Z xZS )ParamSpecEnumc                     t         |   j                  j                  }|j                  x}r|S t        j                  d |j                  |d       S r   )rv  
enum_classg_type_classg_typepytyper
   enum_addr   r   r   r  rx  s      r   r  zParamSpecEnum.enum_classJ  sF    "//66\\!6!M||D%**eT::r   )r   r   r   r   r  r  r  s   @r   r  r  H  s    ; ;r   r  c                   (     e Zd Ze fd       Z xZS )ParamSpecFlagsc                     t         |   j                  j                  }|j                  x}r|S t        j                  d |j                  |d       S r   )rv  flags_classr  r  r  r
   	flags_addr   r  s      r   r  zParamSpecFlags.flags_classW  sF    #0077\\!6!M}}T5::ud;;r   )r   r   r   r   r  r  r  s   @r   r  r  U  s    < <r   r  c                       e Zd ZdZeZy)FloatziA wrapper to force conversion to G_TYPE_FLOAT instead of G_TYPE_DOUBLE when
    used in GValue APIs.
    N)r   r   r   rj  r   r	  r   r   r   r  r  b  s     Ir   r  r   )or[  r   collectionsr   	gi.modulegigi.overridesr   r   gi.repositoryr   r   r   propertyhelperr	   signalhelperr
   moduleget_introspection_moduler   __all__r   optionr   getattrglobalsappendcatch_warningssimplefiltersplitnew_namer  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	  r   r   
ParamFlagsREADABLEWRITABLEr   SignalFlagsr   r~   r   rt   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r#  r'  r8  r:  rC  rJ  rL  rM  rN  rP  r]  r_  r  r  r  r  r   r  r  r  r  floatr  r   r   r   <module>r     s1  0   "  2  % 0 ,  		229=
 !	 D6 dD)GIdOItWt^4NN4;@+ 1DX 
!	 	 	" .h(>?!$-	$. ItWt^4NN4c1h D zz#q!"%HdH-GIdOItWx%78NN4#* D( zz#q!"%HdH-GIdOItWx%78NN4/4 ++I6((0	--l;((1	))(3
++J7''/((1	((1	))(3
))(3
**95((1	))(3
))(3
**95**<8++J7))(3
))(3
**95,,Z8))'2
((1	++J7++I6  **
   B > DdD)GIdOItWt^4NN4 
D zz#q!"%Hm66AGIdOIt%:X%EFNN4
  **33m6N6N6W6WW 	,.L M   ! D zz#q!"%Hm77BGIdOIt%;h%FGNN4 
			^^

++##<<		
++  
 
 #D)%%	gg))   !!   _DM _DD 	 w     } S0
   !<
 " #4
   0 ~ 	H 	H1* % &I& " #B
 % &#
 . /0
 0 1
 )) ^^
 . . Y&]!! Y&x 
&	
 Ix   m##  7
 y  ""			,,  	:'9 : ? ? 
''  
$ 
 	<)< = L+& & 
;M// ; 
;   
<]11 < 
<   E  w ]. .s   *%__	