o
    �f¥_É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g d¢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%¡ dld(d)„Z/e d)¡ d*D ]Z0d+e0 Z1ede1d,e0 ƒ e2ej3d-e0 ƒe4ƒ e1< e e1¡ qÆd.D ]Z0e2ej5e0ƒe4ƒ d/e0 < e d/e0 ¡ qçd0D ]Z0d1e0 Z1ede1d2e0 ƒ e2ej6e0ƒe4ƒ e1< e e1¡ qþej6j7Z8edd3d4ƒ e d3¡ d5D ]Z0d6e0 Z1e2ej9e0ƒe4ƒ e1< ede1d7e0 ƒ e e1¡ �q,d8D ]Z0d9e0 Z1e2ej:e0ƒe4ƒ e1< ede1d:e0 ƒ e e1¡ �qLd;D ]Z0d<e0 Z1e2ej;e0ƒe4ƒ e1< ede1d=e0 ƒ e e1¡ �qld>D ]Z0d?e0 Z1ede1d@e0 ƒ e2ej<e0ƒe4ƒ e1< e e1¡ �qŒdAD ]Z=e= >dBdC¡d' Z1e2ee=ƒe4ƒ e1< e e1¡ �q¬G dDdE„ dEej?ƒZ?ee?ƒZ?e dE¡ G dFdG„ dGej@ƒZ@ee@ƒZ@e dG¡ G dHdI„ dIejAƒZAeeAƒZAe dI¡ G dJdK„ dKeAƒZBe dK¡ G dLdM„ dMeAƒZCe dM¡ dNdO„ ZDe dO¡ dPdQ„ ZEe dQ¡ dRdS„ ZFe dS¡ dTdU„ ZGe dU¡ dVdW„ ZHe dW¡ G dXdY„ dYejIƒZIeeIƒZIe dY¡ G dZd[„ d[ejJƒZJeeJƒZJe d[¡ d\d]„ ZKe d]¡ d^d_„ ZLe d_¡ d`da„ ZMeeMdbƒZMe da¡ dldcdd„ZNe dd¡ eOedeƒ�r¤ejPZQe df¡ eddfdgƒ ejRejSejTfZUe dh¡ eddhdiƒ eZVe dj¡ eddjdkƒ dS )mé    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   Úquark_from_stringÚcode)Úselfr   r   Úself_domain_quarkr   r   r   Úgerror_matches;   s   r"   c                 C   s   t  | ¡}t|||ƒS r   )r   Úquark_to_stringr   )r   Úmessager   Údomain_quarkr   r   r   Úgerror_new_literalE   s   
r&   ÚErrorzgi.repository.GLib)r   r'   ÚOptionContextÚOptionGroupÚPidÚspawn_asyncr   c                   @   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   sv  t  |¡}|| jv r| j| |ƒS t j |¡}|du r| ¡ S | ¡ r4| |  | 	¡  
¡ |¡¡ | ¡ S zt|ƒ W n tyI   td||f ƒ‚w | ¡ r^| ¡ t|ƒkr^td||f ƒ‚| ¡ rpt|ƒdkrptd||f ƒ‚| ¡ r•| 	¡  
¡ }t|tƒrƒ| ¡ }|D ]}| |  ||¡¡ q…| ¡ S |dd… }|D ]}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_CONSTRUCTORSÚVariantBuilderÚnewÚendÚis_maybeÚ	add_valueÚ_createÚelementÚ
dup_stringÚiterÚ	TypeErrorÚis_tupleÚn_itemsÚlenÚis_dict_entryÚis_arrayr   ÚdictÚitemsr   )	r    ÚformatÚvalueÚgvtypeÚbuilderÚelement_typer1   Úremainer_formatÚdupr   r   r   rC   i   sB   

