3
KP\                 @   s  d dl Z d dlZd dlZd dl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j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(G dd dej)Z)dd Z*e+e)de* ejd ddd Z,ejd  xFdD ]>Z-d)e- Z.ede.d*e-  e/ej0d+e- e1 e.< eje. qpW x2dD ]*Z-e/ej2e-e1 d2e- < ejd2e-  qW xBdD ]:Z-d:e- Z.ede.d;e-  e/ej3e-e1 e.< eje. qW ej3j4Z5edd<d= ejd< xBdD ]:Z-dBe- Z.e/ej6e-e1 e.< ede.dCe-  eje. qNW xBdD ]:Z-dKe- Z.e/ej7e-e1 e.< ede.dLe-  eje. qW xBdD ]:Z-dTe- Z.e/ej8e-e1 e.< ede.dUe-  eje. qW xBdD ]:Z-dYe- Z.ede.dZe-  e/ej9e-e1 e.< eje. qW x8dD ]0Z:e:j;dmdd Z.e/ee:e1 e.< eje. q^W G dndo doej<Z<ee<Z<ejdo G dpdq dqej=Z=ee=Z=ejdq G drds dsej>Z>ee>Z>ejds G dtdu due>Z?ejdu G dvdw dwe>Z@ejdw dxdy ZAejdy dzd{ ZBejd{ d|d} ZCejd} d~d ZDejd dd ZEejd G dd dejFZFeeFZFejd G dd dejGZGeeGZGejd dd ZHejd dd ZIejd dd ZJeeJdZJejd dddZKejd eLedsBdd ZMeMe_NejOejPejQfZRejd eddd eZSejd eddd dS )    N   )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| 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 j| }t|||S )N)r   Zquark_to_stringr   )r   messager   Zdomain_quarkr   r   r   gerror_new_literalE   s    
r   Errorr   OptionContextOptionGroupPidspawn_asyncc               @   s   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d Zdd Zdd	 Zd
S )_VariantCreator)bynqiuxthdsogvc             C   s   | j j|d }|r`|dk	rN|s(td||d }||dd |dd fS d|dd dfS |d dkrx| j||S |jdr| j||S |d dkr| j||S td| dS )	a@  Create a GVariant object from given format and argument list.

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

        Return a tuple (variant, rest_format, rest_args) with the generated
        GVariant, the remainder of the format string, and the remainder of the
        arguments.

        If args is None, then this won't actually consume any arguments, and
        just parse the format string and generate empty GVariant structures.
        This is required for creating empty dictionaries or arrays.
        r   Nz/not enough arguments for GVariant format string   (za{azcannot handle GVariant type )_LEAF_CONSTRUCTORSget	TypeError_create_tuple
startswith_create_dict_create_arrayNotImplementedError)r   formatargsconstructorr3   r   r   r   _createi   s    
z_VariantCreator._createc             C   s  |dd }|dkr\|}x,|r<|j dr*P | j|dd }qW td|dd }d|dfS | srt|d t rztdtjjtd}xRt	t
|d D ]>}|j drtd| j||d |d \}}}|j| qW |dd }|j d std|dd }|j ||fS dS )	z>Handle the case where the outermost type of format is a tuple.r4   N)z#tuple type string not closed with )r   zexpected tuple argumentrz&too many arguments for tuple signature)r;   rB   r9   r   tupler   VariantBuildernewr   rangelen	add_valueend)r   r?   r@   rest_formatbuilderr*   r3   _r   r   r   r:      s.    


z_VariantCreator._create_tuplec             C   sT  d}|dks|d  r| j |dd dd }| j |dd }|jdsPtd|dd }|dt|t|  }tjjt|}ntjjtd}x|d j D ]\}}| j |dd |g\}}}	| j ||g\}
}}	|jdstd|dd }tjjtd}|j	| |j	|
 |j	|j
  qW |dk	rF|dd }|j
 ||fS )	z=Handle the case where the outermost type of format is a dict.Nr   r   r4   }z(dictionary type string not closed with }za{?*}z{?*})rB   r;   r9   rI   r   rF   rG   r   itemsrJ   rK   )r   r?   r@   rM   rL   element_typekr3   Zkey_vrN   Zval_ventryr   r   r   r<      s.    




z_VariantCreator._create_dictc       	      C   s   d}|dks|d  rX| j |dd dd }|dt|t|  }tjjt|}nZtjjtd}xHtt|d D ]4}| j |dd |d |d \}}}|j| qzW |dk	r|dd }|j ||fS )z?Handle the case where the outermost type of format is an array.Nr   r4   za*)	rB   rI   r   rF   rG   r   rH   rJ   rK   )	r   r?   r@   rM   rL   rQ   r*   r3   rN   r   r   r   r=      s    &z_VariantCreator._create_arrayN)__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_variantr7   rB   r:   r<   r=   r   r   r   r   r%   V   s$   $"!r%   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 ) rW   c             C   s4   t  }|j||g\}}}|r*td| ||_|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 remaining format string: "%s")r%   rB   r9   format_string)clsrX   valueZcreatorr3   rL   rN   r   r   r   __new__   s    zVariant.__new__c              G   s   t jj| S )N)r   rW   	new_tuple)elementsr   r   r   r\      s    zVariant.new_tuplec             C   s&   y| j   W n tk
r    Y nX d S )N)ZunrefImportError)r   r   r   r   __del__   s    zVariant.__del__c             C   s
   | j dS )NT)print_)r   r   r   r   __str__  s    zVariant.__str__c             C   s,   t | dr| j}n| j }d|| jdf S )NrX   zGLib.Variant('%s', %s)F)hasattrrX   get_type_stringr`   )r   fr   r   r   __repr__  s    
