B
    <ZO.              -   @   s  d Z ddlZddlZddlZdZdZejd dkZerXefZ	e
fZefZeZeZejZn|efZ	e
efZeejfZeZeZejdre
dZnFG dd	 d	eZyee  W n ek
r   e
dZY nX e
d
Z[dd Zdd ZG dd deZG dd deZ G dd deZ!G dd dej"Z#e!dddde!ddddde!dddd de!d!ddd"d!e!d#dd$d%e!d&dd'e!ddde!d(ddd(d)e!d*ddd+d*e dde d,d-e d.d/e d0d1d2e d3d4d5e d6d7d8e d9d:d;e d<d=d>e d?d@dAe dBdCdDe dEdFdGe dHdHdIe dJdJdIe dKdKdIe dLdLdMe dNdOe dPdQe dRdSe dTdUe dVdWdXe dYdZd[e d\d]d^e d_d`dae dbdcdde dedfdge dhdidje dkdldme dndodpe dqdrd[e dsdtdue dvdwdxe dydzdae d{d|d}e d~dg+Z$xe$D ]Z%e&e#e%j'e% qW [%e#d Z(ej)e*d < dd Z+dd Z,erJdZ-dZ.dZ/dZ0dZ1dZ2dZ3ndZ-dZ.dZ/dZ0dZ1dZ2dZ3ye4Z5W n e6k
r   dd Z5Y nX e5Z4erdd Z7eZ8dd Z9ndd Z7G dd deZ8e9Z9ee7d e:e-Z;e:e.Z<e:e/Z=e:e0Z>dd Z?dd Z@dd ZAerhdd ZBdd ZCejd dkrDdd ZDneEdddZDddlFZFeFjGZGeFjHZHn&dd ZBdd ZCeIZDddlGZGeGjG ZGZHeeBd eeCd erddlJZJeKeJdZLdddZMeKeJdZN[JndddZLeLd dd ZNeeMd efddZOdS )z6Utilities for writing code that runs on Python 2 and 3    Nz'Benjamin Peterson <benjamin@python.org>z1.2.0   javaic               @   s   e Zd Zdd ZdS )Xc             C   s   dS )Nl         )selfr   r   /lib/python3.7/site-packages/mpmath/libmp/six.py__len__6   s    z	X.__len__N)__name__
__module____qualname__r   r   r   r   r   r   5   s   r   l    c             C   s
   || _ dS )z Add documentation to a function.N)__doc__)funcdocr   r   r   _add_docC   s    r   c             C   s   t |  tj|  S )z7Import module, returning the module after the last dot.)
__import__sysmodules)namer   r   r   _import_moduleH   s    r   c               @   s   e Zd Zdd Zdd ZdS )
_LazyDescrc             C   s
   || _ d S )N)r   )r   r   r   r   r   __init__P   s    z_LazyDescr.__init__c             C   s&   |   }t|| j| t|| j |S )N)_resolvesetattrr   delattr)r   objtpresultr   r   r   __get__S   s    z_LazyDescr.__get__N)r	   r
   r   r   r   r   r   r   r   r   N   s   r   c                   s&   e Zd Zd fdd	Zdd Z  ZS )MovedModuleNc                s2   t t| | tr(|d kr |}|| _n|| _d S )N)superr   r   PY3mod)r   r   oldnew)	__class__r   r   r   ]   s    zMovedModule.__init__c             C   s
   t | jS )N)r   r!   )r   r   r   r   r   f   s    zMovedModule._resolve)N)r	   r
   r   r   r   __classcell__r   r   )r$   r   r   [   s   	r   c                   s&   e Zd Zd fdd	Zdd Z  ZS )MovedAttributeNc                sd   t t| | trH|d kr |}|| _|d kr@|d kr<|}n|}|| _n|| _|d krZ|}|| _d S )N)r   r&   r   r    r!   attr)r   r   Zold_modZnew_modZold_attrZnew_attr)r$   r   r   r   l   s    zMovedAttribute.__init__c             C   s   t | j}t|| jS )N)r   r!   getattrr'   )r   moduler   r   r   r   ~   s    
zMovedAttribute._resolve)NN)r	   r
   r   r   r   r%   r   r   )r$   r   r&   j   s   r&   c               @   s   e Zd ZdZdS )_MovedItemszLazy loading of moved objectsN)r	   r
   r   r   r   r   r   r   r*      s   r*   Z	cStringIOioStringIOfilter	itertoolsbuiltinsZifilterinputZ__builtin__Z	raw_inputmapZimapZreload_moduleimpreloadreduce	functoolsZxrangerangezipZizipZconfigparserZConfigParsercopyregZcopy_regZhttp_cookiejarZ	cookielibzhttp.cookiejarZhttp_cookiesZCookiezhttp.cookiesZhtml_entitiesZhtmlentitydefszhtml.entitiesZhtml_parserZ