ÿÿ
úz_VariantCreator._createN)Ú__name__Ú
__module__Ú__qualname__r   ÚVariantÚnew_booleanÚnew_byteÚ	new_int16Ú
new_uint16Ú	new_int32Ú
new_uint32Ú	new_int64Ú
new_uint64Ú
new_handleÚ
new_doubleÚ
new_stringÚnew_object_pathÚnew_signatureÚnew_variantr=   rC   r   r   r   r   r,   V   s"    òr,   Úget_booleanÚget_byteÚ	get_int16Ú
get_uint16Ú	get_int32Ú
get_uint32Ú	get_int64Ú
get_uint64Ú
get_handleÚ
get_doubleÚ
get_string)r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   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 ) rY   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   r<   Ústring_is_validrG   r,   rC   Úformat_string)Úclsrt   rP   Úcreatorr:   r   r   r   Ú__new__®   s   
zVariant.__new__c                  G   s   t j | ¡S r   )r   rY   Ú	new_tuple)Úelementsr   r   r   rx   Á   s   zVariant.new_tuplec                 C   s$   z|   ¡  W d S  ty   Y d S w r   )ÚunrefÚImportError©r    r   r   r   Ú__del__Å   s
   ùzVariant.__del__c                 C   s
   |   d¡S ©NT)Úprint_r|   r   r   r   Ú__str__Ñ   ó   
zVariant.__str__c                 C   s,   t | dƒr	| j}n|  ¡ }d||  d¡f S )Nrt   zGLib.Variant('%s', %s)F)Úhasattrrt   Úget_type_stringr   )r    Úfr   r   r   Ú__repr__Ô   s   
zVariant.__repr__c                 C   s"   z|   |¡W S  ty   Y dS w ©NF©ÚequalrG   ©r    Úotherr   r   r   Ú__eq__Û   s
   ÿzVariant.__eq__c                 C   s$   z|   |¡ W S  ty   Y dS w r~   r‡   r‰   r   r   r   Ú__ne__á   s
   ÿzVariant.__ne__c                 C   s   t |  ¡ |  ¡ fƒS r   )Úhashrƒ   Úunpackr|   r   r   r   Ú__hash__ç   s   zVariant.__hash__c                    sþ   ˆ   ¡ }t |¡}|rtˆ |ƒƒ S | d¡r%t‡ fdd„tˆ  ¡ ƒD ƒƒS | d¡rJi }tˆ  ¡ ƒD ]}ˆ  |¡}| d¡ 	¡ || d¡ 	¡ < q2|S | d¡r\‡ fdd	„tˆ  ¡ ƒD ƒS | d
¡rgˆ  
¡  	¡ S | d¡ryˆ  ¡ srdS ˆ  d¡ 	¡ S td| ƒ‚)z1Decompose a GVariant into a native Python object.ú(c                 3   s   � | ]
}ˆ   |¡ ¡ V  qd S r   ©Úget_child_valuerŽ   ©Ú.0r1   r|   r   r   Ú	<genexpr>ù   s   € ÿz!Variant.unpack.<locals>.<genexpr>úa{r;   r   Úac                    s   g | ]	}ˆ   |¡ ¡ ‘qS r   r‘   r“   r|   r   r   Ú
<listcomp>  s    ÿz"Variant.unpack.<locals>.<listcomp>r:   ÚmNzunsupported GVariant type )rƒ   ÚLEAF_ACCESSORSÚgetÚgetattrÚ
startswithÚtupleÚrangeÚ
n_childrenr’   rŽ   Úget_variantÚNotImplementedError)r    Útype_stringÚlaÚresr1   r:   r   r|   r   rŽ   í   s2   


ÿ




ÿ

zVariant.unpackc           	      C   sà   |dkrg S |  d¡s|gS g }d}|dd… }|rn|d }||7 }|dd… }|dv r-q|d	v red}|}|dkr<d
}nd}|dkre|d }||7 }|dd… }||krY|d7 }n||kra|d8 }|dksB| |¡ d}|s|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()r�   Ú r;   éÿÿÿÿr   N)r™   r—   )r�   ú{ú)ú})r�   Úappend)	ÚklassÚ	signatureÚresultÚheadÚtailÚcÚlevelÚupÚdownr   r   r   Úsplit_signature  s@   


