
    ~Wh                        d Z ddlmc mZ ddlmZ  ed e            d          Z ed e            d          Z	 ed e            d	          Z
 ed
 e            d          Z ed e            d          Z ed e            d          Z G d d          Z G d d          Z G d d          Zd Zd Zd Zd ZdS )z4Utilities for Keras classes with v1 and v2 versions.    N)
LazyLoadertrainingzkeras.engine.trainingtraining_v1zkeras.engine.training_v1
base_layerzkeras.engine.base_layerbase_layer_v1zkeras.engine.base_layer_v1	callbackszkeras.callbackscallbacks_v1zkeras.callbacks_v1c                   "     e Zd ZdZ fdZ xZS )ModelVersionSelectorz,Chooses between Keras v1 and v2 Model class.c                     t                      }t          | t          j        t          j        |          } t          t          |                               |           S N)should_use_v2
swap_classr   Modelr   superr   __new__clsargskwargsuse_v2	__class__s       _/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/keras/utils/version_utils.pyr   zModelVersionSelector.__new__&   sC    hnk.?HH)3//77<<<    __name__
__module____qualname____doc__r   __classcell__r   s   @r   r   r   #   >        66= = = = = = = = =r   r   c                   "     e Zd ZdZ fdZ xZS )LayerVersionSelectorz,Chooses between Keras v1 and v2 Layer class.c                     t                      }t          | t          j        t          j        |          } t          t          |                               |           S r   )r   r   r   Layerr   r   r$   r   r   s       r   r   zLayerVersionSelector.__new__/   sD    j.0CVLL)3//77<<<r   r   r!   s   @r   r$   r$   ,   r"   r   r$   c                   "     e Zd ZdZ fdZ xZS )TensorBoardVersionSelectorz;Chooses between Keras v1 and v2 TensorBoard callback class.c                    t                      }| }t          |t          j        t          j        |          } |t          j        k    r| t          j        k    r | |i |S t          t          |                               |           S r   )r   r   r   TensorBoardr	   r   r(   r   )r   r   r   r   	start_clsr   s        r   r   z"TensorBoardVersionSelector.__new__8   s    	y,l.F
 
 111y,,, 3''''/55==cBBBr   r   r!   s   @r   r(   r(   5   sG        EEC C C C C C C C Cr   r(   c                     t          j                    rdS t           j        j                                        rRt           j        j                                        } t          | dd          r| j                            d          rdS dS dS )z-Determine if v1 or v2 version should be used.TnameFwrapped_function)	tfexecuting_eagerlycompatv1#executing_eagerly_outside_functionsget_default_graphgetattrr-   
startswith)graphs    r   r   r   H   s    	 t		9	9	;	; 
 	..005&%(( 	UZ-B-B.
 .
 	 5tur   c                    | t           k    r| S | ||fv r|r|n|S g }| j        D ]P}|rt          ||          s|s#t          ||          rt          ||||          }n|}|                    |           Qt          |          | _        | S )z2Swaps in v2_cls or v1_cls depending on graph mode.)object	__bases__
issubclassr   appendtuple)r   v2_clsv1_clsr   	new_basesbasenew_bases          r   r   r   Y   s    
f}}

vv+vvV+ I # #	4((	 	  *$77	 "$??HHH"""")$$CMJr   c                     t           j        j                                        s$d|  d| d|  d|  d|  d| d}t	          |          d S )Nz	Calling `.z+` in graph mode is not supported when the `zK` instance was constructed with eager mode enabled. Please construct your `z"` instance in graph mode or call `z` with eager mode enabled.)r/   r1   r2   r3   
ValueError)cls_namemethod_name	error_msgs      r   disallow_legacy_graphrI   u   s    9<;;== $" " "; " "#+" ":B" " '/" " 2=" " " 	 ###$ $r   c                 N    t          | t          j        t          j        f          S r   )
isinstancer   r&   r   r   )objs    r   is_v1_layer_or_modelrM      s    cM/1BCDDDr   )r   tensorflow.compat.v2r1   v2r/   keras.utils.generic_utilsr   globalsr   r   r   r   r   r	   r   r$   r(   r   r   rI   rM    r   r   <module>rS      s    ; : ! ! ! ! ! ! ! ! ! 0 0 0 0 0 0
 :j''))-DEEj		3MNNZggii1JKK

WWYY <  J{GGII/@AA	z.''))5IJJ= = = = = = = == = = = = = = =C C C C C C C C&  "  8	$ 	$ 	$E E E E Er   