
    kh                    N    d dl mZ d dlmZmZmZ d dlZddlmZ  G d de      Z	y)    )annotations)AnyOptionalUnionN   )TVTensorc                  B    e Zd ZdZdddd	 	 	 	 	 	 	 	 	 ddZddddZy)	Videoa  :class:`torch.Tensor` subclass for videos with shape ``[..., T, C, H, W]``.

    Args:
        data (tensor-like): Any data that can be turned into a tensor with :func:`torch.as_tensor`.
        dtype (torch.dtype, optional): Desired data type. If omitted, will be inferred from
            ``data``.
        device (torch.device, optional): Desired device. If omitted and ``data`` is a
            :class:`torch.Tensor`, the device is taken from it. Otherwise, the video is constructed on the CPU.
        requires_grad (bool, optional): Whether autograd should record operations. If omitted and
            ``data`` is a :class:`torch.Tensor`, the value is taken from it. Otherwise, defaults to ``False``.
    Ndtypedevicerequires_gradc               x    | j                  ||||      }|j                  dk  rt        |j                  |       S )Nr      )
_to_tensorndim
ValueErroras_subclass)clsdatar   r   r   tensors         Y/var/www/teggl/fontify/venv/lib/python3.12/site-packages/torchvision/tv_tensors/_video.py__new__zVideo.__new__   s=     E&P]^99q=!!#&&    )tensor_contentsc               "    | j                         S )N)
_make_repr)selfr   s     r   __repr__zVideo.__repr__$   s      r   )
r   r   r   zOptional[torch.dtype]r   z'Optional[Union[torch.device, str, int]]r   zOptional[bool]returnr
   )r   r   r    str)__name__
__module____qualname____doc__r   r    r   r   r
   r
   
   sQ    
  (,:>(,'' %	'
 8' &' 
' 26 !r   r
   )

__future__r   typingr   r   r   torch
_tv_tensorr   r
   r&   r   r   <module>r+      s     " ' '   !H !r   