ù

åzVariant.split_signaturec                 C   sL   |   ¡ dv rt|  ¡ ƒS |   ¡  d¡s|   ¡  d¡r|  ¡ S td|   ¡  ƒ‚)N©r7   r8   r9   r—   r�   z'GVariant type %s does not have a length)rƒ   rJ   rr   r�   r    rG   r|   r   r   r   Ú__len__K  s
   zVariant.__len__c                 C   s   |   ¡  d¡rJz|  |tdƒ¡}|d u rt|ƒ‚| ¡ W S  tyI   t|  ¡ ƒD ]}|  	|¡}| 	d¡ ¡ |krD| 	d¡ ¡    Y S q)t|ƒ‚w |   ¡  d¡sX|   ¡  d¡r{t
|ƒ}|dk rf|  ¡ | }|dk sp||  ¡ krttdƒ‚|  	|¡ ¡ S |   ¡ dv rˆ|  ¡  |¡S td	|   ¡  ƒ‚)
Nr–   Ú*r   r;   r—   r�   zlist index out of ranger¶   z#GVariant type %s is not a container)rƒ   r�   Úlookup_valuer   ÚKeyErrorrŽ   rG   rŸ   r    r’   ÚintÚ
IndexErrorrr   Ú__getitem__)r    ÚkeyÚvalr1   r:   r   r   r   r½   S  s0   

