U
    ÂÛ	^Ét  ã                   @   sœ  d dl Z d dlZd dlZddlmZmZ ddlmZ ddlm	Z	m
Z
mZmZ ddlmZmZmZ d dlmZmZ edƒZg Zd d	lmZ e e d
¡ d dlmZ d dlmZ eZejZejZejZejZdd„ Z dd„ Z!dd„ Z"de_#de_$ejj%e_%e!e_&e'e"ƒe_(edddddddg7 ZG dd„ de)ƒZ*ddddd d!d"d#d$d%d&d&d&d'œZ+G d(d)„ d)ej,ƒZ,d*d&„ Z-e.e,d&e-ƒ e d)¡ dpd,d-„Z/e d-¡ d.D ]>Z0d/e0 Z1ede1d0e0 ƒ e2ej3d1e0 ƒe4ƒ e1< e e1¡ q–d2D ]*Z0e2ej5e0ƒe4ƒ d3e0 < e d3e0 ¡ qÚd4D ]:Z0d5e0 Z1ede1d6e0 ƒ e2ej6e0ƒe4ƒ e1< e e1¡ q
ej6j7Z8edd7d8ƒ e d7¡ d9D ]:Z0d:e0 Z1e2ej9e0ƒe4ƒ e1< ede1d;e0 ƒ e e1¡ qhd<D ]:Z0d=e0 Z1e2ej:e0ƒe4ƒ e1< ede1d>e0 ƒ e e1¡ q¨d?D ]:Z0d@e0 Z1e2ej;e0ƒe4ƒ e1< ede1dAe0 ƒ e e1¡ qèdBD ]:Z0dCe0 Z1ede1dDe0 ƒ e2ej<e0ƒe4ƒ e1< e e1¡ q(dED ]0Z=e= >dFdG¡d+ Z1e2ee=ƒe4ƒ e1< e e1¡ qhG dHdI„ dIej?ƒZ?ee?ƒZ?e dI¡ G dJdK„ dKej@ƒZ@ee@ƒZ@e dK¡ G dLdM„ dMejAƒZAeeAƒZAe dM¡ G dNdO„ dOeAƒZBe dO¡ G dPdQ„ dQeAƒZCe dQ¡ dRdS„ ZDe dS¡ dTdU„ ZEe dU¡ dVdW„ ZFe dW¡ dXdY„ ZGe dY¡ dZd[„ ZHe d[¡ G d\d]„ d]ejIƒZIeeIƒZIe d]¡ G d^d_„ d_ejJƒZJeeJƒZJe d_¡ d`da„ ZKe da¡ dbdc„ ZLe dc¡ ddde„ ZMeeMdfƒZMe de¡ dqdgdh„ZNe dh¡ eOediƒrXejPZQe dj¡ eddjdkƒ ejRejSejTfZUe dl¡ eddldmƒ eZVe dn¡ eddndoƒ dS )ré    Né   )Úwakeup_on_signalÚregister_sigint_fallback)Úget_introspection_module)Úvariant_type_from_stringÚ
source_newÚsource_set_callbackÚio_channel_read)ÚoverrideÚ
deprecatedÚdeprecated_attr)ÚPyGIDeprecationWarningÚversion_infoÚGLib)Ú_optionÚoption)Ú_gi)ÚGErrorc                   C   s   t jdtdd d S )NzmSince version 3.11, calling threads_init is no longer needed. See: https://wiki.gnome.org/PyGObject/Threadingr   )Ú
stacklevel)ÚwarningsÚwarnr   © r   r   ú3/usr/lib/python3/dist-packages/gi/overrides/GLib.pyÚthreads_init5   s     þr   c                 C   s2   t | jtƒrt | j¡}n| j}|| jf||fkS ©N)Ú
isinstanceÚdomainÚstrr   Zquark_from_stringÚcode)Úselfr   r   Zself_domain_quarkr   r   r   Úgerror_matches;   s    r    c                 C   s   t  | ¡}t|||ƒS r   )r   Zquark_to_stringr   )r   Úmessager   Zdomain_quarkr   r   r   Úgerror_new_literalE   s    
r"   ÚErrorzgi.repository.GLibr   ÚOptionContextÚOptionGroupÚPidÚspawn_asyncc                   @   sn   e Zd Zejjejjejjejjejj	ejj
ejjejjejjejjejjejjejjejjdœZdd„ ZdS )Ú_VariantCreator)ÚbÚyÚnÚqÚiÚuÚxÚtÚhÚdÚsÚoÚgÚvc           	      C   s~  t  |¡}|| jkr"| j| |ƒS t j |¡}|dkr>| ¡ S | ¡ rh| |  | 	¡  
¡ |¡¡ | ¡ S zt|ƒ W n$ tk
r˜   td||f ƒ‚Y nX | ¡ rÂ| ¡ t|ƒkrÂtd||f ƒ‚| ¡ ræt|ƒdkrætd||f ƒ‚| ¡ r0| 	¡  
¡ }t|tƒr| ¡ }|D ]}| |  ||¡¡ qnF|dd… }|D ]4}t|ƒ 
¡ }| |  ||¡¡ |t|ƒd… }q@| ¡ S )aB  Create a GVariant object from given format and a value that matches
        the format.

        This method recursively calls itself for complex structures (arrays,
        dictionaries, boxed).

        Returns the generated GVariant.

        If value is None it will generate an empty GVariant container type.
        NzOCould not create array, tuple or dictionary entry from non iterable value %s %sz1Tuple mismatches value's number of elements %s %sr   z/Dictionary entries must have two elements %s %sé   )r   ÚVariantTypeÚ_LEAF_CONSTRUCTORSZVariantBuilderÚnewÚendZis_maybeZ	add_valueÚ_createÚelementZ
dup_stringÚiterÚ	TypeErrorZis_tupleZn_itemsÚlenZis_dict_entryZis_arrayr   ÚdictÚitemsr   )	r   ÚformatÚvalueZgvtypeZbuilderZelement_typer-   Zremainer_formatÚdupr   r   r   r<   i   s>    

ÿ
z_VariantCreator._createN)Ú__name__Ú
__module__Ú__qualname__r   ÚVariantZnew_booleanZnew_byteZ	new_int16Z
new_uint16Z	new_int32Z
new_uint32Z	new_int64Z
new_uint64Z
new_handleZ
new_doubleZ
new_stringZnew_object_pathZnew_signatureZnew_variantr9   r<   r   r   r   r   r(   V   s    òr(   Úget_booleanZget_byteZ	get_int16Z
get_uint16Z	get_int32Z
get_uint32Z	get_int64Z
get_uint64Z
get_handleZ
get_doubleÚ
get_string)r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   c                   @   sŒ   e Zd Zdd„ Zedd„ ƒZdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zedd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS ) rI   c                 C   s2   t j |¡std|ƒ‚tƒ }| ||¡}||_|S )a´  Create a GVariant from a native Python object.

        format_string is a standard GVariant type signature, value is a Python
        object whose structure has to match the signature.

        Examples:
          GLib.Variant('i', 1)
          GLib.Variant('(is)', (1, 'hello'))
          GLib.Variant('(asa{sv})', ([], {'foo': GLib.Variant('b', True),
                                          'bar': GLib.Variant('i', 2)}))
        z#Invalid GVariant format string '%s')r   r8   Zstring_is_validr?   r(   r<   Úformat_string)ÚclsrL   rD   Zcreatorr6   r   r   r   Ú__new__®   s    
zVariant.__new__c                  G   s   t j | ¡S r   )r   rI   Ú	new_tuple)Úelementsr   r   r   rO   Á   s    zVariant.new_tuplec                 C   s&   z|   ¡  W n tk
r    Y nX d S r   )ZunrefÚImportError©r   r   r   r   Ú__del__Å   s    zVariant.__del__c                 C   s
   |   d¡S ©NT)Úprint_rR   r   r   r   Ú__str__Ñ   s    zVariant.__str__c                 C   s,   t | dƒr| j}n|  ¡ }d||  d¡f S )NrL   zGLib.Variant('%s', %s)F)ÚhasattrrL   Úget_type_stringrU   )r   Úfr   r   r   Ú__repr__Ô   s    
zVariant.__repr__c                 C   s(   z|   |¡W S  tk
r"   Y dS X d S ©NF©Zequalr?   ©r   Úotherr   r   r   Ú__eq__Û   s    zVariant.__eq__c                 C   s*   z|   |¡ W S  tk
r$   Y dS X d S rT   r\   r]   r   r   r   Ú__ne__á   s    zVariant.__ne__c                 C   s   t |  ¡ |  ¡ fƒS r   )ÚhashrX   ÚunpackrR   r   r   r   Ú__hash__ç   s    zVariant.__hash__c                    s  ˆ   ¡ }t |¡}|r"tˆ |ƒƒ S | d¡rJt‡ fdd„tˆ  ¡ ƒD ƒƒS | d¡r”i }tˆ  ¡ ƒD ]*}ˆ  |¡}| d¡ 	¡ || d¡ 	¡ < qd|S | d¡r¸‡ fdd	„tˆ  ¡ ƒD ƒS | d
¡rÎˆ  
¡  	¡ S | d¡ròˆ  ¡ sädS ˆ  d¡ 	¡ S td| ƒ‚dS )z1Decompose a GVariant into a native Python object.ú(c                 3   s   | ]}ˆ   |¡ ¡ V  qd S r   ©Úget_child_valuerb   ©Ú.0r-   rR   r   r   Ú	<genexpr>ù   s   ÿz!Variant.unpack.<locals>.<genexpr>úa{r7   r   Úac                    s   g | ]}ˆ   |¡ ¡ ‘qS r   re   rg   rR   r   r   Ú
<listcomp>  s   ÿz"Variant.unpack.<locals>.<listcomp>r6   ÚmNzunsupported GVariant type )rX   ÚLEAF_ACCESSORSÚgetÚgetattrÚ
startswithÚtupleÚrangeÚ
n_childrenrf   rb   Zget_variantÚNotImplementedError)r   Ztype_stringZlaÚresr-   r6   r   rR   r   rb   í   s2    


ÿ




ÿ

zVariant.unpackc           	      C   sØ   |dkrg S |  d¡s|gS g }d}|dd… }|rÔ|d }||7 }|dd… }|dkrZq0|d	krÄd}|}|dkrxd
}nd}|dkrÄ|d }||7 }|dd… }||kr²|d7 }q|||kr||d8 }q|| |¡ d}q0|S )a[  Return a list of the element signatures of the topmost signature tuple.

        If the signature is not a tuple, it returns one element with the entire
        signature. If the signature is an empty tuple, the result is [].

        This is useful for e. g. iterating over method parameters which are
        passed as a single Variant.
        z()rd   Ú r7   éÿÿÿÿr   N)rm   rk   )rd   ú{ú)ú})rq   Úappend)	ÚklassZ	signatureÚresultÚheadÚtailÚcÚlevelZupZdownr   r   r   Úsplit_signature  s<    




zVariant.split_signaturec                 C   sP   |   ¡ dkrt|  ¡ ƒS |   ¡  d¡s4|   ¡  d¡r<|  ¡ S td|   ¡  ƒ‚d S )N©r3   r4   r5   rk   rd   z'GVariant type %s does not have a length)rX   r@   rK   rq   rt   r?   rR   r   r   r   Ú__len__K  s
    zVariant.__len__c                 C   s.  |   ¡  d¡ršz*|  |tdƒ¡}|d kr0t|ƒ‚| ¡ W S  tk
r˜   t|  ¡ ƒD ]6}|  	|¡}| 	d¡ ¡ |krT| 	d¡ ¡    Y S qTt|ƒ‚Y nX |   ¡  d¡s¸|   ¡  d¡ rþt
|ƒ}|dk rÔ|  ¡ | }|dk sè||  ¡ krðtdƒ‚|  	|¡ ¡ S |   ¡ dkr|  ¡  |¡S td	|   ¡  ƒ‚d S )
Nrj   Ú*r   r7   rk   rd   zlist index out of ranger„   z#GVariant type %s is not a container)rX   rq   Zlookup_valuer   ÚKeyErrorrb   r?   rs   rt   rf   ÚintÚ
IndexErrorrK   Ú__getitem__)r   ÚkeyÚvalr-   r6   r   r   r   rŠ   S  s,    

zVariant.__getitem__c                 C   s   |   ¡ S r   )Ú__bool__rR   r   r   r   Ú__nonzero__x  s    zVariant.__nonzero__c                 C   s|   |   ¡ dkr|  ¡ dkS |   ¡ dkr,|  ¡ S |   ¡ dkrHt|  ¡ ƒdkS |   ¡  d¡sd|   ¡  d¡rp|  ¡ dkS t|  ¡ ƒS )N)	r*   r+   r,   r-   r.   r/   r0   r1   r2   r   )r)   r„   rk   rd   )rX   rb   rJ   r@   rK   rq   rt   ÚboolrR   r   r   r   r   {  s    zVariant.__bool__c                 C   sV   |   ¡  d¡std|   ¡  ƒ‚g }t|  ¡ ƒD ]"}|  |¡}| | d¡ ¡ ¡ q.|S )Nrj   z$GVariant type %s is not a dictionaryr   )rX   rq   r?   rs   rt   rf   r|   rb   )r   rv   r-   r6   r   r   r   Úkeysˆ  s    
zVariant.keysN)rF   rG   rH   rN   ÚstaticmethodrO   rS   rV   rZ   r_   r`   rc   rb   Úclassmethodrƒ   r…   rŠ   rŽ   r   r   r   r   r   r   rI   ­   s"   
(
5%rI   c                 C   s   t j | ¡\}}|S r   )r   rI   rK   )r   rD   Úlengthr   r   r   rK   “  s    rx   c                 C   s,   t | tƒrt |  d¡|¡S t | |¡S d S )NúUTF-8)r   Úbytesr   Úmarkup_escape_textÚdecode)Útextr“   r   r   r   r–     s    
r–   )ZDESKTOPZ	DOCUMENTSZDOWNLOADZMUSICZPICTURESZPUBLIC_SHAREZ	TEMPLATESZVIDEOSZUSER_DIRECTORY_zGLib.UserDirectory.DIRECTORY_Z
DIRECTORY_)ZERRZHUPÚINZNVALZOUTZPRIZIO_)ZAPPENDZGET_MASKZIS_READABLEZIS_SEEKABLEÚMASKZNONBLOCKZSET_MASKZIO_FLAG_zGLib.IOFlags.ÚIO_FLAG_IS_WRITEABLEzGLib.IOFlags.IS_WRITABLE)ZAGAINZEOFZERRORÚNORMALZ
IO_STATUS_zGLib.IOStatus.)ZCHILD_INHERITS_STDINZDO_NOT_REAP_CHILDZFILE_AND_ARGV_ZEROZLEAVE_DESCRIPTORS_OPENZSEARCH_PATHZSTDERR_TO_DEV_NULLZSTDOUT_TO_DEV_NULLZSPAWN_zGLib.SpawnFlags.)ZHIDDENZIN_MAINZREVERSEZNO_ARGZFILENAMEZOPTIONAL_ARGZNOALIASZOPTION_FLAG_zGLib.OptionFlags.)ZUNKNOWN_OPTIONZ	BAD_VALUEZFAILEDZOPTION_ERROR_zGLib.OptionError.)Z
G_MINFLOATZ
G_MAXFLOATZG_MINDOUBLEZG_MAXDOUBLEZ
G_MINSHORTZ
G_MAXSHORTZG_MAXUSHORTZG_MININTZG_MAXINTZ	G_MAXUINTZ	G_MINLONGZ	G_MAXLONGZ
G_MAXULONGZ	G_MAXSIZEZ
G_MINSSIZEZ
G_MAXSSIZEZG_MINOFFSETZG_MAXOFFSETÚ_r7   c                       s0   e Zd Zddd„Zd	dd„Z‡ fdd„Z‡  ZS )
ÚMainLoopNc                 C   s   t j |d¡S r[   )r   rž   r:   )rM   Úcontextr   r   r   rN   è  s    zMainLoop.__new__c                 C   s   d S r   r   )r   rŸ   r   r   r   Ú__init__ë  s    zMainLoop.__init__c              
      s:   t | jƒ& tƒ  tt| ƒ ¡  W 5 Q R X W 5 Q R X d S r   )r   Úquitr   Úsuperrž   ÚrunrR   ©Ú	__class__r   r   r£   î  s    zMainLoop.run)N)N)rF   rG   rH   rN   r    r£   Ú__classcell__r   r   r¤   r   rž   æ  s   

