o
    Zh:&                     @   s  d Z ddlmZ ddlZddlZddlZejd dkZejd dkZer0dPddZ	d	Z
ddlZndPd
dZ	dZ
ddlZerFeefZeefZnefZefZeeeeeg ZerddlZddlZzddlZW n	 eyo   Y nw ddlmZ zddl Z!W n ey   ddl"Z!Y nw zddl#Z$W n ey   ddl$Z$Y nw ddl%m&Z' ddl(Z)ddl*Z+ddl,Z,n8ddlZddlZzddlZW n	 ey   Y nw ddlmZ ddl!Z!ddl$Z$ddl-m'Z' ddl)Z)ddl+Z+ddl.Z,dd Z/dd Z0dd Z1dd Z2dd Z3dQddZ4dQddZ5dd Z6d d! Z7d"d# Z8d$d% Z9d&d' Z:d(d) Z;er'd*d+ Z<ne=Z<erEej>Z?e@Z@ddlAZAeAjBZCdd,lDmEZF dd-lGmHZH nej?Z?d.d/ Z@ejBZCdd0lDmFZF dd-lImHZH d1d2 ZJerd3d4 ZKd5d6 ZLd7d8 ZMd9d: ZNeOd;ZPeOd<ZQeOd=ZRnd>d4 ZKd?d6 ZLd@d8 ZMdAd: ZNeOdBZPeOdCZQeOdDZRereSZTeUZVneTZTeVZVerddlWZWddlXZXdEdF ZYejZdGkrdHdI Z[ndJdI Z[ndKdF ZYdLdI Z[dMdN Z\e]dOkr	 dS dS )Rz
spyder.py3compat
----------------

Transitional module providing compatibility functions intended to help
migrating from Python 2 to Python 3.

This module should be fully compatible with:
    * Python >=v2.6
    * Python 3
    )print_functionN23 c                 C   
   t | S N)builtin_modinputprompt r   O/var/www/html/lang_env/lib/python3.10/site-packages/spyder_kernels/py3compat.pyr	   !      
r	   builtinsc                 C   r   r   )r   	raw_inputr
   r   r   r   r	   (   r   __builtin__)maxint)	DictMixin)maxsize)MutableMappingc                 C   s$   t r
t| ttfv S t| ttfv S )zReturn True if `obj` is type text string, False if it is anything else,
    like an instance of a class that extends the basestring class.)PY2typestrunicodebytesobjr   r   r   is_type_text_stringh   s   r   c                 C      t rt| tS t| tS )zReturn True if `obj` is a text string, False if it is anything else,
    like binary data (Python 3) or QString (Python 2, PyQt API #1))r   
isinstance
basestringr   r   r   r   r   is_text_stringr   s   

r!   c                 C   r   )zEReturn True if `obj` is a binary string, False if it is anything else)r   r   r   r   r   r   r   r   is_binary_string|      

r"   c                 C   s   t | pt| S )zReturn True if `obj` is a text or binary Python string object,
    False if it is anything else, like a QString (Python 2, PyQt API #1))r!   r"   r   r   r   r   	is_string   s   r$   c                 C   r   )zReturn True if `obj` is unicode)r   r   r   r   r   r   r   r   
is_unicode   r#   r%   c                 C   sF   t r|du r
t| S t| |S |du rt| S t| tr| S t| |S )z&Convert `obj` to (unicode) text stringN)r   r   r   r   r   encodingr   r   r   to_text_string   s   


r(   c                 C   s6   t r|du r
t| S | |S t| |du rdS |S )zCConvert `obj` to binary string (bytes in Python 3, str in Python 2)Nzutf-8)r   r   encoder   r&   r   r   r   to_binary_string   s
   
