
    
d:&                     x   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rd8dZ	dZ
ddlZn
d8d	Z	d
Z
ddlZer	eefZeefZnefZefZ e ee          eegz             Zer\ddlZddlZ	 ddlZn# e$ r Y nw xY wddlmZ 	 ddl Z!n# e$ r ddl"Z!Y nw xY w	 ddl#Z$n# e$ r ddl$Z$Y nw xY wddl%m&Z' ddl(Z)ddl*Z+ddl,Z,n9ddlZddlZ	 ddlZn# e$ r Y nw xY 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 Z/d Z0d Z1d Z2d Z3d9dZ4d9dZ5d Z6d Z7d Z8d Z9d Z:d Z;erd Z<ne=Z<er!ej>        Z?e@Z@ddlAZAeAjB        ZCddlDmEZF ddlGmHZH nej?        Z?d Z@ejB        ZCdd lDmFZF ddlImHZH d! ZJer=d" ZKd# ZLd$ ZMd% ZN ejO        d&          ZP ejO        d'          ZQ ejO        d(          ZRn<d) ZKd* ZLd+ ZMd, ZN ejO        d-          ZP ejO        d.          ZQ ejO        d/          ZRereSZTeUZVneTZTeVZVerddlWZWddlXZXd0 ZYejZ        d1k    rd2 Z[n
d3 Z[nd4 ZYd5 Z[d6 Z\e]d7k    rdS dS ):z
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                 *    t          j        |           S N)builtin_modinputprompts    8lib/python3.11/site-packages/spyder_kernels/py3compat.pyr
   r
   !   s     (((    builtinsc                 *    t          j        |           S r   )r	   	raw_inputr   s    r   r
   r
   (   s    $V,,,r   __builtin__)maxint)	DictMixin)maxsize)MutableMappingc                     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objs    r   is_type_text_stringr   h   s8      )CyyS'N** CyyS%L((r   c                 d    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   s    r   is_text_stringr#   r   s.      $#z*** #s###r   c                 d    t           rt          | t                    S t          | t                    S )zEReturn True if `obj` is a binary string, False if it is anything else)r   r!   r   r   r   s    r   is_binary_stringr%   |   s,    
 &#s### #u%%%r   c                 >    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   s    r   	is_stringr'      s      #7"23"7"77r   c                 d    t           rt          | t                    S t          | t                    S )zReturn True if `obj` is unicode)r   r!   r   r   r   s    r   