zVariant.__repr__c             C   s$   y
| j |S  tk
r   dS X d S )NF)equalr9   )r   otherr   r   r   __eq__  s    
zVariant.__eq__c             C   s&   y| j | S  tk
r    dS X d S )NT)rf   r9   )r   rg   r   r   r   __ne__  s    zVariant.__ne__c             C   s   t | j | j fS )N)hashrc   unpack)r   r   r   r   __hash__  s    zVariant.__hash__c                sV   j  j j j j j j j j j	 j
 j
 j
d}|j j }|rR| S  j jdr fddt j D }t|S  j jdri }x:t j D ]*} j|}|jdj ||jdj < qW |S  j jdr fd	dt j D S  j jd
r j j S  j jdrB j }|r>|j S dS td j  dS )z1Decompose a GVariant into a native Python object.)r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r5   c                s   g | ]} j |j qS r   )get_child_valuerk   ).0r*   )r   r   r   
<listcomp>>  s   z"Variant.unpack.<locals>.<listcomp>za{r4   r   r6   c                s   g | ]} j |j qS r   )rm   rk   )rn   r*   )r   r   r   ro   L  s   r3   mNzunsupported GVariant type )get_booleanZget_byteZ	get_int16Z
get_uint16Z	get_int32Z
get_uint32Z	get_int64Z
get_uint64Z
get_handleZ
get_double
get_stringr8   rc   r;   rH   
n_childrenrE   rm   rk   Zget_variantZ	get_mayber>   )r   ZLEAF_ACCESSORSZlaresr*   r3   rp   r   )r   r   rk   $  sF    


 
zVariant.unpackc       	      C   s   |dkrg S |j ds|gS g }d}|dd }x|r|d }||7 }|dd }|dkr\q2|dkrd}|}|dkrzd
}nd}xJ|dkr|d }||7 }|dd }||kr|d7 }q||kr|d8 }qW |j| d}q2W |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()r5    r4   r   Nrp   r6   {rC   rO   )rp   r6   )r5   rv   )r;   append)	klassZ	signatureresultheadtailclevelZupZdownr   r   r   split_signatureZ  s<    




zVariant.split_signaturec             C   sP   | j  dkrt| j S | j  jds4| j  jdr<| j S td| j   d S )Nr0   r1   r2   r6   r5   z'GVariant type %s does not have a length)r0   r1   r2   )rc   rI   rr   r;   rs   r9   )r   r   r   r   __len__  s
    zVariant.__len__c             C   s&  | j  jdry(| j|td}|d kr0t||j S  tk