HTMLParserzhtml.parserZhttp_clientZhttplibzhttp.clientZemail_mime_multipartzemail.MIMEMultipartzemail.mime.multipartZemail_mime_textzemail.MIMETextzemail.mime.textZemail_mime_basezemail.MIMEBasezemail.mime.baseZBaseHTTPServerzhttp.serverZCGIHTTPServerZSimpleHTTPServerZcPicklepickleZqueueZQueuereprlibreprZsocketserverZSocketServerZtkinterZTkinterZtkinter_dialogZDialogztkinter.dialogZtkinter_filedialogZ
FileDialogztkinter.filedialogZtkinter_scrolledtextZScrolledTextztkinter.scrolledtextZtkinter_simpledialogZSimpleDialogztkinter.simpledialogZtkinter_tixZTixztkinter.tixZtkinter_constantsZTkconstantsztkinter.constantsZtkinter_dndZTkdndztkinter.dndZtkinter_colorchooserZtkColorChooserztkinter.colorchooserZtkinter_commondialogZtkCommonDialogztkinter.commondialogZtkinter_tkfiledialogZtkFileDialogZtkinter_fontZtkFontztkinter.fontZtkinter_messageboxZtkMessageBoxztkinter.messageboxZtkinter_tksimpledialogZtkSimpleDialogZurllib_robotparserZrobotparserzurllib.robotparserwinreg_winregmovesz.movesc             C   s   t t| j|  dS )zAdd an item to six.moves.N)r   r*   r   )Zmover   r   r   add_move   s    r?   c             C   sX   yt t|  W nD tk
rR   ytj| = W n" tk
rL   td| f Y nX Y nX dS )zRemove item from six.moves.zno such move, %rN)r   r*   AttributeErrorr>   __dict__KeyError)r   r   r   r   remove_move   s    rC   __func____self____code____defaults__keysvaluesitemsim_funcZim_selfZ	func_codeZfunc_defaultsiterkeys
itervalues	iteritemsc             C   s   |   S )N)next)itr   r   r   advance_iterator   s    rQ   c             C   s   | S )Nr   )unboundr   r   r   get_unbound_function   s    rS   c             C   s   t dd t| jD S )Nc             s   s   | ]}d |j kV  qdS )__call__N)rA   ).0klassr   r   r   	<genexpr>   s    zcallable.<locals>.<genexpr>)anytype__mro__)r   r   r   r   callable   s    r[   c             C   s   | j S )N)rK   )rR   r   r   r   rS      s    c               @   s   e Zd Zdd ZdS )Iteratorc             C   s   t | | S )N)rY   __next__)r   r   r   r   rO      s    zIterator.nextN)r	   r
   r   rO   r   r   r   r   r\      s   r\   z3Get the function out of a possibly unbound functionc             C   s   t t| t S )z1Return an iterator over the keys of a dictionary.)iterr(   	_iterkeys)dr   r   r   rL   
  s    c             C   s   t t| t S )z3Return an iterator over the values of a dictionary.)r^   r(   _itervalues)r`   r   r   r   rM     s    c             C   s   t t| t S )z?Return an iterator over the (key, value) pairs of a dictionary.)r^   r(   
_iteritems)r`   r   r   r   rN     s    c             C   s
   |  dS )Nzlatin-1)encode)sr   r   r   b  s    re   c             C   s   | S )Nr   )rd   r   r   r   u  s    rf      c             C   s
   t | fS )N)bytes)ir   r   r   int2byte  s    rj   to_bytesZbigc             C   s   | S )Nr   )rd   r   r   r   re   &  s    c             C   s
   t | dS )NZunicode_escape)unicode)rd   r   r   r   rf   (  s    zByte literalzText literalexecc             C   s   |j |k	r|||d S )N)__traceback__with_traceback)r   valuetbr   r   r   reraise6  s    

rr   printc             C   sB   |dkr*t d}|j}|dkr&|j}~n|dkr6|}td dS )zExecute code in a namespace.Nrg   zexec code in globs, locs)r   	_getframe	f_globalsf_localsrm   )codeZglobsZlocsframer   r   r   exec_@  s    
ry   z9def reraise(tp, value, tb=None):
    raise tp, value, tb
c        
         s4  | dtj  dkrdS  fdd}d}| dd}|dk	r`t|trNd}nt|ts`td| d	d}|dk	rt|trd}nt|tstd
|rtd|sx| D ]}t|trd}P qW |rtd}td}nd}d}|dkr|}|dkr|}x,t| D ] \}	}|	r|| || qW || dS )zThe new-style print function.fileNc                s    t | tst| }  |  d S )N)
isinstance
basestringstrwrite)data)fpr   r   r~   W  s    
zprint_.<locals>.writeFsepTzsep must be None or a stringendzend must be None or a stringz$invalid keyword arguments to print()
 )popr   stdoutr{   rl   r}   	TypeError	enumerate)
argskwargsr~   Zwant_unicoder   r   argnewlineZspaceri   r   )r   r   print_R  sL    






r   zReraise an exception.c             C   s   | d|fi S )z%Create a base class with a metaclass.ZNewBaser   )metabaser   r   r   with_metaclass  s    r   )N)NN)Pr   operatorr   types
__author____version__version_infor    r}   Zstring_typesintZinteger_typesrY   Zclass_typesZ	text_typerh   Zbinary_typemaxsizeZMAXSIZEr|   ZlongZ	ClassTyperl   platform
startswithobjectr   lenOverflowErrorr   r   r   r   r&   
ModuleTyper*   Z_moved_attributesr'   r   r   r>   r   r	   r?   rC   Z
_meth_funcZ
_meth_selfZ
_func_codeZ_func_defaultsr_   ra   rb   rO   rQ   	NameErrorrS   r\   r[   
attrgetterZget_method_functionZget_method_selfZget_function_codeZget_function_defaultsrL   rM   rN   re   rf   rj   methodcallerr+   r,   BytesIOchrr/   r(   ry   rr   r   r   r   r   r   r   <module>   s*  








































-