is_unicoder)      s,    
 $#w''' #s###r   c                     t           r!|t          |           S t          | |          S |t          |           S t          | t                    r| S t          | |          S )z&Convert `obj` to (unicode) text string)r   r   r   r!   r   encodings     r   to_text_stringr-      sf    
 &3<<3))) s88OS!! 	&JsH%%%r   c                     t           r&|t          |           S |                     |          S t          | |dn|          S )zCConvert `obj` to binary string (bytes in Python 3, str in Python 2)Nzutf-8)r   r   encoder   r+   s     r   to_binary_stringr0      sI    
 Es88O::h''' SX%5''8DDDr   c                 ,    t           r| j        S | j        S )zReturn function code object)r   	func_code__code__funcs    r   get_func_coder6          
 ~ }r   c                 ,    t           r| j        S | j        S )zReturn function name)r   	func_name__name__r4   s    r   get_func_namer;      r7   r   c                 ,    t           r| j        S | j        S )z'Return function default argument values)r   func_defaults__defaults__r4   s    r   get_func_defaultsr?      s    
 !!!   r   c                 ,    t           r| j        S | j        S )zReturn method function object)r   im_func__func__r   s    r   get_meth_funcrC          
 { |r   c                 ,    t           r| j        S | j        S )zReturn method class instance)r   im_self__self__r   s    r   get_meth_class_instrH      rD   r   c                 6    t           r| j        S | j        j        S )zReturn method class)r   im_classrG   	__class__r   s    r   get_meth_classrL      s    
 &| |%%r   c                     |                     dd          }|                     dt          j                  }|                     dd          }|                    d | D                       }t	          ||||           d S )Nend
filesep c                 ,    g | ]}t          |          S  )r   ).0r   s     r   
<listcomp>z_print.<locals>.<listcomp>   s    7773s88777r   )rP   rN   rQ   )getsysstdoutjoinprint)objectsoptionsrN   rP   rQ   strings         r   _printr_      sz    kk%&&{{63:..kk%%%77w77788f4Sc222222r   )izip_longest)	lru_cachec                     | |k    | |k     z
  S r   rT   )abs     r   cmpre   	  s    A!a%  r   )zip_longestc                     t          t          |                                                                                                                     S )zDConvert QByteArray object to str in a way compatible with Python 2/3)r   r   toHexdatadecode)qbas    r   qbytearray_to_strrl     s8    uSYY[[%%''((//11222r   c                 6    t           | j        di |          S NrT   )iterkeysdkws     r   iterkeysrt     s    FAFLLRLL!!!r   c                 6    t           | j        di |          S rn   )ro   valuesrq   s     r   
itervaluesrw     s    HAHNNrNN###r   c                 6    t           | j        di |          S rn   )ro   itemsrq   s     r   	iteritemsrz         GAGMMbMM"""r   c                 6    t           | j        di |          S rn   )ro   listsrq   s     r   	iterlistsr~      r{   r   rp   rv   ry   c                      | j         di |S rn   )rt   rq   s     r   rt   rt   )  s    qzBr   c                      | j         di |S rn   )rw   rq   s     r   rw   rw   ,  s    q|!!b!!!r   c                      | j         di |S rn   )rz   rq   s     r   rz   rz   /      q{  R   r   c                      | j         di |S rn   )r~   rq   s     r   r~   r~   2  r   r   viewkeys
viewvalues	viewitemsc                 J    t          j        t          j        dz   |           duS )'Check if string can be a variable name.z\ZN)rematchtokenizeNamer^   s    r   isidentifierr   H  s     x-v66dBBr   ntc                 \    t          | t                    r|                     dd          S | S )zTry encoding with utf8.utf8replace)r!   r   r/   us    r   r/   r/   M  s-    !W%% 3xx	222Hr   c                 |    t          | t                    r&|                     t          j                              S | S )z'Try encoding with file system encoding.)r!   r   r/   rX   getfilesystemencodingr   s    r   r/   r/   S  s4    !W%% =xx 9 ; ;<<<Hr   c                       | j                     S )r   )r   r   s    r   r   r   Y  s    "v"$$$r   c                     | S )z&Encoding is not a problem in python 3.rT   r   s    r   r/   r/   ]  s    r   c                 (    t          | ||           d S r   )exec)codeglobalslocalss      r   compat_execr   b  s    wr   __main__)r   r   )^__doc__
__future__r   operatorosrX   versionr   PY3r
   builtin_mod_namer   r	   r   r   r   
TEXT_TYPESintlong	INT_TYPEStuplelistfloatcomplexNUMERIC_TYPESConfigParserconfigparser_winregwinregImportErrorr   r   	CStringIOioStringIOcPicklepickleUserDictr   r   thread_threadreprreprlibQueuecollections.abcqueuer   r#   r%   r'   r)   r-   r0   r6   r;   r?   rC   rH   rL   r_   r[   getcwdugetcwdre   r^   lower	str_lower	itertoolsr`   rf   backports.functools_lru_cachera   	functoolsrl   rt   rw   rz   r~   methodcallerr   r   r   RuntimeErrorTimeoutErrorIOErrorFileNotFoundErrorr   r   r   namer/   r   r:   rT   r   r   <module>r      s  
 
 & % % % % %  				 



	k!n	k!n &) ) ) )!"""""- - - -$%%%%  wJdII JIdd9oo(8899  #""""''''        %%%%%%           444444LLLL OOO   IIIMMM......NNNNNN) ) )$ $ $& & &8 8 8
$ $ $& & & &$
E 
E 
E 
E     ! ! !    & & &  3 3 3 3 F  $ZF
CMMMI5555557777777 YF! ! !	I%%%%%%######3 3 3  #3" " "$ $ $# # ## # # %x$V,,H&&x00J%%g..II     " " "! ! !! ! ! %x$Z00H&&|44J%%k22I
  *LL) IIIOOOC C C 
w$	 	 	 		 	 	 	% % %  
     
 zD sH   B BBB 	B+*B+/B4 4	C ?C C$ $C,+C,