rž   c                       s   e Zd Zd‡ fdd„	Z‡  ZS )ÚMainContextTc                    s   t t| ƒ |¡S r   )r¢   r§   Ú	iteration)r   Z	may_blockr¤   r   r   r¨   ú  s    zMainContext.iteration)T)rF   rG   rH   r¨   r¦   r   r   r¤   r   r§   ø  s   r§   c                       s€   e Zd Zdd„ Z‡ fdd„Zdd„ Zd‡ fdd	„	Zd
d„ ZeedƒZdd„ Z	dd„ Z
ee	e
ƒZdd„ Zdd„ ZeeeƒZ‡  ZS )ÚSourcec                 O   s   t ƒ }| |_t|ddƒ |S )NÚ__pygi_custom_sourceT)r   r¥   Úsetattr)rM   ÚargsÚkwargsÚsourcer   r   r   rN     s    zSource.__new__c                    s   t t| ƒ ¡ S r   )r¢   r©   r    ©r   r¬   r­   r¤   r   r   r      s    zSource.__init__c                 C   s   t | dƒr|  ¡  |  ¡  d S ©Nrª   )rW   ZdestroyZ_clear_boxedrR   r   r   r   rS     s    
zSource.__del__Nc                    s.   t | dƒrt| ||ƒ ntt| ƒ ||¡ d S r°   )rW   r   r¢   r©   Úset_callback)r   ÚfnÚ	user_datar¤   r   r   r±     s    
zSource.set_callbackc                 C   s   t  ¡ d S ©Ngíµ ÷Æ°>©r   Zget_real_timerR   r   r   r   Úget_current_time  s    zSource.get_current_timez.GLib.Source.get_time() or GLib.get_real_time()c                 C   s   |   ¡ S r   )Zget_priorityrR   r   r   r   Z__get_priority'  s    zSource.__get_priorityc                 C   s   |   |¡ d S r   )Úset_priority©r   rD   r   r   r   Z__set_priority*  s    zSource.__set_priorityc                 C   s   |   ¡ S r   )Zget_can_recurserR   r   r   r   Z__get_can_recurse/  s    zSource.__get_can_recursec                 C   s   |   |¡ d S r   )Zset_can_recurser¸   r   r   r   Z__set_can_recurse2  s    zSource.__set_can_recurse)N)rF   rG   rH   rN   r    rS   r±   r¶   r   Z_Source__get_priorityZ_Source__set_priorityÚpropertyÚpriorityZ_Source__get_can_recurseZ_Source__set_can_recurseZcan_recurser¦   r   r   r¤   r   r©     s   	ÿ
r©   c                       s0   e Zd Zejfdd„Zejf‡ fdd„	Z‡  ZS )ÚIdlec                 C   s   t  ¡ }| |_|S r   )r   Zidle_source_newr¥   )rM   rº   r®   r   r   r   rN   =  s    zIdle.__new__c                    s&   t t| ƒ ¡  |tjkr"|  |¡ d S r   )r¢   r©   r    r   ÚPRIORITY_DEFAULTr·   )r   rº   r¤   r   r   r    B  s    
zIdle.__init__)rF   rG   rH   r   r¼   rN   r    r¦   r   r   r¤   r   r»   <  s   r»   c                   @   s,   e Zd Zdejfdd„Zdejfdd„ZdS )ÚTimeoutr   c                 C   s   t  |¡}| |_|S r   )r   Ztimeout_source_newr¥   )rM   Úintervalrº   r®   r   r   r   rN   L  s    
zTimeout.__new__c                 C   s   |t jkr|  |¡ d S r   )r   r¼   r·   )r   r¾   rº   r   r   r   r    Q  s    
zTimeout.__init__N)rF   rG   rH   r   r¼   rN   r    r   r   r   r   r½   K  s   r½   c                 O   s    |  dtj¡}tj|| f|žŽ S ©Nrº   )ro   r   ZPRIORITY_DEFAULT_IDLEÚidle_add)Úfunctionr³   r­   rº   r   r   r   rÀ   Z  s    rÀ   c                 O   s"   |  dtj¡}tj|| |f|žŽ S r¿   )ro   r   r¼   Útimeout_add©r¾   rÁ   r³   r­   rº   r   r   r   rÂ   b  s    rÂ   c                 O   s"   |  dtj¡}tj|| |f|žŽ S r¿   )ro   r   r¼   Útimeout_add_secondsrÃ   r   r   r   rÄ   j  s    rÄ   c                    sH  t |tƒrt |tjƒrdt dt¡ |}|‰ |}tˆ ƒs>tdƒ‚d|kr\t dt¡ |d }q˜tj	}n4t
|ƒdk s|t|d ƒs„tdƒ‚|d ‰ |dd … }t ˆtƒr¾‡ ‡fdd	„}tj ˆ¡}n|t ˆtjƒrôtjd
krô‡ ‡fdd	„}tj ˆ ¡ ¡}nFtˆdƒr ‡ ‡fdd	„}tj ˆ ¡ ¡}nt ˆtjƒs2t‚ˆ }ˆ}|||||fS )NzFCalling io_add_watch without priority as second argument is deprecatedzthird argument must be callablerº   zgCalling io_add_watch with priority keyword argument is deprecated, put it as second positional argumentr7   r   z%expecting callback as fourth argumentc                    s   ˆ ˆ|f|žŽ S r   r   ©r   ZcondÚdata©ÚcallbackÚchannelr   r   Ú<lambda>˜  ó    z(_io_add_watch_get_args.<locals>.<lambda>Zwin32c                    s   ˆ ˆ|f|žŽ S r   r   rÅ   rÇ   r   r   rÊ   ›  rË   Úfilenoc                    s   ˆ ˆ|f|žŽ S r   r   rÅ   rÇ   r   r   rÊ   Ÿ  rË   )r   rˆ   r   ÚIOConditionr   r   r   Úcallabler?   r¼   r@   Ú	IOChannelÚunix_newÚsocketÚsysÚplatformZwin32_new_socketrÌ   rW   ÚAssertionError)rÉ   Z	priority_Ú	conditionZcb_and_user_datar­   r³   Zfunc_fdtransformZreal_channelr   rÇ   r   Ú_io_add_watch_get_args~  s@    ÿÿ

