
    gix                     N   d dl Z 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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j5                  d
       d dlm	Z	 d dlmZ eZe	j<                  Ze	j>                  Ze	j@                  Z e	jB                  Z!d Z"d Z#d Z$de_%        de_&        ej:                  jN                  e_'        e#e_(         e)e$      e_*        eg dz  Z G d d      Z+dddddddddddddd Z, G d! d"ejZ                        Z-d# Z. e/e-de.       ej5                  d"       djd%Z0ej5                  d&       d'D ]C  Z1d(e1z   Z2 ede2d)e1z           e3ejh                  d*e1z          e5       e2<   ej5                  e2       E d+D ]4  Z1 e3ejl                  e1       e5       d,e1z   <   ej5                  d,e1z          6 d-D ]@  Z1d.e1z   Z2 ede2d/e1z           e3ejn                  e1       e5       e2<   ej5                  e2       B ejn                  jp                  Z9 edd0d1       ej5                  d0       d2D ]@  Z1d3e1z   Z2 e3ejt                  e1       e5       e2<    ede2d4e1z          ej5                  e2       B d5D ]@  Z1d6e1z   Z2 e3ejv                  e1       e5       e2<    ede2d7e1z          ej5                  e2       B d8D ]@  Z1d9e1z   Z2 e3ejx                  e1       e5       e2<    ede2d:e1z          ej5                  e2       B d;D ]@  Z1d<e1z   Z2 ede2d=e1z           e3ejz                  e1       e5       e2<   ej5                  e2       B d>D ]9  Z>e>j                  d?d@      d$   Z2 e3e	e>       e5       e2<   ej5                  e2       ;  G dA dBej                        Z@ ee@      Z@ej5                  dB        G dC dDej                        ZA eeA      ZAej5                  dD        G dE dFej                        ZB eeB      ZBej5                  dF        G dG dHeB      ZCej5                  dH        G dI dJeB      ZDej5                  dJ       ej                  dKdLZFej5                  dM       ej                  dKdNZHej5                  dO       ej                  dKdPZIej5                  dQ       dR ZJej5                  dS       dT ZKej5                  dU        G dV dWej                        ZL eeL      ZLej5                  dW        G dX dYej                        ZM eeM      ZMej5                  dY       dZ ZNej5                  d[       d\ ZOej5                  d]       d^ ZP eePd_      ZPej5                  d`       djdaZQej5                  db        eRedc      r'ej                  ZTej5                  dd        edddde       ej                  ej                  ej                  fZXej5                  df        eddfdg       eZYej5                  dh        eddhdi       y)k    N   )register_sigint_fallbackget_event_loop)get_introspection_module)variant_type_from_string
source_newsource_set_callbackio_channel_readmain_context_query)override
deprecateddeprecated_attr)PyGIDeprecationWarningversion_infoGLib)_optionoption)_gi)GErrorc                  <    t        j                  dt        d       y )NzSince version 3.11, calling threads_init is no longer needed. See: https://pygobject.gnome.org/guide/threading.html#threads-faqr   )
stacklevel)warningswarnr        3/usr/lib/python3/dist-packages/gi/overrides/GLib.pythreads_initr   8   s    MM	L	r   c                     t        | j                  t              r t        j	                  | j                        }n| j                  }|| j
                  f||fk(  S N)
isinstancedomainstrr   quark_from_stringcode)selfr!   r$   self_domain_quarks       r   gerror_matchesr'   A   sI     $++s# 224;;? KKtyy)fd^;;r   c                 F    t         j                  |       }t        |||      S r   )r   quark_to_stringr   )r!   messager$   domain_quarks       r   gerror_new_literalr,   K   s!    ''/L'<..r   Errorzgi.repository.GLib)r-   r   OptionContextOptionGroupPidspawn_asyncr   c                   d   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 Zy)_VariantCreator)bynqiuxthdsogvc                    t         j                  |      }|| j                  v r | j                  |   |      S t         j                  j	                  |      }||j                         S |j                         rM|j                  | j                  |j                         j                         |             |j                         S 	 t        |       |j                         r-|j                         t        |      k7  rt        d| d|       |j!                         rt        |      dk7  rt        d| d|       |j#                         rv|j                         j                         }t%        |t&              r|j)                         }|D ]#  }|j                  | j                  ||             % |j                         S |dd }|D ]J  }t+        |      j                         }|j                  | j                  ||             |t        |      d }L |j                         S # t        $ r t        d| d|       w xY w)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.
        NzJCould not create array, tuple or dictionary entry from non iterable value  z,Tuple mismatches value's number of elements r   z*Dictionary entries must have two elements    )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_typer8   remainer_formatdups	            r   rL   z_VariantCreator._createu   s%    !!&)T,,,24**62599 %%))&1=;;= ??dll6>>+;+F+F+H%PQ;;= 	K ??!1SZ!?>vhawO  !c%jAo<VHAeWM  ??!>>+668L%& A!!$,,|Q"?@A {{} %QRjO >.?JJL!!$,,sA"67"1#c(*"=>
 {{}7  	\]c\ddefkelm 	s   H) )IN)__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_variantrF   rL   r   r   r   r3   r3   c   s    \\%%\\""\\##\\$$\\##\\$$\\##\\$$\\$$\\$$\\$$\\))\\''\\%%"5r   r3   get_booleanget_byte	get_int16