r   x>t| j D ].}| j	|}|j	dj |krT|j	dj S qTW t|Y nX | j  jds| j  jdrt
|}|dk r| j | }|dk s|| j krtd| j	|j S | j  dkr| j j|S td| j   d S )Nza{*r   r4   r6   r5   zlist index out of ranger0   r1   r2   z#GVariant type %s is not a container)r0   r1   r2   )rc   r;   Zlookup_valuer   KeyErrorrk   r9   rH   rs   rm   int
IndexErrorrr   __getitem__)r   keyvalr*   r3   r   r   r   r     s,    
zVariant.__getitem__c             C   s   | j  S )N)__bool__)r   r   r   r   __nonzero__  s    zVariant.__nonzero__c          
   C   s   | j  dkr| j d
kS | j  dkr,| j S | j  dkrHt| j d
kS | j  jdsd| j  jdrp| j d
kS | j  dkrt| j S dS )Nr'   r(   r)   r*   r+   r,   r-   r.   r/   r   r&   r0   r1   r2   r6   r5   r3   T)	r'   r(   r)   r*   r+   r,   r-   r.   r/   )r&   )r0   r1   r2   )r3   )rc   rk   rq   rI   rr   r;   rs   bool)r   r   r   r   r     s    zVariant.__bool__c             C   sZ   | j  jdstd| j   fS g }x2t| j D ]"}| j|}|j|jdj  q0W |S )Nza{z$GVariant type %s is not a dictionaryr   )rc   r;   r9   rH   rs   rm   rx   rk   )r   rt   r*   r3   r   r   r   keys  s    
zVariant.keysN)rT   rU   rV   r[   staticmethodr\   r_   ra   re   rh   ri   rl   rk   classmethodr   r   r   r   r   r   r   r   r   r   rW      s   66%rW   c             C   s   t jj| \}}|S )N)r   rW   rr   )r   rZ   lengthr   r   r   rr     s    rr   r4   c             C   s,   t | trtj| jd|S tj| |S d S )NzUTF-8)r   bytesr   markup_escape_textdecode)textr   r   r   r   r     s    
r   DESKTOP	DOCUMENTSDOWNLOADMUSICPICTURESPUBLIC_SHARE	TEMPLATESVIDEOSZUSER_DIRECTORY_zGLib.UserDirectory.DIRECTORY_Z
DIRECTORY_ERRHUPINNVALOUTPRIZIO_APPENDGET_MASKIS_READABLEIS_SEEKABLEMASKNONBLOCKSET_MASKZIO_FLAG_zGLib.IOFlags.IO_FLAG_IS_WRITEABLEzGLib.IOFlags.IS_WRITABLEAGAINEOFERRORNORMALZ
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_NULLZSPAWN_zGLib.SpawnFlags.HIDDENIN_MAINREVERSENO_ARGFILENAMEOPTIONAL_ARGNOALIASZOPTION_FLAG_zGLib.OptionFlags.UNKNOWN_OPTION	BAD_VALUEFAILEDZ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_MAXOFFSETrN   c                   s8   e Zd Zd
ddZdddZdd Z fdd	Z  ZS )MainLoopNc             C   s   t jj|dS )NF)r   r   rG   )rY   contextr   r   r   r[   0  s    zMainLoop.__new__c             C   sB   dd }t jdkr>ttdr$tj}ntj}|tjtj|| | _	d S )Nc             S   s   | j   d| _dS )NT)quit_quit_by_sigint)Zloopr   r   r   _handler5  s    z#MainLoop.__init__.<locals>._handlerwin32unix_signal_add)
sysplatformrb   r   r   unix_signal_add_fullPRIORITY_DEFAULTsignalSIGINT_signal_source)r   r   r   fnr   r   r   __init__4  s    

