B
    0*\#                 @   sf  d dl Z d dlZd dlmZ G dd deZeZyd dlmZ W n e	k
rX   dZY nX dddgZ
dd Zi  ZZd	d
 ZxHedeeeeeeeeeeee jeeeee jejfD ]Zeee< qW e e ddZedk	reee< e!jee!< e"jee"< e#jee#< e$jee$< edk	rejee< [[dg fddZ%i  Z&Zdd Z'e'eed< e'eee< e'eee< e'ee< e'ee< e'ee< e'ee< e'ee< e'ee< ye'ee j(< W n e)k
r   Y nX e'ee< e'ee j< e'ee j< e'eej< e%fddZ*e*ee!< e%fddZ+e+ee< e%fddZ,e,ee"< edk	r.e,ee< dd Z-e-ee j.< [dd Z/ddde%fddZ0[ [[dS )    N)dispatch_tablec               @   s   e Zd ZdS )ErrorN)__name__
__module____qualname__ r   r   /C:\ALexclude\prg\programme\Python37\Lib\copy.pyr   7   s   r   )PyStringMapcopydeepcopyc             C   s   t | }t|}|r|| S yt|t }W n tk
rD   d}Y nX |rRt| S t|dd }|rj|| S t|}|r|| }n>t| dd }|r|d}n$t| dd }|r| }ntd| t	|t
r| S t| d f| S )NF__copy____reduce_ex__   
__reduce__z%un(shallow)copyable object of type %s)type_copy_dispatchget
issubclass	TypeError_copy_immutablegetattrr   r   
isinstancestr_reconstruct)xclscopierisscreductorrvr   r   r   r
   B   s4    





c             C   s   | S )Nr   )r   r   r   r   r   o   s    r   CodeTypec       
      C   s8  |d kri }t | }|||}||k	r,|S t| }t|}|rN|| |}nyt|t}W n tk
rt   d}Y nX |rt| |}nt| dd }|r||}nxt|}|r|| }	n>t| dd }|r|d}	n$t| dd }|r| }	nt	d| t
|	tr| }nt| |f|	 }|| k	r4|||< t| | |S )Nr   __deepcopy__r   r   r   z"un(deep)copyable object of type %s)idr   r   _deepcopy_dispatchr   r   _deepcopy_atomicr   r   r   r   r   r   _keep_alive)
r   memoZ_nildyr   r   r   r   r   r   r   r   r      sJ    








c             C   s   | S )Nr   )r   r&   r   r   r   r$      s    r$   c             C   s6   g }||t | < |j}x| D ]}|||| qW |S )N)r"   append)r   r&   r   r(   r)   ar   r   r   _deepcopy_list   s    
r+   c                sh    fdd| D }yt |  S  tk
r4   Y nX x,t| |D ]\}}||k	rBt|}P qBW | }|S )Nc                s   g | ]} |qS r   r   ).0r*   )r   r&   r   r   
<listcomp>   s    z#_deepcopy_tuple.<locals>.<listcomp>)r"   KeyErrorziptuple)r   r&   r   r(   kjr   )r   r&   r   _deepcopy_tuple   s    r3   c             C   s>   i }||t | < x(|  D ]\}}|||||||< qW |S )N)r"   items)r   r&   r   r(   keyvaluer   r   r   _deepcopy_dict   s
    r7   c             C   s   t | | jt| j|S )N)r   __func__r   __self__)r   r&   r   r   r   _deepcopy_method   s    r:   c             C   s>   y|t | |  W n" tk
r8   | g|t |< Y nX d S )N)r"   r)   r.   )r   r&   r   r   r   r%      s    
r%   c                sx  d k	}|r$|r$ fdd|D }|| }	|r<|	t | < |d k	r|rR |}t|	drh|	| nbt|trt|dkr|\}}
nd }
|d k	r|	j| |
d k	rx |
 D ]\}}t	|	|| qW |d k	r|rx<|D ]} |}|	
| qW nx|D ]}|	
| qW |d k	rt|rXxL|D ]&\}} |} |}||	|< q,W nx|D ]\}}||	|< q^W |	S )Nc             3   s   | ]} |V  qd S )Nr   )r,   arg)r   r&   r   r   	<genexpr>  s    z_reconstruct.<locals>.<genexpr>__setstate__   )r"   hasattrr=   r   r0   len__dict__updater4   setattrr)   )r   r&   funcargsstateZlistiterZdictiterr   Zdeepr(   Z	slotstater5   r6   itemr   )r   r&   r   r     sF    









r   )1typesweakrefcopyregr   	Exceptionr   errorZorg.python.corer	   ImportError__all__r
   r   r'   r   r   intfloatboolcomplexr   r0   bytes	frozensetrangesliceBuiltinFunctionTypeEllipsisNotImplementedFunctionTypereftr   listdictset	bytearrayr   r#   r$   r    AttributeErrorr+   r3   r7   r:   
MethodTyper%   r   r   r   r   r   <module>3   s|   

+






8




+