get_uint16	get_int32
get_uint32	get_int64
get_uint64
get_handle
get_double
get_string)r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   c                   z    e Zd Zd Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zed
        Zd Zd Zd Zd Zd Zy)rb   c                     t         j                  j                  |      st        d|      t	               }|j                  ||      }||_        |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   rE   string_is_validrP   r3   rL   format_string)clsr   rY   creatorrA   s        r   __new__zVariant.__new__   sJ     //>A=QQ!#OOM51'r   c                  @    t         j                  j                  |       S r   )r   rb   	new_tuple)elementss    r   r   zVariant.new_tuple   s    ||%%h//r   c                     t        j                  t              5  | j                          d d d        y # 1 sw Y   y xY wr   )
contextlibsuppressImportErrorunrefr%   s    r   __del__zVariant.__del__   s0      - 	 JJL	 	 	s   4=c                 $    | j                  d      S NT)print_r   s    r   __str__zVariant.__str__   s    {{4  r   c                     t        | d      r| j                  }n| j                         }d| d| j                  d       dS )Nr   zGLib.Variant('z', F))hasattrr   get_type_stringr   )r%   fs     r   __repr__zVariant.__repr__   sD    4)""A$$&As#dkk%&8%9;;r   c                 D    	 | j                  |      S # t        $ r Y yw xY wNFequalrP   r%   others     r   __eq__zVariant.__eq__   s(    	::e$$ 		s    	c                 F    	 | j                  |       S # t        $ r Y yw xY wr   r   r   s     r   __ne__zVariant.__ne__   s+    	zz%((( 		s    	  c                 T    t        | j                         | j                         f      S r   )hashr   unpackr   s    r   __hash__zVariant.__hash__   s#     T))+T[[];<<r   c                      j                         }t        j                  |      }|r t         |             S |j	                  d      r+t         fdt         j                               D              S |j	                  d      rri }t         j                               D ]R  } j                  |      }|j                  d      j                         ||j                  d      j                         <   T |S |j	                  d      rDt         j                               D cg c]!  } j                  |      j                         # c}S |j	                  d      r j                         j                         S |j	                  d      r0 j                         sy	 j                  d      j                         S t        d
|z         c c}w )z1Decompose a GVariant into a native Python object.(c              3   \   K   | ]#  }j                  |      j                          % y wr   )get_child_valuer   ).0r8   r%   s     r   	<genexpr>z!Variant.unpack.<locals>.<genexpr>  s*      56$$Q'..0s   ),a{rD   r   arA   mNzunsupported GVariant type )r   LEAF_ACCESSORSgetgetattr
startswithtuplerange
n_childrenr   r   get_variantNotImplementedError)r%   type_stringlaresr8   rA   s   `     r   r   zVariant.unpack   s   **, ,$74$&& !!#& :?@Q:R  
 !!$'C4??,- S((+565F5Fq5I5P5P5RA%%a(//12S J !!#&>CDOODU>VWD((+224WW !!#&##%,,.. !!#&??$''*1133!">"LMM Xs   %&Gc                 &   |dk(  rg S |j                  d      s|gS g }d}|dd }|rj|d   }||z  }|dd }|dv r|d	v r<d}|}|dk(  rd
nd}|dkD  r*|d   }||z  }|dd }||k(  r|dz  }n
||k(  r|dz  }|dkD  r*|j                  |       d}|rj|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    rD   r   N)r   r   )r   {r   })r   append)	klass	signatureresultheadtailclevelupdowns	            r   split_signaturezVariant.split_signature$  s     I##C(;2QAAID8DJJ CisSaiQAAID8DBw
d
 ai MM$D1 4 r   c                 .   | j                         dv rt        | j                               S | j                         j                  d      s| j                         j                  d      r| j	                         S t        d| j                          d      )Nr>   r?   r@   r   r   GVariant type z does not have a length)r   rS   r{   r   r   rP   r   s    r   __len__zVariant.__len__W  s    !_4t())!,,S1T5I5I5K5V5V6
 ??$$T11344KL
 	
r   c                    | j                         j                  d      r9	 | j                  |t        d            }|t	        |      |j                         S | j                         j                  d      s| j                         j                  d      ret        |      }|dk  r| j                         |z   }|dk  s|| j                         k\  rt        d      | j                  |      j                         S | j                         dv r| j                         j                  |      S t        d	| j                          d
      # t        $ r t        | j                               D ]X  }| j                  |      }|j                  d      j                         |k(  s7|j                  d      j                         c cY S  t	        |      w xY w)Nr   *r   rD   r   r   zlist index out of ranger   r   z is not a container)r   r   lookup_valuer   KeyErrorr   rP   r   r   r   int
IndexErrorr{   __getitem__)r%   keyvalr8   rA   s        r   r   zVariant.__getitem__c  s   !,,T2$''-Ec-JK;"3-'zz|# !,,S1T5I5I5K5V5V6
 c(CQwoo'#-Qw#!22 !:;;'',3355 !_4??$0055.)=)=)?(@@STUU3  $ t01 =A,,Q/A((+224; 003::<<= sm#$s   7E
 
AG#!GGc                 "    | j                         S r   )__bool__r   s    r   __nonzero__zVariant.__nonzero__  s    }}r   c                    | j                         dv r| j                         dk7  S | j                         dv r| j                         S | j                         dv rt        | j	                               dk7  S | j                         j                  d      s| j                         j                  d      r| j                         dk7  S t        | j                               S )N)	r5   r6   r7   r8   r9   r:   r;   r<   r=   r   )r4   r   r   r   )r   r   rq   rS   r{   r   r   boolr   s    r   r   zVariant.__bool__  s    !%RR;;=A%%!U*##%%!_4t()Q..!,,S1T5I5I5K5V5V6
 ??$))DKKM""r   c                 <   | j                         j                  d      st        d| j                          d      g }t        | j	                               D ]A  }| j                  |      }|j                  |j                  d      j                                C |S )Nr   r   z is not a dictionaryr   )r   r   rP   r   r   r   r   r   )r%   r   r8   rA   s       r   keyszVariant.keys  s    ##%006 !5!5!7 88LM  t() 	6A$$Q'AJJq((+2245	6 
r   N)r_   r`   ra   r   staticmethodr   r   r   r   r   r   r   r   classmethodr   r   r   r   r   r   r   r   r   rb   rb      sp    ( 0 0!<=%NN , ,d

!VN#
r   rb   c                 J    t         j                  j                  |       \  }}|S r   )r   rb   r{   )r%   rY   _lengths      r   r{   r{     s    \\,,T2NE7Lr   r   c                     t        | t              r%t        j                  | j	                  d      |      S t        j                  | |      S )NUTF-8)r    bytesr   markup_escape_textdecode)textlengths     r   r   r     s;    $&&t{{7';VDD""400r   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_rD   c                   .     e Zd ZddZddZ fdZ xZS )MainLoopc                 B    t         j                  j                  |d      S r   )r   r/  rH   )r   contexts     r   r   zMainLoop.__new__)  s    }}  %00r   c                      y r   r   )r%   r1  s     r   __init__zMainLoop.__init__,      r   c                    t        | j                        5  t        | j                               j	                  | j                        5  t
        |           d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wr   )r   quitr   get_contextrunningsuperrun)r%   	__class__s    r   r:  zMainLoop.run/  sd    $TYY/	4++-.66tyyA	 GKM		 	 	 	 	 	s#   3A6
