o
    DDi<	                     @   sV   d dl Z d dlmZmZ d dlmZmZmZmZ edZ	dee	 dee	 fddZ
dS )	    N)chainfilterfalse)AnyMappingTypeTypeVar_Tclsreturnc                 C   s  d| j v rt| j dt| j }tdd t| D }tt	dd | 
 D }tt|j||d< |D ]}||d  q8|dd  t| dd }t| | j| j|} |d ur^|| _dtd	tttf fd
d}dtdtttf d	d fdd}|| _|| _| S )N	__slots__z already specifies __slots__c                 s   s    | ]}|j V  qd S N)name).0f r   J/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_add_slots.py	<genexpr>   s    zadd_slots.<locals>.<genexpr>c                 s   s    | ]
}|j d dV  qdS )r   r   N)__dict__get)r   
superclassr   r   r   r      s    
r   __qualname__selfr
   c                    s    fddt  D S )Nc                    s(   i | ]}t  |jr|jt |jqS r   )hasattrr   getattr)r   fieldr   r   r   
<dictcomp>4   s    
z3add_slots.<locals>.__getstate__.<locals>.<dictcomp>)dataclassesfieldsr   r   r   r   __getstate__3   s   
zadd_slots.<locals>.__getstate__statec                 S   s$   |  D ]\}}t| || qd S r   )itemsobject__setattr__)r   r    	fieldnamevaluer   r   r   __setstate__:   s   zadd_slots.<locals>.__setstate__)r   	TypeError__name__dicttupler   r   setr   from_iterablemror   __contains__popr   type	__bases__r   r"   r   strr   r   r&   )r	   cls_dictfield_namesinherited_slots
field_namequalnamer   r&   r   r   r   	add_slots   s0   



r8   )r   	itertoolsr   r   typingr   r   r   r   r   r8   r   r   r   r   <module>   s
   