U
    h                     @   s   d dl Z d dlZd dlmZ d dlZddlmZ d dlmZm	Z	m
Z
mZmZmZmZ zddlmZ W n ek
rx   Y nX ese je jee je je  dkrdZeee   d	ad
add Zdd Zdd Zdd Z dd Z!dd Z"dS )    N)Module   )_HAS_OPS)_meta_registrationsdatasetsiomodelsops
transformsutils)__version__torchvisionzYou are importing torchvision within its own root folder ({}). This is not expected to work and may give errors. Please exit the torchvision project source and relaunch your python interpreter.PILpyavc                 C   s    | dkrt d|  d| adS )a*  
    Specifies the package used to load images.

    Args:
        backend (string): Name of the image backend. one of {'PIL', 'accimage'}.
            The :mod:`accimage` package uses the Intel IPP library. It is
            generally faster than PIL, but does not support as many operations.
    )r   ZaccimagezInvalid backend 'z#'. Options are 'PIL' and 'accimage'N)
ValueError_image_backend)backend r   F/var/www/html/venv/lib/python3.8/site-packages/torchvision/__init__.pyset_image_backend"   s    
r   c                   C   s   t S )z:
    Gets the name of the package used to load images
    )r   r   r   r   r   get_image_backend1   s    r   c                 C   sT   | dkrt d|  | dkr0tjs0d}t|n | dkrLtjsLd}t|n| adS )a  
    Specifies the package used to decode videos.

    Args:
        backend (string): Name of the video backend. one of {'pyav', 'video_reader'}.
            The :mod:`pyav` package uses the 3rd party PyAv library. It is a Pythonic
            binding for the FFmpeg libraries.
            The :mod:`video_reader` package includes a native C++ implementation on
            top of FFMPEG libraries, and a python API of TorchScript custom operator.
            It generally decodes faster than :mod:`pyav`, but is perhaps less robust.

    .. note::
        Building with FFMPEG is disabled by default in the latest `main`. If you want to use the 'video_reader'
        backend, please compile torchvision from source.
    )r   video_readercudazIInvalid video backend '%s'. Options are 'pyav', 'video_reader' and 'cuda'r   zavideo_reader video backend is not available. Please compile torchvision from source and try againr   z$cuda video backend is not available.N)r   r   Z_HAS_VIDEO_OPTRuntimeErrorZ_HAS_GPU_VIDEO_DECODER_video_backend)r   messager   r   r   set_video_backend8   s    

r   c                   C   s   t S )z
    Returns the currently active video backend used to decode videos.

    Returns:
        str: Name of the video backend. one of {'pyav', 'video_reader'}.
    )r   r   r   r   r   get_video_backendW   s    r   c                   C   s
   t j S N)torchZ_CZ_get_tracing_stater   r   r   r   _is_tracingb   s    r    c                   C   s   d S r   r   r   r   r   r   disable_beta_transforms_warningf   s    r!   )#oswarningsZmodulefinderr   r   	extensionr   r   r   r   r   r   r	   r
   r   versionr   ImportErrorpathdirnamerealpath__file__joingetcwdr   warnformatr   r   r   r   r   r   r    r!   r   r   r   r   <module>   s0   $ 