
    2Vh                          d dl Z  G d d      Zy)    Nc                   (    e Zd Zd Zed        Zd Zy)KerasSaveablec                     t        d      )NzGKerasSaveable subclases must provide an implementation for `obj_type()`)NotImplementedError)selfs    O/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/saving/keras_saveable.py	_obj_typezKerasSaveable._obj_type
   s    !.
 	
    c                 D    dd l mc mc m} |j	                  |d dd      S )Nr   TF)custom_objectscompile	safe_mode)keras.src.saving.saving_libsrcsaving
saving_lib_load_model_from_fileobj)clsbytesior   s      r   _unpickle_modelzKerasSaveable._unpickle_model   s+    88 22D$% 3 
 	
r
   c                     ddl mc mc m} t	        j
                         }|j                  | |d       | j                  |ffS )z__reduce__ is used to customize the behavior of `pickle.pickle()`.

        The method returns a tuple of two elements: a function, and a list of
        arguments to pass to that function.  In this case we just leverage the
        keras saving library.r   Nh5)r   r   r   r   ioBytesIO_save_model_to_fileobjr   )r   r   bufs      r   
__reduce__zKerasSaveable.__reduce__   s?     	98jjl))$T:  F
 	
r
   N)__name__
__module____qualname__r	   classmethodr   r    r
   r   r   r      s     
 
 

r
   r   )r   r   r"   r
   r   <module>r#      s    	"
 "
r
   