
    69h                     X    d dl mZmZ d dlmZ  G d d      ZdedefdZ G d d	      Zy
)    )AnyOptional)HttpRequestc                   ~    e Zd ZU i Zeeef   ed<   ededdfd       Z	edede
e   fd       Zedededefd	       Zy)
ComponentRegistry	_registrycomponent_clsreturnNc                     t        |t              st        d|j                   d      |j                  }|| j                  v rt        d| d      || j                  |<   y )NClass 'z"' must inherit from BaseComponent.z' is already registered.)
issubclassBaseComponent
ValueError__name__r   )clsr	   
class_names      L/var/www/html/backend/venv/lib/python3.12/site-packages/unfold/components.pyregister_classz ComponentRegistry.register_class	   si    -7-0011ST  #++
&wzl2JKLL$1j!    r   c                 8    | j                   j                  |      S N)r   get)r   r   s     r   	get_classzComponentRegistry.get_class   s    }}  ,,r   kwargsc                 V    | j                  |      }|t        d| d       |di |S )Nr   z' is not registered. )r   r   )r   r   r   r	   s       r   create_instancez!ComponentRegistry.create_instance   s9    j1 wzl2FGHH&v&&r   )r   
__module____qualname__r   dictstrtype__annotations__classmethodr   r   r   r   r   r   r   r   r   r      s    !#ItCI#24 2D 2 2 -3 -8D> - - ' ' ' ' 'r   r   r   r
   c                 0    t         j                  |        | S r   )r   r   )r   s    r   register_componentr&   %   s    $$S)Jr   c                       e Zd ZdefdZd Zy)r   requestc                     || _         y r   )r(   )selfr(   s     r   __init__zBaseComponent.__init__+   s	    r   c                     |S r   r   )r*   r   s     r   get_context_datazBaseComponent.get_context_data.   s    r   N)r   r   r   r   r+   r-   r   r   r   r   r   *   s     r   r   N)	typingr   r   django.httpr   r   r"   r&   r   r   r   r   <module>r0      s2      #' '>D T 
 r   