


'''simple docstring'''







import os
from pathlib import Path






def 			lowercase				():







       """simple docstring"""







       from torch.utils.cpp_extension import load

       _lowerCAmelCase    :							str   			=       Path(_A					).resolve().parent.parent.parent / 'kernels' / 'deformable_detr'
       _lowerCAmelCase    :							str   			=       [
           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





'''simple docstring'''







from typing import TYPE_CHECKING

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


lowerCAmelCase    :     Optional[int]					=						{
    """configuration_mctct""": ["""MCTCT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """MCTCTConfig"""],
    """feature_extraction_mctct""": ["""MCTCTFeatureExtractor"""],
    """processing_mctct""": ["""MCTCTProcessor"""],
}


try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       lowerCAmelCase    :     List[str]					=						[
           """MCTCT_PRETRAINED_MODEL_ARCHIVE_LIST""",
           """MCTCTForCTC""",
           """MCTCTModel""",
           """MCTCTPreTrainedModel""",
       ]


if TYPE_CHECKING:
       from .configuration_mctct import MCTCT_PRETRAINED_CONFIG_ARCHIVE_MAP, MCTCTConfig
       from .feature_extraction_mctct import MCTCTFeatureExtractor
       from .processing_mctct import MCTCTProcessor

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_mctct import MCTCT_PRETRAINED_MODEL_ARCHIVE_LIST, MCTCTForCTC, MCTCTModel, MCTCTPreTrainedModel

else:
       import sys

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