rÖ   c                  O   s*   t | |Ž\}}}}}tj||||f|žŽ S )zOio_add_watch(channel, priority, condition, func, *user_data) -> event_source_id)rÖ   r   Úio_add_watch)r¬   r­   rÉ   rº   rÕ   Úfuncr³   r   r   r   r×   ¬  s    r×   c                       sž   e Zd Zddd„Z‡ fdd„Zddd„Zdd	d
„Zddd„Zd dd„Zdd„ Z	e
jje
jje
jjdœZd!dd„Zdd„ ZeedƒZdd„ Zdd„ ZeZ‡  ZS )"rÏ   Nc                 C   sN   |d k	rt j |¡S |d k	r.t j ||p*d¡S |d k	rBt j |¡S tdƒ‚d S )NÚrzLeither a valid file descriptor, file name, or window handle must be supplied)r   rÏ   rÐ   Znew_fileZwin32_new_fdr?   )rM   ZfiledesÚfilenameÚmodeZhwndr   r   r   rN   ·  s    zIOChannel.__new__c                    s   t t| ƒ ¡ S r   )r¢   rÏ   r    r¯   r¤   r   r   r    À  s    zIOChannel.__init__rx   c                 C   s
   t | |ƒS r   )r	   )r   Z	max_countr   r   r   ÚreadÃ  s    zIOChannel.readc                 C   s    |   ¡ \}}}}|d krdS |S ©Nrw   )Ú	read_line)r   Ú	size_hintÚstatusÚbufr“   Úterminator_posr   r   r   ÚreadlineÆ  s    zIOChannel.readlinec                 C   sD   g }t jj}|t jjkr@|  ¡ \}}}}|d kr4d}| |¡ q|S rÝ   )r   ÚIOStatusrœ   rÞ   r|   )r   rß   Úlinesrà   rá   r“   râ   r   r   r   Ú	readlinesÎ  s    zIOChannel.readlinesc                 C   s8   t |tƒs| d¡}|dkr$t|ƒ}|  ||¡\}}|S )Nr”   rx   )r   r•   Úencoder@   Zwrite_chars)r   rá   Zbuflenrà   Zwrittenr   r   r   ÚwriteÜ  s    

