




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


UpperCamelCase__		=						{
    'configuration_dpr': ['DPR_PRETRAINED_CONFIG_ARCHIVE_MAP', 'DPRConfig'],
    'tokenization_dpr': [
        'DPRContextEncoderTokenizer',
        'DPRQuestionEncoderTokenizer',
        'DPRReaderOutput',
        'DPRReaderTokenizer',
    ],
}


try:
							if not is_tokenizers_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							UpperCamelCase__		=						[
							    'DPRContextEncoderTokenizerFast',
							    'DPRQuestionEncoderTokenizerFast',
							    'DPRReaderTokenizerFast',
							]

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							UpperCamelCase__		=						[
							    'DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'DPRContextEncoder',
							    'DPRPretrainedContextEncoder',
							    'DPRPreTrainedModel',
							    'DPRPretrainedQuestionEncoder',
							    'DPRPretrainedReader',
							    'DPRQuestionEncoder',
							    'DPRReader',
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							UpperCamelCase__		=						[
							    'TF_DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'TF_DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'TF_DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'TFDPRContextEncoder',
							    'TFDPRPretrainedContextEncoder',
							    'TFDPRPretrainedQuestionEncoder',
							    'TFDPRPretrainedReader',
							    'TFDPRQuestionEncoder',
							    'TFDPRReader',
							]


if TYPE_CHECKING:
							from .configuration_dpr import DPR_PRETRAINED_CONFIG_ARCHIVE_MAP, DPRConfig
							from .tokenization_dpr import (
							    DPRContextEncoderTokenizer,
							    DPRQuestionEncoderTokenizer,
							    DPRReaderOutput,
							    DPRReaderTokenizer,
							)

							try:
														if not is_tokenizers_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .tokenization_dpr_fast import (
														    DPRContextEncoderTokenizerFast,
														    DPRQuestionEncoderTokenizerFast,
														    DPRReaderTokenizerFast,
														)

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_dpr import (
														    DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
														    DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
														    DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST,
														    DPRContextEncoder,
														    DPRPretrainedContextEncoder,
														    DPRPreTrainedModel,
														    DPRPretrainedQuestionEncoder,
														    DPRPretrainedReader,
														    DPRQuestionEncoder,
														    DPRReader,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_dpr import (
														    TF_DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TF_DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TF_DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TFDPRContextEncoder,
														    TFDPRPretrainedContextEncoder,
														    TFDPRPretrainedQuestionEncoder,
														    TFDPRPretrainedReader,
														    TFDPRQuestionEncoder,
														    TFDPRReader,
														)

else:
							import sys

							UpperCamelCase__		=						_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)






from typing import Callable






def  snake_case (							A      )							->							List[str]:




	'''simple docstring'''


	def wrapper(A      ):
		lowerCamelCase_							:		Dict							       =							function_with_docstring.__doc__
		return target_function

	return wrapper