A*A6*A3	/A66A?r   )r_   r`   ra   r   r3  r:  __classcell__r;  s   @r   r/  r/  '  s    1 r   r/  c                   T     e Zd Zd fd	Zdedeeeej                     f   fdZ	 xZ
S )MainContextc                     t        |       j                         5  t        |   |      cd d d        S # 1 sw Y   y xY wr   )r   pausedr9  	iteration)r%   	may_blockr;  s     r   rB  zMainContext.iteration=  s6    D!((* 	07$Y/	0 	0 	0s   4=max_priorityreturnc                     t        | |      S )am  Determines information necessary to poll this main loop.

        :param max_priority: maximum priority source to check
        :returns:
          The timeout (msec) used for polling,
          and the list of poll fd's.

        Please also check the usage notes in the
        `C documention <https://docs.gtk.org/glib/method.MainContext.query.html>`__.
        )r   )r%   rD  s     r   queryzMainContext.queryA  s     "$55r   )T)r_   r`   ra   rB  r   r   listr   PollFDrG  r<  r=  s   @r   r?  r?  ;  s.    06# 6%T$++5F0F*G 6r   r?  c                        e Zd Zd Z fdZd Zd Zd fd	Zd Z e	ed      Zd Z
d	 Z ee
e      Zd
 Zd Z eee      Z xZS )Sourcec                 B    t               }| |_        t        |dd       |S )N__pygi_custom_sourceT)r   r;  setattr)r   argskwargssources       r   r   zSource.__new__T  s%     .5r   c                      t         |          S r   r9  r3  r%   rO  rP  r;  s      r   r3  zSource.__init__\      w!!r   c                 ~    t        | d      r1| j                          | j                          | j                          y y NrM  )r   destroyfinalize_clear_boxedr   s    r   r   zSource.__del___  s2    4/0 LLNMMO 1r   c                      y r   r   r   s    r   rY  zSource.finalizeh  r4  r   c                 Z    t        | d      rt        | ||       y t        |   ||       y rW  )r   r	   r9  set_callback)r%   fn	user_datar;  s      r   r]  zSource.set_callbackk  s-    4/0  b)4 G Y/r   c                 0    t         j                         dz  S Ngư>r   get_real_timer   s    r   get_current_timezSource.get_current_timet  s    !!#h..r   z.GLib.Source.get_time() or GLib.get_real_time()c                 "    | j                         S r   )get_priorityr   s    r   __get_priorityzSource.__get_priority}  s      ""r   c                 &    | j                  |       y r   )set_priorityr%   rY   s     r   __set_priorityzSource.__set_priority  s    % r   c                 "    | j                         S r   )get_can_recurser   s    r   __get_can_recursezSource.__get_can_recurse  s    ##%%r   c                 &    | j                  |       y r   )set_can_recurserj  s     r   __set_can_recursezSource.__set_can_recurse  s    U#r   r   )r_   r`   ra   r   r3  r   rY  r]  rd  r   _Source__get_priority_Source__set_prioritypropertypriority_Source__get_can_recurse_Source__set_can_recursecan_recurser<  r=  s   @r   rK  rK  S  sf    " 0/ "J#! 7H&$ ,.?@Kr   rK  c                   T     e Zd Zej                  fdZej                  f fd	Z xZS )Idlec                 <    t         j                         }| |_        |S r   )r   idle_source_newr;  )r   ru  rQ  s      r   r   zIdle.__new__  s    %%'r   c                 t    t         t        |           |t        j                  k7  r| j                  |       y y r   )r9  rK  r3  r   PRIORITY_DEFAULTri  )r%   ru  r;  s     r   r3  zIdle.__init__  s1    fd$&t,,,h' -r   )r_   r`   ra   r   r~  r   r3  r<  r=  s   @r   rz  rz    s&    "33 
 !% 5 5 ( (r   rz  c                   L    e Zd Zdej                  fdZdej                  fdZy)Timeoutr   c                 >    t         j                  |      }| |_        |S r   )r   timeout_source_newr;  )r   intervalru  rQ  s       r   r   zTimeout.__new__  s    ((2r   c                 N    |t         j                  k7  r| j                  |       y y r   )r   r~  ri  )r%   r  ru  s      r   r3  zTimeout.__init__  s#    t,,,h' -r   N)r_   r`   ra   r   r~  r   r3  r   r   r   r  r    s$    $*?*? 
 !"D,A,A (r   r  ru  c                0    t        j                  || g| S r   )r   idle_add)functionru  r_  s      r   r  r    s    ==88i88r   r  c                2    t        j                  || |g| S r   )r   timeout_addr  r  ru  r_  s       r   r  r    s    HhE9EEr   r  c                2    t        j                  || |g| S r   )r   timeout_add_secondsr  s       r   r  r    s    ##HhM9MMr   r  c                     t        |t              rt        |t        j                        rkt	        j
                  dt               |}||}t              st        d      d|v r t	        j
                  dt               |d   }nBt        j                  }n1t        |      dk  st        |d         st        d      |d   |dd  }t         t              r& fd}t        j                  j                         }nt         t        j                        rGt        j                  d	k(  r4 fd
}t        j                  j!                   j#                               }n`t%         d      r4 fd}t        j                  j                   j#                               }n t         t        j                        sJ } }|||||fS )NzFCalling io_add_watch without priority as second argument is deprecatedzthird argument must be callableru  zgCalling io_add_watch with priority keyword argument is deprecated, put it as second positional argumentrD   r   z%expecting callback as fourth argumentc                      |g| S r   r   r-  conddatacallbackchannels      r   func_fdtransformz0_io_add_watch_get_args.<locals>.func_fdtransform      GT1D11r   win32c                      |g| S r   r   r  s      r   r  z0_io_add_watch_get_args.<locals>.func_fdtransform  r  r   filenoc                      |g| S r   r   r  s      r   r  z0_io_add_watch_get_args.<locals>.func_fdtransform  r  r   )r    r   r   IOConditionr   r   r   callablerP   r~  rS   	IOChannelunix_newsocketsysplatformwin32_new_socketr  r   )	r  	priority_	conditioncb_and_user_datarP  r_  r  real_channelr  s	   `       @r   _io_add_watch_get_argsr    s   i%It?O?O)PT"	

 %		!=>> MMy& z*I--I 1$H5Ea5H,ICDD#A&$QR(	 '3	2 ~~..w7	GV]]	+0G	2 ~~66w~~7GH	(	#	2 ~~..w~~/?@'4>>222#I/?JJr   r  c                  V    t        | i |\  }}}}}t        j                  ||||g| S )zPio_add_watch(channel, priority, condition, func, *user_data) -> event_source_id.)r  r   io_add_watch)rO  rP  r  ru  r  funcr_  s          r   r  r    s@    4J	551GXy$	 Wh	4L)LLr   r  c                       e Zd ZddZ fdZddZddZddZddZddZ	d Z
