


from typing import TYPE_CHECKING

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


lowerCAmelCase__						=			{
    '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:
    lowerCAmelCase__						=			[
        'DPRContextEncoderTokenizerFast',
        'DPRQuestionEncoderTokenizerFast',
        'DPRReaderTokenizerFast',
    ]

try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    lowerCAmelCase__						=			[
        '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:
    lowerCAmelCase__						=			[
        '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

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




def 							_UpperCAmelCase    (UpperCamelCase__					:  str						):
       _A				:	Tuple       =			str(UpperCamelCase__						).strip()
       if not bin_string:
              raise ValueError("Empty string was passed to the function"						)
       _A				:	Dict       =			bin_string[0] == "-"
       if is_negative:
              _A				:	Any       =			bin_string[1:]
       if not all(char in "01" for char in bin_string						):
              raise ValueError("Non-binary value was passed to the function"						)
       _A				:	Union[str, Any]       =			0
       for char in bin_string:
              _A				:	Union[str, Any]       =			2 * decimal_number + int(UpperCamelCase__						)
       return -decimal_number if is_negative else decimal_number


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

    testmod()