zMainLoop.__init__c             C   s   t | drtj| j d S )Nr   )rb   r   Zsource_remover   )r   r   r   r   r_   D  s    
zMainLoop.__del__c                s    t t| j  t| drtd S )Nr   )superr   runrb   KeyboardInterrupt)r   )	__class__r   r   r   H  s    
zMainLoop.run)N)N)rT   rU   rV   r[   r   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| j|S )N)r   r   	iteration)r   Z	may_block)r   r   r   r   U  s    zMainContext.iteration)T)rT   rU   rV   r   r   r   r   )r   r   r   S  s   r   c                   sx   e Zd Zdd Z f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)rY   r@   kwargssourcer   r   r   r[   ^  s    zSource.__new__c                s   t t| j S )N)r   r   r   )r   r@   r   )r   r   r   r   f  s    zSource.__init__Nc                s.   t | drt| || ntt| j|| d S )Nr   )rb   r   r   r   set_callback)r   r   	user_data)r   r   r   r   i  s    
zSource.set_callbackc             C   s   t j d S )Ngư>)r   get_real_time)r   r   r   r   get_current_timer  s    zSource.get_current_timez.GLib.Source.get_time() or GLib.get_real_time()c             C   s   | j  S )N)Zget_priority)r   r   r   r   Z__get_priorityz  s    zSource.__get_priorityc             C   s   | j | d S )N)set_priority)r   rZ   r   r   r   Z__set_priority}  s    zSource.__set_priorityc             C   s   | j  S )N)Zget_can_recurse)r   r   r   r   Z__get_can_recurse  s    zSource.__get_can_recursec             C   s   | j | d S )N)Zset_can_recurse)r   rZ   r   r   r   Z__set_can_recurse  s    zSource.__set_can_recurse)N)rT   rU   rV   r[   r   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 j }| |_|S )N)r   Zidle_source_newr   )rY   r   r   r   r   r   r[     s    zIdle.__new__c                s&   t t| j  |tjkr"| j| d S )N)r   r   r   r   r   r   )r   r   )r   r   r   r     s    
zIdle.__init__)rT   rU   rV   r   r   r[   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 j|}| |_|S )N)r   Ztimeout_source_newr   )rY   intervalr   r   r   r   r   r[     s    
zTimeout.__new__c             C   s   |t jkr| j| d S )N)r   r   r   )r   r   r   r   r   r   r     s    
zTimeout.__init__N)rT   rU   rV   r   r   r[   r   r   r   r   r   r     s   r   c             O   s    |j dtj}tj|| f| S )Nr   )r8   r   ZPRIORITY_DEFAULT_IDLEidle_add)functionr   r   r   r   r   r   r     s    r   c             O   s"   |j dtj}tj|| |f| S )Nr   )r8   r   r   timeout_add)r   r   r   r   r   r   r   r   r     s    r   c             O   s"   |j dtj}tj|| |f| S )Nr   )r8   r   r   timeout_add_seconds)r   r   r   r   r   r   r   r   r     s    r   c                sL  t |t st |tjrftjdt |}| |}t s@tdd|kr^tjdt |d }qtj	}n6t
|dk st|d  rtd|d  |dd  }t tr fdd	}tjj}n|t tjrtjd
kr fdd	}tjjj }nFtdr$ fdd	}tjjj }nt tjs6t }}|||||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 argumentr4   r   z%expecting callback as fourth argumentc                s    |f| S )Nr   )rN   conddata)callbackchannelr   r   <lambda>  s    z(_io_add_watch_get_args.<locals>.<lambda>r   c                s    |f| S )Nr   )rN   r   r   )r   r   r   r   r     s    filenoc                s    |f| S )Nr   )rN   r   r   )r   r   r   r   r     s    )r   r   r   IOConditionr   r   r   callabler9   r   rI   	IOChannelunix_newsocketr   r   Zwin32_new_socketr   rb   AssertionError)r   Z	priority_	conditionZcb_and_user_datar   r   Zfunc_fdtransformZreal_channelr   )r   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j|S |d k	r.t jj||p*dS |d k	rBt jj|S tdd S )NrD   zLeither a valid file descriptor, file name, or window handle must be supplied)r   r  r  Znew_fileZwin32_new_fdr9   )rY   ZfiledesfilenamemodeZhwndr   r   r   r[   
  s    zIOChannel.__new__c                s   t t| j S )N)r   r  r   )r   r@   r   )r   r   r   r     s    zIOChannel.__init__r4   c             C   s
   t | |S )N)r   )r   Z	max_countr   r   r   read  s    zIOChannel.readc             C   s    | j  \}}}}|d krdS |S )Nru   )	read_line)r   	size_hintstatusbufr   terminator_posr   r   r   readline  s    zIOChannel.readlinec             C   sH   g }t jj}x6|t jjkrB| j \}}}}|d kr6d}|j| qW |S )Nru   )r   IOStatusr   r  rx   )r   r  linesr  r  r   r  r   r   r   	readlines!  s    zIOChannel.readlinesc             C   s8   t |ts|jd}|dkr$t|}| j||\}}|S )NzUTF-8r4   rw   )r   r   encoderI   Zwrite_chars)r   r  Zbuflenr  Zwrittenr   r   r   write/  s    