ÿøzVariant.__getitem__c                 C   ó   |   ¡ S r   )Ú__bool__r|   r   r   r   Ú__nonzero__x  ó   zVariant.__nonzero__c                 C   s|   |   ¡ dv r|  ¡ dkS |   ¡ dv r|  ¡ S |   ¡ dv r$t|  ¡ ƒdkS |   ¡  d¡s2|   ¡  d¡r8|  ¡ dkS t|  ¡ ƒS )N)	r.   r/   r0   r1   r2   r3   r4   r5   r6   r   )r-   r¶   r—   r�   )rƒ   rŽ   rh   rJ   rr   r�   r    Úboolr|   r   r   r   rÁ   {  s   zVariant.__bool__c                 C   sV   |   ¡  d¡std|   ¡  ƒ‚g }t|  ¡ ƒD ]}|  |¡}| | d¡ ¡ ¡ q|S )Nr–   z$GVariant type %s is not a dictionaryr   )rƒ   r�   rG   rŸ   r    r’   r«   rŽ   )r    r¥   r1   r:   r   r   r   Úkeysˆ  s   
zVariant.keysN)rV   rW   rX   rw   Ústaticmethodrx   r}   r€   r…   r‹   rŒ   r�   rŽ   Úclassmethodrµ   r·   r½   rÂ   rÁ   rÅ   r   r   r   r   rY   ­   s$    
(
5%rY   c                 C   s   t j | ¡\}}|S r   )r   rY   rr   )r    rP   Úlengthr   r   r   rr   “  s   r§   c                 C   s(   t | tƒrt |  d¡|¡S t | |¡S )NúUTF-8)r   Úbytesr   Úmarkup_escape_textÚdecode)ÚtextrÈ   r   r   r   rË   �  s   
rË   )ÚDESKTOPÚ	DOCUMENTSÚDOWNLOADÚMUSICÚPICTURESÚPUBLIC_SHAREÚ	TEMPLATESÚVIDEOSÚUSER_DIRECTORY_zGLib.UserDirectory.DIRECTORY_Ú
DIRECTORY_)ÚERRÚHUPÚINÚNVALÚOUTÚPRIÚIO_)ÚAPPENDÚGET_MASKÚIS_READABLEÚIS_SEEKABLEÚMASKÚNONBLOCKÚSET_MASKÚIO_FLAG_zGLib.IOFlags.ÚIO_FLAG_IS_WRITEABLEzGLib.IOFlags.IS_WRITABLE)ÚAGAINÚEOFÚERRORÚNORMALÚ
IO_STATUS_zGLib.IOStatus.)ÚCHILD_INHERITS_STDINÚDO_NOT_REAP_CHILDÚFILE_AND_ARGV_ZEROÚLEAVE_DESCRIPTORS_OPENÚSEARCH_PATHÚSTDERR_TO_DEV_NULLÚSTDOUT_TO_DEV_NULLÚSPAWN_zGLib.SpawnFlags.)ÚHIDDENÚIN_MAINÚREVERSEÚNO_ARGÚFILENAMEÚOPTIONAL_ARGÚNOALIASÚOPTION_FLAG_zGLib.OptionFlags.)ÚUNKNOWN_OPTIONÚ	BAD_VALUEÚFAILEDÚOPTION_ERROR_zGLib.OptionError.)Ú
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Ú_r;   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?   )ru   Úcontextr   r   r   rw   è  ó   zMainLoop.__new__c                 C   s   d S r   r   )r    r  r   r   r   Ú__init__ë  ó   zMainLoop.__init__c              	      st   t | jƒ�+ tƒ � tt| ƒ ¡  W d   ƒ n1 sw   Y  W d   ƒ d S W d   ƒ d S 1 s3w   Y  d S r   )r   Úquitr   Úsuperr  Úrunr|   ©Ú	__class__r   r   r  î  s   ÿÿ"ÿzMainLoop.runr   )rV   rW   rX   rw   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    Ú	may_blockr  r   r   r   ú  ó   zMainContext.iteration)T)rV   rW   rX   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)ru   ÚargsÚkwargsÚsourcer   r   r   rw     s   zSource.__new__c                    ó   t t| ƒ ¡ S r   )r  r#  r  ©r    r&  r'  r  r   r   r    r  zSource.__init__c                 C   s"   t | dƒr|  ¡  |  ¡  d S d S ©Nr$  )r‚   ÚdestroyÚ_clear_boxedr|   r   r   r   r}     s   
ûzSource.__del__Nc                    s0   t | dƒrt| ||ƒ d S tt| ƒ ||¡ d S r+  )r‚   r   r  r#  Úset_callback)r    ÚfnÚ	user_datar  r   r   r.    s   
zSource.set_callbackc                 C   ó   t  ¡ d S ©Ng�íµ ÷Æ°>©r   Úget_real_timer|   r   r   r   Úget_current_time  ó   zSource.get_current_timez.GLib.Source.get_time() or GLib.get_real_time()c                 C   rÀ   r   )Úget_priorityr|   r   r   r   Ú__get_priority'  rÃ   zSource.__get_priorityc                 C   ó   |   |¡ d S r   )Úset_priority©r    rP   r   r   r   Ú__set_priority*  r  zSource.__set_priorityc                 C   rÀ   r   )Úget_can_recurser|   r   r   r   Ú__get_can_recurse/  rÃ   zSource.__get_can_recursec                 C   r9  r   )Úset_can_recurser;  r   r   r   Ú__set_can_recurse2  r  zSource.__set_can_recurser   )rV   rW   rX   rw   r  r}   r.  r5  r   Ú_Source__get_priorityÚ_Source__set_priorityÚpropertyÚpriorityÚ_Source__get_can_recurseÚ_Source__set_can_recurseÚ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   Úidle_source_newr  )ru   rD  r(  r   r   r   rw   =  ó   zIdle.__new__c                    s*   t t| ƒ ¡  |tjkr|  |¡ d S d S r   )r  r#  r  r   ÚPRIORITY_DEFAULTr:  )r    rD  r  r   r   r  B  s   
ÿzIdle.__init__)rV   rW   rX   r   rK  rw   r  r  r   r   r  r   rH  <  s    rH  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   Útimeout_source_newr  )ru   ÚintervalrD  r(  r   r   r   rw   L  s   
zTimeout.__new__c                 C   s   |t jkr|  |¡ d S d S r   )r   rK  r:  )r    rN  rD  r   r   r   r  Q  s   
ÿzTimeout.__init__N)rV   rW   rX   r   rK  rw   r  r   r   r   r   rL  K  s    rL  c                 O   s"   |  dtj¡}tj|| g|¢R Ž S ©NrD  )r›   r   ÚPRIORITY_DEFAULT_IDLEÚidle_add)Úfunctionr0  r'  rD  r   r   r   rQ  Z  s   rQ  c                 O   ó$   |  dtj¡}tj|| |g|¢R Ž S rO  )r›   r   rK  Útimeout_add©rN  rR  r0  r'  rD  r   r   r   rT  b  ó   rT  c                 O   rS  rO  )r›   r   rK  Útimeout_add_secondsrU  r   r   r   rW  j  rV  rW  c                    sD  t |tƒrt |tjƒr2t dt¡ |}|‰ |}tˆ ƒstdƒ‚d|v r.t dt¡ |d }ntj	}nt
|ƒdk s>t|d ƒsBtdƒ‚|d ‰ |dd … }t ˆtƒr_‡ ‡fdd	„}tj ˆ¡}n<t ˆtjƒrztjd
krz‡ ‡fdd	„}tj ˆ ¡ ¡}n!tˆdƒr�‡ ‡fdd	„}tj ˆ ¡ ¡}nt ˆtjƒs—J ‚ˆ }ˆ}|||||fS )NzFCalling io_add_watch without priority as second argument is deprecatedzthird argument must be callablerD  zgCalling io_add_watch with priority keyword argument is deprecated, put it as second positional argumentr;   r   z%expecting callback as fourth argumentc                    ó   ˆ ˆ|g|¢R Ž S r   r   ©r  ÚcondÚdata©ÚcallbackÚchannelr   r   Ú<lambda>˜  ó    z(_io_add_watch_get_args.<locals>.<lambda>Úwin32c                    rX  r   r   rY  r\  r   r   r_  ›  r`  Úfilenoc                    rX  r   r   rY  r\  r   r   r_  Ÿ  r`  )r   r»   r   ÚIOConditionr   r   r   ÚcallablerG   rK  rJ   Ú	IOChannelÚunix_newÚsocketÚsysÚplatformÚwin32_new_socketrb  r‚   )r^  Ú	priority_Ú	conditionÚcb_and_user_datar'  r0  Úfunc_fdtransformÚreal_channelr   r\  r   Ú_io_add_watch_get_args~  s@   ÿÿ


