o
    ¢‹`—^  ã                	   @   sü  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 d	¡Zg Zd d
lmZ eZdD ]Zee
eƒeƒ e< ed	ede ƒ e e¡ qJdD ]1Ze ¡ � e de¡ ee
eƒeƒ e< W d  ƒ n1 sƒw   Y  ed	ede ƒ e e¡ qddD ]Ze dd¡d Zee
eƒeƒ e< ed	ede ƒ e e¡ q˜dD ]Ze dd¡d Zee
eƒeƒ e< ed	ede ƒ e e¡ qºe d¡Z e d¡Z!e d¡Z"e d¡Z#e d¡Z$e d¡Z%e d¡Z&e d¡Z'e d¡Z(e d¡Z)e d¡Z*e d¡Z+e d ¡Z,e d!¡Z-e d"¡Z.e d#¡Z/e d$¡Z0e d%¡Z1e d&¡Z2e d'¡Z3e d	¡Z4e d(¡Z5e d)¡Z6e d*¡Z7e d+¡Z8e d,¡Z9ej:j;Z<e'Z=eg d-¢7 Zd.D ]Zee
eƒeƒ e< ed	ede ƒ e e¡ �qjd/D ]!Ze dd¡d Zeej>eƒeƒ e< ed	ed0e ƒ e e¡ �q…ej>j?ej>j@B ZAed	d1d2ƒ e d1¡ d3D ]!Ze dd¡d ZeejBeƒeƒ e< ed	ed4e ƒ e e¡ �q¼ejCZCejDZDejEZEejFZFejGZGejHZHejIZIejJZJejKZKejLZLeg d5¢7 Zd6d7iZMejNZNejOZOejPZPe
jQZQejRZReg d8¢7 ZG d9d:„ d:ej:ƒZ:ee:ƒZ:e d:¡ d;d<„ Ze d<¡ d=d>„ ZSe d>¡ d?d@„ ZTdAdB„ ZUe dB¡ dCdD„ ZVe dD¡ dEdF„ ZWe dF¡ edGg dH¢ƒZXdddIdJ„ZYe dJ¡ G dKdL„ dLeZƒZ[dMdN„ Z\e dN¡ dOdP„ Z]e dP¡ dQdR„ Z^e dR¡ dddSdT„Z_e dT¡ dddUdV„Z`e dV¡ ejaZaejbZbedWdXg7 ZG dYdZ„ dZeZƒZcd[d\„ ZdG d]d^„ d^ejeƒZeeeeƒZeeeZGed^d	g7 ZG d_d`„ d`ejfƒZfeefƒZfe d`¡ ejgZgejhZhejiZiegZjed	dadbƒ eg dc¢7 ZdS )eé    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_INVALIDÚ	TYPE_NONEÚTYPE_INTERFACEÚ	TYPE_CHARÚ
TYPE_UCHARÚTYPE_BOOLEANÚTYPE_INTÚ	TYPE_UINTÚ	TYPE_LONGÚ
TYPE_ULONGÚ
TYPE_INT64ÚTYPE_UINT64Ú	TYPE_ENUMÚ
TYPE_FLAGSÚ
TYPE_FLOATÚTYPE_DOUBLEÚTYPE_STRINGÚTYPE_POINTERÚ
TYPE_BOXEDÚ
TYPE_PARAMÚTYPE_OBJECTÚTYPE_PYOBJECTÚ
TYPE_GTYPEÚ	TYPE_STRVÚTYPE_VARIANTÚTYPE_GSTRINGÚTYPE_UNICHARÚ
TYPE_VALUE)Ú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~   rs   r
   ÚGObjectWeakRefÚ
GParamSpecÚGPointerr†   ÚWarningzgeneric-c-marshallerT)ÚfeaturesÚlist_propertiesÚnewÚpygobject_versionÚthreads_initÚtype_registerc                   @   sJ   e Zd Zddd„Zedd„ ƒZdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dS )ÚValueNc                 C   s<   t j | ¡ |d ur|  |¡ |d ur|  |¡ d S d S d S ©N)ÚGObjectModulerÁ   Ú__init__ÚinitÚ	set_value)ÚselfÚ
value_typeÚpy_value© rÊ   ú6/usr/lib/python3/dist-packages/gi/overrides/GObject.pyrÄ   Ë   s   
ýzValue.__init__c                 C   s
   t  | ¡S rÂ   )r	   Ú_gvalue_get_type©rÇ   rÊ   rÊ   rË   Ú__g_typeÒ   s   
zValue.__g_typec                 C   s,   | j  t¡stjdtdd� t | |¡ d S )Nz2Calling set_boxed() on a non-boxed type deprecatedé   ©Ú
stacklevel)Ú_Value__g_typeÚis_arœ   ÚwarningsÚwarnr   r	   Ú_gvalue_set)rÇ   ÚboxedrÊ   rÊ   rË   Ú	set_boxedØ   s
   ÿzValue.set_boxedc                 C   s&   | j  t¡stjdtdd� t | ¡S )Nz2Calling get_boxed() on a non-boxed type deprecatedrÏ   rÐ   )rÒ   rÓ   rœ   rÔ   rÕ   r   r	   Ú_gvalue_getrÍ   rÊ   rÊ   rË   Ú	get_boxedá   s
   ÿ
zValue.get_boxedc                 C   s  | j }|tkr|  |¡ d S |tkr|  |¡ d S |tkr8t|tƒs0|d ur0td|t	|ƒf ƒ‚t
 | |¡ d S |tkrC|  |¡ d S | t¡rO|  |¡ d S |tkrZ|  |¡ d S |tkre|  |¡ d S |tkrp|  |¡ d S z	t
 | |¡ W d S  ty‰   |tkrˆtdƒ‚‚ w )NzExpected string but got %s%sz+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É   ÚgtyperÊ   rÊ   rË   rÆ   ç   s8   
ÿ
ýzValue.set_valuec                 C   s¶   | j }|tkr|  ¡ S |tkr|  ¡ S |tkr|  ¡ S | t¡r$|  	¡ S | t
¡r-|  ¡ S |tkr5|  ¡ S |tkr=|  ¡ S |tkrE|  ¡ S zt | ¡W S  tyZ   |tkrYY d S ‚ 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æ   rÊ   rÊ   rË   Ú	get_value  s0   

ýzValue.get_valuec                 C   s   d| j j|  ¡ f S )Nz<Value (%s) %s>)rÒ   Únamerï   rÍ   rÊ   rÊ   rË   Ú__repr__$  ó   zValue.__repr__)NN)Ú__name__Ú
__module__Ú__qualname__rÄ   ÚpropertyrÒ   rØ   rÚ   rÆ   rï   rñ   rÊ   rÊ   rÊ   rË   rÁ   Ê   s    

	 rÁ   c                 C   s"   t  | ¡}|tkrtd|  ƒ‚|S )Nzunknown type name: %s)rÃ   Útype_from_namerŠ   ÚRuntimeError©rð   Útype_rÊ   rÊ   rË   r÷   ,  s   
r÷   c                 C   s   t  | ¡}|tkrtdƒ‚|S )Nzno parent for type)rÃ   Útype_parentrŠ   rø   )rú   ÚparentrÊ   rÊ   rË   rû   6  s   
rû   c                 C   s4   t | dƒr| j} |  ¡ s|  ¡ std|  ƒ‚d S d S )NÚ	__gtype__z1type must be instantiable or an interface, got %s)Úhasattrrý   Úis_instantiatableÚis_interfacerß   ©rú   rÊ   rÊ   rË   Ú _validate_type_for_signal_method@  s
   
ÿr  c                 C   s   t | ƒ t | ¡S rÂ   )r  rÃ   Úsignal_list_idsr  rÊ   rÊ   rË   r  G  s   
r  c                 C   s   t | ƒ}tdd„ |D ƒƒS )Nc                 s   s   � | ]}t  |¡V  qd S rÂ   )rÃ   Úsignal_name)Ú.0ÚirÊ   rÊ   rË   Ú	<genexpr>Q  s   € z$signal_list_names.<locals>.<genexpr>)r  Útuple)rú   ÚidsrÊ   rÊ   rË   Úsignal_list_namesO  s   r
  c                 C   s   t |ƒ t | |¡S rÂ   )r  rÃ   Úsignal_lookuprù   rÊ   rÊ   rË   r  W  s   r  ÚSignalQuery)Ú	signal_idr  ÚitypeÚsignal_flagsÚreturn_typeÚparam_typesc                 C   sX   |d ur	t | |ƒ} t | ¡}|d usJ ‚|jdkrd S t|j|j|j|j|jt	|j
ƒƒS )Nr   )r  rÃ   Úsignal_queryr  r  r  r  r  r  r  r  )Ú
id_or_namerú   ÚresrÊ   rÊ   rË   r  i  s   


þr  c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú_HandlerBlockManagerc                 C   s   || _ || _d S rÂ   ©ÚobjÚ
handler_id)rÇ   r  r  rÊ   rÊ   rË   rÄ   €  s   
z_HandlerBlockManager.__init__c                 C   ó   d S rÂ   rÊ   rÍ   rÊ   rÊ   rË   Ú	__enter__„  ó   z_HandlerBlockManager.__enter__c                 C   s   t  | j| j¡ d S rÂ   )rÃ   Úsignal_handler_unblockr  r  ©rÇ   Úexc_typeÚ	exc_valueÚ	tracebackrÊ   rÊ   rË   Ú__exit__‡  rò   z_HandlerBlockManager.__exit__N©ró   rô   rõ   rÄ   r  r"  rÊ   rÊ   rÊ   rË   r    s    r  c                 C   s   t  | |¡ 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  rÊ   rÊ   rË   r$  ‹  s   
r$  c                 C   s0   t  | ||¡\}}}|r||fS td|| f ƒ‚)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%s: unknown signal name: %s)rÃ   Úsignal_parse_nameÚ
ValueError)Údetailed_signalr  Úforce_detail_quarkr  r  ÚdetailrÊ   rÊ   rË   r%  £  s   
ÿr%  c                 C   s    t || dƒ\}}t ||¡ d S )NT)r%  rÃ   Úsignal_remove_emission_hook)r  r'  Úhook_idr  r)  rÊ   rÊ   rË   Úremove_emission_hook¹  s   r,  c                 C   s   d|fS )NFrÊ   ©ÚihintÚreturn_accuÚhandler_returnÚ	user_datarÊ   rÊ   rË   Úsignal_accumulator_first_winsÄ  s   r2  c                 C   s
   | |fS rÂ   rÊ   r-  rÊ   rÊ   rË   Úsignal_accumulator_true_handledÌ  s   
r3  Úadd_emission_hookÚ
signal_newc                   @   r  )Ú_FreezeNotifyManagerc                 C   s
   || _ d S rÂ   )r  )rÇ   r  rÊ   rÊ   rË   rÄ   Ý  s   
z_FreezeNotifyManager.__init__c                 C   r  rÂ   rÊ   rÍ   rÊ   rÊ   rË   r  à  r  z_FreezeNotifyManager.__enter__c                 C   s   | j  ¡  d S rÂ   )r  Úthaw_notifyr  rÊ   rÊ   rË   r"  ã  s   z_FreezeNotifyManager.__exit__Nr#  rÊ   rÊ   rÊ   rË   r6  Ü  s    r6  c                    s   t  ˆ ¡‡ fdd„ƒ}|S )Nc                     s   ˆ | i |¤ŽS rÂ   rÊ   )ÚargsÚkwargs©ÚfuncrÊ   rË   Úmethë  s   z_signalmethod.<locals>.meth)Ú	functoolsÚwraps)r;  r<  rÊ   r:  rË   Ú_signalmethodç  s   r?  c                       sf  e Zd Zdd„ Zd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ejjZejjZejjZejjZeZeZeZeZejjZejj Z ejj!Z!ejj"Z"ejj#Z#ejj$Z$ejj%Z%ejj&Z&ejj'Z'ejj(Z(ejj)Z)ejj*Z*ejj+Z+ejj,Z,ejj-Z-ejj.Z.ejj/Z/‡ fdd„Z0dd„ Z1e2Z3e4ej5ƒZ6e4ej7ƒZ8e4ej7ƒZ9e4ej:ƒZ;e4ej<ƒZ=d	d
„ Z>e>Z?‡  Z@S )ÚObjectc                 O   ó   t dƒ‚)Nz%This method is currently unsupported.©rø   ©rÇ   r8  ÚkargsrÊ   rÊ   rË   Ú_unsupported_methodò  ó   zObject._unsupported_methodc                 O   rA  )NzIData access methods are unsupported. Use normal Python attributes insteadrB  rC  rÊ   rÊ   rË   Ú_unsupported_data_methodõ  rF  zObject._unsupported_data_methodc                    s   t 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
        )Úsuperr@  Úfreeze_notifyr6  rÍ   ©Ú	__class__rÊ   rË   rI  ,  s   zObject.freeze_notifyc                    sv   |  dd¡}|tjj@ rtjj}ntjj}|tjj@ r/t	|ƒdkr(t
d|g ƒ‚‡ fdd„}nˆ }|| ||g|¢R Ž 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.
        Úconnect_flagsr   r]   zWUsing GObject.ConnectFlags.SWAPPED requires exactly one argument for user data, got: %sc                    s*   t |ƒ}| ¡ }|| g }ˆ |g|¢R Ž S rÂ   )ÚlistÚpop)r  r8  Úswap©ÚhandlerrÊ   rË   Únew_handlerW  s   
z(Object.connect_data.<locals>.new_handler)ÚgetrÃ   ÚConnectFlagsÚAFTERr	   r
   Úconnect_afterÚconnectÚSWAPPEDÚlenr&  )rÇ   r'  rQ  Údatar9  ÚflagsÚconnect_funcrR  rÊ   rP  rË   Úconnect_data>  s   
ÿzObject.connect_datac                 C   s   t j| jjtdd� |  |¡S )z-Deprecated, please use stop_emission_by_name.rÏ   rÐ   )rÔ   rÕ   Ústop_emissionÚ__doc__r   Ústop_emission_by_name)rÇ   r'  rÊ   rÊ   rË   r^  r  s   
zObject.stop_emission)Aró   rô   rõ   rE  rG  Ú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_closurerÃ   r@  ÚrefÚ_refÚref_sinkÚ	_ref_sinkÚunrefÚ_unrefÚforce_floatingÚ_force_floatingr	   r
   Úget_propertyÚget_propertiesÚset_propertyÚset_propertiesÚbind_propertyrW  rV  Úconnect_objectÚconnect_object_afterÚdisconnect_by_funcÚhandler_block_by_funcÚhandler_unblock_by_funcÚemitÚchainÚweak_refÚ__copy__Ú__deepcopy__rI  r]  r$  Úhandler_blockr?  r  Ú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__rÊ   rÊ   rJ  rË   r@  ñ  sh    )




r@  c                       s$   e Zd Zdd„ Z‡ fdd„Z‡  ZS )ÚBindingc                 C   s   t jdtdd� | S )NzŽUsing 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Í   rÊ   rÊ   rË   Ú__call__€  s   þzBinding.__call__c                    sR   t jt jt jfdkrtt| ƒ ¡ S t| dƒrtdƒ‚t	| ddƒ tt| ƒ ¡  d S )N)rÏ   é9   é   Ú_unboundz$binding has already been cleared outT)
r   ÚMAJOR_VERSIONÚMINOR_VERSIONÚMICRO_VERSIONrH  r�  Úunbindrþ   r&  ÚsetattrrÍ   rJ  rÊ   rË   r˜  †  s   
zBinding.unbind)ró   rô   rõ   r‘  r˜  r�  rÊ   rÊ   rJ  rË   r�    s    r�  rö   zGObject.Property)ÚPropertyÚSignalÚSignalOverriderö   rÂ   )kr=  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~   rs   r
   r·   r¸   r¹   r†   rº   r»   r¼   r½   r¾   r¿   rÀ   rû   r  r  r
  r  r  r  Úobjectr  r$  r%  r,  r2  r3  r4  r5  r6  r?  r@  r�  rš  r›  rœ  rö   rÊ   rÊ   rÊ   rË   Ú<module>   s,  

ý


























ÿ
^





ÿ










 

