
    6bi=                     .   S r SSKJs  Jr  SSKJr  \" S\" 5       S5      r\" S\" 5       S5      r	\" S\" 5       S	5      r
\" S
\" 5       S5      r\" S\" 5       S5      r\" S\" 5       S5      r " S S5      r " S S5      r " S S5      rS rS rS rS rg)z7Utilities for TF-Keras classes with v1 and v2 versions.    N)
LazyLoadertrainingztf_keras.src.engine.trainingtraining_v1ztf_keras.src.engine.training_v1
base_layerztf_keras.src.engine.base_layerbase_layer_v1z!tf_keras.src.engine.base_layer_v1	callbacksztf_keras.src.callbackscallbacks_v1ztf_keras.src.callbacks_v1c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )ModelVersionSelector%   z/Chooses between TF-Keras v1 and v2 Model class.c                    > [        5       n[        U [        R                  [        R                  U5      n [
        [        U ]  U 5      $ N)should_use_v2
swap_classr   Modelr   superr   __new__clsargskwargsuse_v2	__class__s       Z/home/james-whalen/.local/lib/python3.13/site-packages/tf_keras/src/utils/version_utils.pyr   ModelVersionSelector.__new__(   s7    hnnk.?.?H)37<<     __name__
__module____qualname____firstlineno____doc__r   __static_attributes____classcell__r   s   @r   r   r   %       9= =r   r   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )LayerVersionSelector.   z/Chooses between TF-Keras v1 and v2 Layer class.c                    > [        5       n[        U [        R                  [        R                  U5      n [
        [        U ]  U 5      $ r   )r   r   r   Layerr   r   r)   r   r   s       r   r   LayerVersionSelector.__new__1   s9    j..0C0CVL)37<<r   r   r   r&   s   @r   r)   r)   .   r'   r   r)   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )TensorBoardVersionSelector7   z>Chooses between TF-Keras v1 and v2 TensorBoard callback class.c                    > [        5       nU n[        U[        R                  [        R                  U5      n U[        R                  :X  a  U [        R                  :X  a  U " U0 UD6$ [
        [        U ]  U 5      $ r   )r   r   r   TensorBoardr	   r   r/   r   )r   r   r   r   	start_clsr   s        r   r   "TensorBoardVersionSelector.__new__:   sq    	y,,l.F.F
 111y,,, '''/=cBBr   r   r   r&   s   @r   r/   r/   7   s    HC Cr   r/   c                  L   [         R                  " 5       (       a  g[         R                  R                  R	                  5       (       a\  [         R                  R                  R                  5       n [        U SS5      (       a!  U R                  R                  S5      (       a  ggg)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getattrr6   
startswith)graphs    r   r   r   J   sv    			9	9	;	; 		..05&%((UZZ-B-B.
 .
 r   c                 (   U [         :X  a  U $ XU4;   a  U(       a  U$ U$ / nU R                   HQ  nU(       a  [        XR5      (       d  U(       d  [        XQ5      (       a  [        XQX#5      nOUnUR	                  U5        MS     [        U5      U l        U $ )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   [   s    
f}

vv+V+ I4(( z$77!$?HH"  )$CMJr   c                     [         R                  R                  R                  5       (       d   SU  SU SU  SU  SU  SU S3n[	        U5      eg )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.)r8   r:   r;   r<   
ValueError)cls_namemethod_name	error_msgs      r   disallow_legacy_graphrR   w   sl    99<<;;==z;- 0##+* -::B D&&.Zq >"" 	 ## >r   c                 V    [        U [        R                  [        R                  45      $ r   )
isinstancer   r,   r   r   )objs    r   is_v1_layer_or_modelrV      s     cM//1B1BCDDr   )r#   tensorflow.compat.v2r:   v2r8    tf_keras.src.utils.generic_utilsr   globalsr   r   r   r   r   r	   r   r)   r/   r   r   rR   rV   r   r   r   <module>r[      s     > ! ! 7
 j')-KL79? gi1QR
WY C {GI/GH	.')5PQ= == =C C&"8	$Er   