
    BVhr	                         d Z ddlmZ ddlmZ ddlmZ  G d dej
                        Z ej                  d       G d d	ej                               Z	 ej                   ed
      e	j                         y
)z&NoneTensor and NoneTensorSpec classes.    )composite_tensor)	type_spec)type_spec_registryc                        e Zd ZdZed        Zy)
NoneTensorz1Composite tensor representation for `None` value.c                     t               S NNoneTensorSpecselfs    W/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/framework/none_tensor.py
_type_speczNoneTensor._type_spec           N)__name__
__module____qualname____doc__propertyr    r   r   r   r      s    9 r   r   ztf.NoneTensorSpecc                       e Zd ZdZed        Zd Zed        Zd Zd Z	d Z
ed        Zd	 Zd
 Zd Zd Zd Zd Zd Zy)r   z$Type specification for `None` value.c                     t         S r	   )r   r   s    r   
value_typezNoneTensorSpec.value_type$   s    r   c                      y)Nr   r   r   s    r   
_serializezNoneTensorSpec._serialize(   s    r   c                     g S r	   r   r   s    r   _component_specszNoneTensorSpec._component_specs+   s    Ir   c                     g S r	   r   r   values     r   _to_componentszNoneTensorSpec._to_components/       Ir   c                      y r	   r   )r   
componentss     r   _from_componentszNoneTensorSpec._from_components2   s    
r   c                     g S r	   r   r    s     r   _to_tensor_listzNoneTensorSpec._to_tensor_list5   r#   r   c                     t               S r	   r
   )r!   s    r   
from_valuezNoneTensorSpec.from_value8   r   r   c                     t               S r	   r
   )r   
batch_sizes     r   _batchzNoneTensorSpec._batch<       r   c                     t               S r	   r
   r   s    r   _unbatchzNoneTensorSpec._unbatch?   r.   r   c                     g S r	   r   r    s     r   _to_batched_tensor_listz&NoneTensorSpec._to_batched_tensor_listB   r#   r   c                     | S r	   r   r   s    r   _to_legacy_output_typesz&NoneTensorSpec._to_legacy_output_typesE       Kr   c                     | S r	   r   r   s    r   _to_legacy_output_shapesz'NoneTensorSpec._to_legacy_output_shapesH   r5   r   c                     | S r	   r   r   s    r   _to_legacy_output_classesz(NoneTensorSpec._to_legacy_output_classesK   r5   r   c                 h    t        |       t        |      urt        dj                  | |            | S )Nz/No `TypeSpec` is compatible with both {} and {})type
ValueErrorformat)r   others     r   most_specific_compatible_shapez-NoneTensorSpec.most_specific_compatible_shapeN   s7    Dze$HOO
  Kr   N)r   r   r   r   r   r   r   r   r"   r&   r(   staticmethodr*   r-   r0   r2   r4   r7   r9   r?   r   r   r   r   r       sv    ,     r   r   N)r   tensorflow.python.frameworkr   r   r   CompositeTensorr   registerBatchableTypeSpecr   'register_type_spec_from_value_converterr;   r*   r   r   r   <module>rF      sy    - 8 1 :!11  011Y00 1 21h 2	 1 1$t*2@2K2KMr   