

import sys

from .dependency_versions_table import deps
from .utils.versions import require_version, require_version_core


# define which module versions we always want to check at run time
# (usually the ones defined in `install_requires` in setup.py)
#
# order specific notes:
# - tqdm must be checked before tokenizers

lowerCAmelCase							:  int            =						"""python tqdm regex requests packaging filelock numpy tokenizers""".split()
if sys.version_info < (3, 7):
						pkgs_to_check_at_runtime.append("""dataclasses""")
if sys.version_info < (3, 8):
						pkgs_to_check_at_runtime.append("""importlib_metadata""")

for pkg in pkgs_to_check_at_runtime:
						if pkg in deps:
												if pkg == "tokenizers":
																		# must be loaded here, or else tqdm check may fail
																		from .utils import is_tokenizers_available

																		if not is_tokenizers_available():
																								continue  # not required, check version only if installed

												require_version_core(deps[pkg])
						else:
												raise ValueError(f'''can\'t find {pkg} in {deps.keys()}, check dependency_versions_table.py''')







def       A_				(   _UpperCAmelCase    ,     _UpperCAmelCase=None   ):
						require_version(deps[pkg]    ,     _UpperCAmelCase   )









from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


lowerCAmelCase							:  Optional[int]            =						{"""configuration_yolos""": ["""YOLOS_PRETRAINED_CONFIG_ARCHIVE_MAP""", """YolosConfig""", """YolosOnnxConfig"""]}

try:
						if not is_vision_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase							:  Any            =						["""YolosFeatureExtractor"""]
						lowerCAmelCase							:  Tuple            =						["""YolosImageProcessor"""]

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase							:  Any            =						[
						    """YOLOS_PRETRAINED_MODEL_ARCHIVE_LIST""",
						    """YolosForObjectDetection""",
						    """YolosModel""",
						    """YolosPreTrainedModel""",
						]


if TYPE_CHECKING:
						from .configuration_yolos import YOLOS_PRETRAINED_CONFIG_ARCHIVE_MAP, YolosConfig, YolosOnnxConfig

						try:
												if not is_vision_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .feature_extraction_yolos import YolosFeatureExtractor
												from .image_processing_yolos import YolosImageProcessor

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_yolos import (
												    YOLOS_PRETRAINED_MODEL_ARCHIVE_LIST,
												    YolosForObjectDetection,
												    YolosModel,
												    YolosPreTrainedModel,
												)


else:
						import sys

						lowerCAmelCase							:  int            =						_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)