ej                  j                  ej                  j                  ej                  j                  d	Zdd
Zej$                  ddZ eed      Zd Zd Z xZS )r  c                     |t         j                  j                  |      S |$t         j                  j                  ||xs d      S |t         j                  j	                  |      S t        d      )NrzLeither a valid file descriptor, file name, or window handle must be supplied)r   r  r  new_filewin32_new_fdrP   )r   filedesfilenamemodehwnds        r   r   zIOChannel.__new__  si    >>**733>>**8T[SAA>>..t44Z
 	
r   c                      t         |          S r   rS  rT  s      r   r3  zIOChannel.__init__#  rU  r   c                     t        | |      S )z7Reads data from a :obj:`~gi.repository.GLib.IOChannel`.)r
   r%   	max_counts     r   readzIOChannel.read&  s    tY//r   c                 $    | j                  |      S )z Alias for GLib.IOChannel.read().)r  r  s     r   
read_charszIOChannel.read_chars*  s    yy##r   c                 6    | j                         \  }}}}|y|S Nr   )	read_line)r%   	size_hint_statusbufr   _terminator_poss         r   readlinezIOChannel.readline.  s&     48>>3C0#w;
r   c                    g }t         j                  j                  }|t         j                  j                  k(  rH| j                         \  }}}}|d}|j	                  |       |t         j                  j                  k(  rH|S r  )r   IOStatusr  r  r   )r%   r  linesstatusr  r   r  s          r   	readlineszIOChannel.readlines6  sr     %%,,,6:nn6F3VS'? {LL ,,, r   c                     t        |t              s|j                  d      }|dk(  rt        |      }| j	                  ||      \  }}|S )Nr   r   )r    r   encoderS   write_chars)r%   r  buflenr  writtens        r   writezIOChannel.writeD  sF    #u%**W%CR<XF!--c6:'r   c                 4    |D ]  }| j                  |        y r   )r  )r%   r  lines      r   
writelineszIOChannel.writelinesL  s     	DJJt	r   )r   rD   r   c                 v    	 | j                   |   }| j                  ||      S # t        $ r t        d      w xY w)Nzinvalid 'whence' value)_whence_mapr   
ValueErrorseek_position)r%   offsetwhencews       r   seekzIOChannel.seekR  sI    	7  (A !!&!,,  	7566	7s   # 8r  c                     t        | |||g| S r   )r  )r%   r  r  ru  r_  s        r   	add_watchzIOChannel.add_watchY  s     D(IxL)LLr   zGLib.io_add_watch()c                     | S r   r   r   s    r   __iter__zIOChannel.__iter__`  s    r   c                 v    | j                         \  }}}}|t        j                  j                  k(  r|S t        r   )r  r   r  r  StopIteration)r%   r  r  r   r  s        r   __next__zIOChannel.__next__c  s4    26..2B/gT]])))Jr   )NNNNr   )r   )r_   r`   ra   r   r3  r  r  r  r  r  r  r   SeekTypeSETCURENDr  r  r~  r  r   r  r  r<  r=  s   @r   r  r    s    	
"0$ mm''DMM,=,=$--BSBSTK- 9=8M8MM
 9&;<Ir   r  c                       e Zd Zd Zd Zy)rI  c                 <    t         j                         }| |_        |S r   )r   rI  r;  )r   fdeventspollfds       r   r   zPollFD.__new__o  s    r   c                      || _         || _        y r   )r  r  )r%   r  r  s      r   r3  zPollFD.__init__t  s    r   N)r_   r`   ra   r   r3  r   r   r   rI  rI  n  s    
r   rI  c                     g }t        |      rt        j                  dt               | }|}t	        |      dk(  r!|j                  dt        j                        }nt	        |      dk(  r#|}|j                  dt        j                        }ngt	        |      dk(  r|d   g}|d   }nMt        d      | }|}d|v r|d   }|}n2t	        |      dkD  rt        |d         r|d   }|dd  }nt        d      d	|v r|rt        d
      |d	   f}||||fS )NzHCalling child_watch_add without priority as first argument is deprecatedr   ru  rD   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   rS   r   r   r~  rP   )priority_or_pidpid_or_callbackrO  rP  r_  pidr  ru  s           r   _child_watch_add_get_argsr    s(   I V"	
 "t9>zz*d.C.CDHY!^Izz*d.C.CDHY!^a	IAwHEFF"j)HIY]xQ0AwHQRIABBEFFF^%	S(I--r   r  c                  R    t        | i |\  }}}}t        j                  |||g| S )z0child_watch_add(priority, pid, function, *data).)r  r   child_watch_add)rO  rP  ru  r  r  r  s         r   r  r    s4    $=t$Nv$N!Hc8T#x?$??r   r  c                  0    t         j                         dz  S ra  rb  r   r   r   rd  rd    s    (**r   zGLib.get_real_time()rd  c                 4    t         j                  | |      d   S )Nr   )r   filename_from_utf8)
utf8stringrS   s     r   r  r    s    "":s3A66r   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  )Zr   r   r  r  _ossighelperr   r   moduler   r   r   r   r	   r
   r   	overridesr   r   r   gir   r   r   __all__r   r   r   	gi._errorr   r-   r.   r/   r0   r1   r   r'   r,   r_   r`   	__gtype__matchesr   new_literalr3   r   rb   r{   rN  r   r6   attrr   UserDirectoryglobalsr  IOFlagsIS_WRITABLEr  r  
SpawnFlagsOptionFlagsOptionErrornamesplitr/  r?  rK  rz  r  PRIORITY_DEFAULT_IDLEr  r~  r  r  r  r  r  rI  r  r  rd  r  r   r  r  MAJOR_VERSIONMINOR_VERSIONMICRO_VERSIONr  r  r   r   r   <module>r     sv  $   
  C -  > = 3'
    x   !!oo	ggoo</ ' **&& !34    G GV 
												"hdll hV
 z * y 1 # $	
 A q DFD"AA"EFd00,2BCGIdONN4 
4 A"4#3#3Q7GIeaiNN519
 A >DFD/A"56dllA.GIdONN4 ||//  .0J K % &	, A!DdmmQ/GIdOFD"2Q"67NN4	
 A a<Ddooq1GIdOFD"4q"89NN4
 A ADd..2GIdOFD"5"9:NN4 
3 AQDFD"5"9:d..2GIdONN4	 D( ::c1b!Dc4(GIdONN4-2t}}   H z 6$"" 6( {# } 8AT[[ 8Av 
&	 x 	(6 	( v (f ( y  -1,F,F 9 z  :>9N9N F }  BFAVAV N $ %4Kn ' (M ~ P Pf Y	 { T[[  
&	 x %.R * +@   !+ .0FG  ! "
7 # $ 4"#//NN)*F24JK ""D$6$68J8JK ~  
B     (*; <r   