o
    p.a»  ã                   @   sÌ   d Z G dd„ deƒZddgZdd„ Zi  ZZdd„ Zzee	fZ
W n ey,   efZ
Y nw zeefZW n ey?   efZY nw edƒeeefe e
 D ]Zeee< qLdd	„ Zeee< d
d„ Zeee< [dS )zøA clone of the default copy.deepcopy that doesn't handle cyclic
structures or complex types except for dicts and lists. This is
because gyp copies so large structure that small copy overhead ends up
taking seconds in a project the size of Chromium.c                   @   s   e Zd ZdS )ÚErrorN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú1/usr/lib/python3/dist-packages/gyp/simple_copy.pyr   
   s    r   Údeepcopyc                 C   s6   z	t t| ƒ | ƒW S  ty   tddt| ƒ  ƒ‚w )zŽDeep copy operation on gyp objects such as strings, ints, dicts
  and lists. More than twice as fast as copy.deepcopy but much less
  generic.z4Unsupported type %s for deepcopy. Use copy.deepcopy zor expand simple_copy support.)Ú_deepcopy_dispatchÚtypeÚKeyErrorr   ©Úxr   r   r   r      s   
ÿÿc                 C   s   | S ©Nr   r   r   r   r   Ú_deepcopy_atomic   s   r   Nc                 C   s   dd„ | D ƒS )Nc                 S   s   g | ]}t |ƒ‘qS r   )r   )Ú.0Úar   r   r   Ú
<listcomp>/   s    z"_deepcopy_list.<locals>.<listcomp>r   r   r   r   r   Ú_deepcopy_list.   s   r   c                 C   s*   i }|   ¡ D ]\}}t|ƒ|t|ƒ< q|S r   )Úitemsr   )r   ÚyÚkeyÚvaluer   r   r   Ú_deepcopy_dict2   s   r   )Ú__doc__Ú	Exceptionr   Ú__all__r   r   Údr   ÚstrÚunicodeÚ_string_typesÚ	NameErrorÚintÚlongÚ_integer_typesr	   ÚfloatÚboolr   r   Úlistr   Údictr   r   r   r   Ú<module>   s.   
ÿ
ÿ