rp  c                  O   s0   t | i |¤Ž\}}}}}tj||||g|¢R Ž S )zOio_add_watch(channel, priority, condition, func, *user_data) -> event_source_id)rp  r   Úio_add_watch)r&  r'  r^  rD  rl  Úfuncr0  r   r   r   rq  ¬  s   rq  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 )re  Nc                 C   sJ   |d ur
t j |¡S |d urt j ||pd¡S |d ur!t j |¡S tdƒ‚)NÚrzLeither a valid file descriptor, file name, or window handle must be supplied)r   re  rf  Únew_fileÚwin32_new_fdrG   )ru   ÚfiledesÚfilenameÚmodeÚhwndr   r   r   rw   ·  s   zIOChannel.__new__c                    r)  r   )r  re  r  r*  r  r   r   r  À  r  zIOChannel.__init__r§   c                 C   s
   t | |ƒS r   )r	   )r    Ú	max_countr   r   r   ÚreadÃ  r�   zIOChannel.readc                 C   s    |   ¡ \}}}}|d u rdS |S ©Nr¦   )Ú	read_line)r    Ú	size_hintÚstatusÚbufrÈ   Úterminator_posr   r   r   ÚreadlineÆ  s   zIOChannel.readlinec                 C   sN   g }t jj}|t jjkr%|  ¡ \}}}}|d u rd}| |¡ |t jjks|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É   r§   )r   rÊ   ÚencoderJ   Úwrite_chars)r    r€  Úbuflenr  Ú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   r;   r   r   c                 C   s2   z| j | }W n ty   tdƒ‚w |  ||¡S )Nzinvalid 'whence' value)Ú_whence_maprº   Ú
