






from typing import TYPE_CHECKING

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


__magic_name__:					Tuple							=     {
    "configuration_tapas": ["TAPAS_PRETRAINED_CONFIG_ARCHIVE_MAP", "TapasConfig"],
    "tokenization_tapas": ["TapasTokenizer"],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__magic_name__:					Dict							=     [
		    "TAPAS_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "TapasForMaskedLM",
		    "TapasForQuestionAnswering",
		    "TapasForSequenceClassification",
		    "TapasModel",
		    "TapasPreTrainedModel",
		    "load_tf_weights_in_tapas",
		]
try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__magic_name__:					int							=     [
		    "TF_TAPAS_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "TFTapasForMaskedLM",
		    "TFTapasForQuestionAnswering",
		    "TFTapasForSequenceClassification",
		    "TFTapasModel",
		    "TFTapasPreTrainedModel",
		]


if TYPE_CHECKING:
		from .configuration_tapas import TAPAS_PRETRAINED_CONFIG_ARCHIVE_MAP, TapasConfig
		from .tokenization_tapas import TapasTokenizer

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tapas import (
				    TAPAS_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TapasForMaskedLM,
				    TapasForQuestionAnswering,
				    TapasForSequenceClassification,
				    TapasModel,
				    TapasPreTrainedModel,
				    load_tf_weights_in_tapas,
				)

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_tapas import (
				    TF_TAPAS_PRETRAINED_MODEL_ARCHIVE_LIST,
				    TFTapasForMaskedLM,
				    TFTapasForQuestionAnswering,
				    TFTapasForSequenceClassification,
				    TFTapasModel,
				    TFTapasPreTrainedModel,
				)


else:
		import sys

		__magic_name__:					Tuple							=     _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)








import os
from pathlib import Path

def    UpperCamelCase						(	):






						"""simple docstring"""







						from torch.utils.cpp_extension import load

						__magic_name__      :       Dict       						= Path(_A			).resolve().parent.parent.parent / """kernels""" / """deformable_detr"""
						__magic_name__      :       Optional[int]       						= [
						    root / filename
						    for filename in [
						        """vision.cpp""",
						        os.path.join("""cpu""",   """ms_deform_attn_cpu.cpp"""			),
						        os.path.join("""cuda""",   """ms_deform_attn_cuda.cu"""			),
						    ]
						]

						load(
						    """MultiScaleDeformableAttention""",   _A,   with_cuda=_A,   extra_include_paths=[str(_A			)],   extra_cflags=["""-DWITH_CUDA=1"""],   extra_cuda_cflags=[
						        """-DCUDA_HAS_FP16=1""",
						        """-D__CUDA_NO_HALF_OPERATORS__""",
						        """-D__CUDA_NO_HALF_CONVERSIONS__""",
						        """-D__CUDA_NO_HALF2_OPERATORS__""",
						    ],   )

						import MultiScaleDeformableAttention as MSDA

						return MSDA