zIOChannel.writec                 C   s   |D ]}|   |¡ qd S r   )rè   )r   rå   Úliner   r   r   Ú
writelinesä  s    zIOChannel.writelines)r   r7   r   r   c                 C   s8   z| j | }W n tk
r*   tdƒ‚Y nX |  ||¡S )Nzinvalid 'whence' value)Ú_whence_mapr‡   Ú
ValueErrorZseek_position)r   ÚoffsetÚwhenceÚwr   r   r   Úseekê  s
    zIOChannel.seekc                 O   s"   |  dtj¡}t| |||f|žŽ S r¿   )ro   r   r¼   r×   )r   rÕ   rÈ   r³   r­   rº   r   r   r   Ú	add_watchñ  s    zIOChannel.add_watchzGLib.io_add_watch()c                 C   s   | S r   r   rR   r   r   r   Ú__iter__÷  s    zIOChannel.__iter__c                 C   s(   |   ¡ \}}}}|tjjkr |S t‚d S r   )rÞ   r   rä   rœ   ÚStopIteration)r   rà   rá   r“   râ   r   r   r   Ú__next__ú  s    zIOChannel.__next__)NNNN)rx   )rx   )rx   )rx   )r   )rF   rG   rH   rN   r    rÜ   rã   ræ   rè   rê   r   ZSeekTypeZSETZCURZENDrë   rð   rñ   r   rò   rô   Únextr¦   r   r   r¤   r   rÏ   ¶  s   
	





