
    2Vh                     T    d dl mZ d dlmZ d dlmZ  ed       G d de             Zy)    )keras_export)Layer)serialization_libzkeras.layers.Wrapperc                   F     e Zd ZdZ fdZddZ fdZedd       Z xZ	S )Wrappera,  Abstract wrapper base class.

    Wrappers take another layer and augment it in various ways.
    Do not use this class as a layer, it is only an abstract base class.
    Two usable wrappers are the `TimeDistributed` and `Bidirectional` layers.

    Args:
        layer: The layer to be wrapped.
    c                     	 t        |t              sJ 	 t	        |   di | || _        y # t        $ r t        d| d      w xY w)NzLayer zf supplied to Wrapper isn't a supported layer type. Please ensure wrapped layer is a valid Keras layer. )
isinstancer   	Exception
ValueErrorsuper__init__layer)selfr   kwargs	__class__s      M/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/layers/core/wrapper.pyr   zWrapper.__init__   s`    	eU+++ 	"6"
  	  ? ? 	s	   - Ac                     | j                   j                  s-| j                   j                  |       d| j                   _        y y )NT)r   builtbuild)r   input_shapes     r   r   zWrapper.build   s2    zzJJ[)#DJJ      c                 n    dt        j                  | j                        i}t        |          }i ||S )Nr   )r   serialize_keras_objectr   r   
get_config)r   configbase_configr   s      r   r   zWrapper.get_config#   s:    ,CCDJJOPg(*(+(((r   c                 `    t        j                  |j                  d      |      } | |fi |S )Nr   )custom_objects)r   deserialize_keras_objectpop)clsr   r   r   s       r   from_configzWrapper.from_config(   s3    !::JJw)
 5#F##r   )N)
__name__
__module____qualname____doc__r   r   r   classmethodr#   __classcell__)r   s   @r   r   r      s+    
$
)
 $ $r   r   N)keras.src.api_exportr   keras.src.layers.layerr   keras.src.savingr   r   r	   r   r   <module>r-      s/    - ( . $%'$e '$ &'$r   