o
    "iY                     @   s&   d dl mZ defddZdd ZdS )    )import_stringpathc                    s   G  fddd}|S )zK simulate initiated object but actually load class and init on first usage c                       sH   e Zd Zdd Z fddZedd Zedd Zd	d
 Zdd Z	dS )z'lazy_serializer.<locals>.LazySerializerc                 _   s   ||d | _ | _| _d S N)	lazy_argslazy_kwargslazy_obj)selfargskwargs r   \/var/www/html/crm_dreinet/venv_linux/lib/python3.10/site-packages/drf_spectacular/helpers.py__init__   s   z0lazy_serializer.<locals>.LazySerializer.__init__c                    s*   | j st | ji | j| _ t| j |S r   )r   r   r   r   getattr)r   itemr   r   r   __getattr__   s   z3lazy_serializer.<locals>.LazySerializer.__getattr__c                 S   
   |  dS )N	__class__r   r   r   r   r   r         
z1lazy_serializer.<locals>.LazySerializer.__class__c                 S   r   )N__dict__r   r   r   r   r   r      r   z0lazy_serializer.<locals>.LazySerializer.__dict__c                 S      |  d S )N__str__r   r   r   r   r   r         z/lazy_serializer.<locals>.LazySerializer.__str__c                 S   r   )N__repr__r   r   r   r   r   r      r   z0lazy_serializer.<locals>.LazySerializer.__repr__N)
__name__
__module____qualname__r   r   propertyr   r   r   r   r   r   r   r   LazySerializer   s    

r    r   )r   r    r   r   r   lazy_serializer   s   r!   c                 C   sF   ddl m} ddlm} t| j| fi }|dd| ||dd |S )Nr   )set_override)extend_schema_serializerF)manysuppress_collision_warningT)drf_spectacular.drainager"   drf_spectacular.utilsr#   typer   )serializer_classr"   r#   patched_serializer_classr   r   r   forced_singular_serializer!   s   r+   N)django.utils.module_loadingr   strr!   r+   r   r   r   r   <module>   s    