rÏ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚPollFDc                 C   s   t  ¡ }| |_|S r   )r   rö   r¥   )rM   ÚfdÚeventsZpollfdr   r   r   rN   	  s    zPollFD.__new__c                 C   s   || _ || _d S r   )r÷   rø   )r   r÷   rø   r   r   r   r      s    zPollFD.__init__N)rF   rG   rH   rN   r    r   r   r   r   rö     s   rö   c                 O   s  g }t |ƒr†t dt¡ | }|}t|ƒdkr<| dtj¡}qÚt|ƒdkr\|}| dtj¡}qÚt|ƒdkr||d g}|d }qÚtdƒ‚nT| }|}d|kr¤|d }|}n6t|ƒdkrÒt |d ƒrÒ|d }|dd … }ntdƒ‚d	|krø|rîtd
ƒ‚|d	 f}||||fS )NzHCalling child_watch_add without priority as first argument is deprecatedr   rº   r7   r   z'expected at most 4 positional argumentsrÁ   z#expected callback as third argumentrÆ   z'got multiple values for "data" argument)	rÎ   r   r   r   r@   ro   r   r¼   r?   )Zpriority_or_pidZpid_or_callbackr¬   r­   r³   ÚpidrÈ   rº   r   r   r   Ú_child_watch_add_get_args  s<    ÿ