zIOChannel.writec             C   s   x|D ]}| j | qW d S )N)r  )r   r  liner   r   r   
writelines7  s    
zIOChannel.writelines)r   r4   r   r   c             C   s8   y| j | }W n tk
r*   tdY nX | j||S )Nzinvalid 'whence' value)_whence_mapr   
ValueErrorZseek_position)r   offsetwhencewr   r   r   seek=  s
    zIOChannel.seekc             O   s"   |j dtj}t| |||f| S )Nr   )r8   r   r   r  )r   r  r   r   r   r   r   r   r   	add_watchD  s    zIOChannel.add_watchzGLib.io_add_watch()c             C   s   | S )Nr   )r   r   r   r   __iter__J  s    zIOChannel.__iter__c             C   s(   | j  \}}}}|tjjkr |S td S )N)r  r   r  r   StopIteration)r   r  r  r   r  r   r   r   __next__M  s    zIOChannel.__next__)NNNNrw   )rw   rw   )rw   rw   )rw   rw   )rw   )r   )rT   rU   rV   r[   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 j }| |_|S )N)r   r%  r   )rY   fdeventsZpollfdr   r   r   r[   \  s    zPollFD.__new__c             C   s   || _ || _d S )N)r&  r'  )r   r&  r'  r   r   r   r   a  s    zPollFD.__init__N)rT   rU   rV   r[   r   r   r   r   r   r%  [  s   r%  c             O   s  g }t |rtjdt | }|}t|dkr<|jdtj}qt|dkr\|}|jdtj}qt|dkr||d g}|d }qtdnT| }|}d|kr|d }|}n6t|dkrt |d r|d }|dd  }ntdd	|kr|rtd
|d	 g}||||fS )NzHCalling child_watch_add without priority as first argument is deprecatedr   r   r4   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   rI   r8   r   r   r9   )Zpriority_or_pidZpid_or_callbackr@   r   r   pidr   r   r   r   r   _child_watch_add_get_argsp  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*    s    r*  c               C   s   t j d S )Ngư>)r   r   r   r   r   r   r     s    r   zGLib.get_real_time()c             C   s   t j| |d S )Nr   )r   filename_from_utf8)Z
utf8stringrI   r   r   r   r+    s    r+  r   c              G   s   t jdt tj|  S )NzAGLib.unix_signal_add_full() was renamed to GLib.unix_signal_add())r   r   r   r   r   )r@   r   r   r   add_full_compat  s    r,  glib_versionz<(GLib.MAJOR_VERSION, GLib.MINOR_VERSION, GLib.MICRO_VERSION)pyglib_versionzgi.version_inforw   )rw   )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   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   rw   rw   )rw   )Tr   r   r   r  moduler   r   r   r   r   r   Z	overridesr   r	   r
   Zgir   r   r   __all__r   r   rx   Z	gi._errorr   r    r!   r"   r#   r$   r   r   r   rT   rU   Z	__gtype__Zmatchesr   Znew_literalobjectr%   rW   rr   r   r   r(   attrgetattrZ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+  rb   r,  r   ZMAJOR_VERSIONZMINOR_VERSIONZMICRO_VERSIONr-  r.  r   r   r   r   <module>   s  




  x





 
  !

.





+

N

	'