ValueErrorÚseek_position)r    ÚoffsetÚwhenceÚwr   r   r   Úseekê  s   ÿzIOChannel.seekc                 O   s$   |  dtj¡}t| |||g|¢R Ž S rO  )r›   r   rK  rq  )r    rl  r]  r0  r'  rD  r   r   r   Ú	add_watchñ  rV  zIOChannel.add_watchzGLib.io_add_watch()c                 C   s   | S r   r   r|   r   r   r   Ú__iter__÷  r  zIOChannel.__iter__c                 C   s$   |   ¡ \}}}}|tjjkr|S t‚r   )r}  r   rƒ  rë   ÚStopIteration)r    r  r€  rÈ   r�  r   r   r   Ú__next__ú  s   zIOChannel.__next__)NNNN©r§   )r   )rV   rW   rX   rw   r  r{  r‚  r…  rŠ  rŒ  r   ÚSeekTypeÚSETÚCURÚENDr�  r“  r”  r   r•  r—  Únextr  r   r   r  r   re  ¶  s    
	





re  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚPollFDc                 C   s   t  ¡ }| |_|S r   )r   rž  r  )ru   ÚfdÚeventsÚpollfdr   r   r   rw   	  rJ  zPollFD.__new__c                 C   s   || _ || _d S r   )rŸ  r   )r    rŸ  r   r   r   r   r    s   
zPollFD.__init__N)rV   rW   rX   rw   r  r   r   r   r   rž    s    rž  c                 O   s  g }t |ƒrBt dt¡ | }|}t|ƒdkr| dtj¡}nNt|ƒdkr.|}| dtj¡}n>t|ƒdkr>|d g}|d }n.tdƒ‚| }|}d|v rQ|d }|}nt|ƒdkrht |d ƒrh|d }|dd … }ntdƒ‚d	|v r{|rvtd
ƒ‚|d	 f}||||fS )NzHCalling child_watch_add without priority as first argument is deprecatedr   rD  r;   r   z'expected at most 4 positional argumentsrR  z#expected callback as third argumentr[  z'got multiple values for "data" argument)	rd  r   r   r   rJ   r›   r   rK  rG   )Úpriority_or_pidÚpid_or_callbackr&  r'  r0  Úpidr]  rD  r   r   r   Ú_child_watch_add_get_args  s<   ÿ


r¥  c                  O   s,   t | i |¤Ž\}}}}tj|||g|¢R Ž S )z/child_watch_add(priority, pid, function, *data))r¥  r   Úchild_watch_add)r&  r'  rD  r¤  rR  r[  r   r   r   r¦  G  s   r¦  c                   C   r1  r2  r3  r   r   r   r   r5  P  r6  r5  zGLib.get_real_time()c                 C   s   t  | |¡d S )Nr   )r   Úfilename_from_utf8)Ú
utf8stringrJ   r   r   r   r§  [  r"  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_infor˜  )Wr   rh  rg  Ú_ossighelperr   r   Úmoduler   r   r   r   r   r	   Ú	overridesr
   r   r   Úgir   r   r   Ú__all__r   r   r«   Ú	gi._errorr   r'   r(   r)   r*   r+   r   r"   r&   rV   rW   Ú	__gtype__ÚmatchesrÆ   Únew_literalÚobjectr,   rš   rY   rr   r%  rË   r/   Úattrrœ   ÚUserDirectoryÚglobalsrc  ÚIOFlagsÚIS_WRITABLErç   rƒ  Ú
SpawnFlagsÚOptionFlagsÚOptionErrorÚnameÚsplitr  r  r#  rH  rL  rQ  rT  rW  rp  rq  re  rž  r¥  r¦  r5  r§  r‚   r©  rª  ÚMAJOR_VERSIONÚMINOR_VERSIONÚMICRO_VERSIONr«  r¬  r   r   r   r   Ú<module>   s  



Gó g





6






+
N

	
'






ÿ