rú   c                  O   s&   t | |Ž\}}}}tj|||f|žŽ S )z/child_watch_add(priority, pid, function, *data))rú   r   Úchild_watch_add)r¬   r­   rº   rù   rÁ   rÆ   r   r   r   rû   G  s    rû   c                   C   s   t  ¡ d S r´   rµ   r   r   r   r   r¶   P  s    r¶   zGLib.get_real_time()c                 C   s   t  | |¡d S )Nr   )r   Úfilename_from_utf8)Z
utf8stringr@   r   r   r   rü   [  s    rü   Úunix_signal_addÚunix_signal_add_fullzGLib.unix_signal_addÚglib_versionz<(GLib.MAJOR_VERSION, GLib.MINOR_VERSION, GLib.MICRO_VERSION)Úpyglib_versionzgi.version_info)rx   )rx   )Wr   rÒ   rÑ   Z_ossighelperr   r   Úmoduler   r   r   r   r   r	   Z	overridesr
   r   r   Zgir   r   r   Ú__all__r   r   r|   Z	gi._errorr   r#   r$   r%   r&   r'   r   r    r"   rF   rG   Z	__gtype__Zmatchesr‘   Znew_literalÚobjectr(   rn   rI   rK   r«   r–   r+   Úattrrp   ZUserDirectoryÚglobalsrÍ   ZIOFlagsZIS_WRITABLEr›   rä   Z
SpawnFlagsZOptionFlagsZOptionErrorÚnameÚsplitrž   r§   r©   r»   r½   rÀ   rÂ   rÄ   rÖ   r×   rÏ   rö   rú   rû   r¶   rü   rW   rý   rþ   ZMAJOR_VERSIONZMINOR_VERSIONZMICRO_VERSIONrÿ   r   r   r   r   r   Ú<module>   s  



 ÿGó g





6





+

N

	'







ÿ
