
# Copyright 2023 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING

# rely on isort to merge the imports
from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


_UpperCAmelCase      :				int          = {
    "configuration_vivit": ["VIVIT_PRETRAINED_CONFIG_ARCHIVE_MAP", "VivitConfig"],
}
try:
					if not is_vision_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					_UpperCAmelCase      :				str          = ["VivitImageProcessor"]


try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					_UpperCAmelCase      :				Dict          = [
					    "VIVIT_PRETRAINED_MODEL_ARCHIVE_LIST",
					    "VivitModel",
					    "VivitPreTrainedModel",
					    "VivitForVideoClassification",
					]


if TYPE_CHECKING:
					from .configuration_vivit import VIVIT_PRETRAINED_CONFIG_ARCHIVE_MAP, VivitConfig

					try:
										if not is_vision_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .image_processing_vivit import VivitImageProcessor

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_vivit import (
										    VIVIT_PRETRAINED_MODEL_ARCHIVE_LIST,
										    VivitForVideoClassification,
										    VivitModel,
										    VivitPreTrainedModel,
										)


else:
					import sys

					_UpperCAmelCase      :				List[str]          = _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)


def    A (      lowercase				)     ->						str:
		'''simple docstring'''

		UpperCamelCase						=  int(lowercase				)
		if decimal in (0, 1):  # Exit cases for the recursion
				return str(lowercase				)
		UpperCamelCase			,						UpperCamelCase						=  divmod(lowercase					, 2				)
		return binary_recursive(lowercase				) + str(lowercase				)


def    A (      lowercase				)     ->						str:
		'''simple docstring'''

		UpperCamelCase						=  str(lowercase				).strip()
		if not number:
				raise ValueError('No input value was provided'				)
		UpperCamelCase						=  '-' if number.startswith('-'				) else ''
		UpperCamelCase						=  number.lstrip('-'				)
		if not number.isnumeric():
				raise ValueError('Input value is not an integer'				)
		return f'''{negative}0b{binary_recursive(int(lowercase				)				)}'''


if __name__ == "__main__":
					from doctest import testmod

					testmod()