r*   c                 C      t r| jS | jS )zReturn function code object)r   	func_code__code__funcr   r   r   get_func_code      r0   c                 C   r+   )zReturn function name)r   	func_name__name__r.   r   r   r   get_func_name   r1   r4   c                 C   r+   )z'Return function default argument values)r   Zfunc_defaults__defaults__r.   r   r   r   get_func_defaults   r1   r6   c                 C   r+   )zReturn method function object)r   Zim_func__func__r   r   r   r   get_meth_func   r1   r8   c                 C   r+   )zReturn method class instance)r   Zim_self__self__r   r   r   r   get_meth_class_inst   r1   r:   c                 C   s   t r| jS | jjS )zReturn method class)r   Zim_classr9   	__class__r   r   r   r   get_meth_class   s   r<   c                  O   sN   | dd}| dtj}| dd}|dd | D }t||||d d S )	Nend
filesep c                 S   s   g | ]}t |qS r   )r   ).0r   r   r   r   
<listcomp>   s    z_print.<locals>.<listcomp>)r?   r=   r@   )getsysstdoutjoinprint)objectsoptionsr=   r?   r@   stringr   r   r   _print   s
   rL   )izip_longest)	lru_cachec                 C   s   | |k| |k  S r   r   )abr   r   r   cmp	     rQ   )zip_longestc                 C   s   t t|    S )zDConvert QByteArray object to str in a way compatible with Python 2/3)r   r   ZtoHexdatadecode)Zqbar   r   r   qbytearray_to_str  s   rV   c                 K      t | jdi |S Nr   )iterkeysdkwr   r   r   iterkeys     r^   c                 K   rW   rX   )rY   valuesr[   r   r   r   
itervalues  r_   ra   c                 K   rW   rX   )rY   itemsr[   r   r   r   	iteritems  r_   rc   c                 K   rW   rX   )rY   listsr[   r   r   r   	iterlists   r_   re   rZ   r`   rb   c                 K      | j di |S rX   )r^   r[   r   r   r   r^   )  rR   c                 K   rf   rX   )ra   r[   r   r   r   ra   ,  rR   c                 K   rf   rX   )rc   r[   r   r   r   rc   /  rR   c                 K   rf   rX   )re   r[   r   r   r   re   2  rR   viewkeys
viewvalues	viewitemsc                 C   s   t tjd | duS )'Check if string can be a variable name.z\ZN)rematchtokenizeNamerK   r   r   r   isidentifierH  s   rp   ntc                 C   s   t | tr| ddS | S )zTry encoding with utf8.utf8replace)r   r   r)   ur   r   r   r)   M  s   
r)   c                 C   s   t | tr| t S | S )z'Try encoding with file system encoding.)r   r   r)   rE   getfilesystemencodingrt   r   r   r   r)   S  s   
c                 C   s   |   S )rj   )rp   ro   r   r   r   rp   Y  s   c                 C   s   | S )z&Encoding is not a problem in python 3.r   rt   r   r   r   r)   ]  s   c                 C   s   t | || d S r   )exec)codeglobalslocalsr   r   r   compat_execb  s   r{   __main__)r   r   )^__doc__
__future__r   operatorosrE   versionr   PY3r	   Zbuiltin_mod_namer   r   r   r   r   Z
TEXT_TYPESintlongZ	INT_TYPEStuplelistfloatcomplexZNUMERIC_TYPESConfigParserconfigparser_winregwinregImportErrorr   r   Z	CStringIOioStringIOcPicklepickleUserDictr   r   thread_threadreprreprlibQueuecollections.abcqueuer   r!   r"   r$   r%   r(   r*   r0   r4   r6   r8   r:   r<   rL   rH   ZgetcwdugetcwdrQ   rK   lowerZ	str_lower	itertoolsrM   rS   Zbackports.functools_lru_cacherN   	functoolsrV   r^   ra   rc   re   methodcallerrg   rh   ri   RuntimeErrorTimeoutErrorIOErrorFileNotFoundErrorrk   rm   rp   namer)   r{   r3   r   r   r   r   <module>   s   






	
	
				








