


"""simple docstring"""



from typing import TYPE_CHECKING

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


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

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

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



"""simple docstring"""



import doctest

import projectq
from projectq.ops import H, Measure
def     UpperCAmelCase    (					_lowercase   :      projectq.cengines._main.MainEngine  )	->   int:


	"""simple docstring"""




	lowerCAmelCase_			       = quantum_engine.allocate_qubit()
	H | qubit
	Measure | qubit
	return int(_lowercase  )


if __name__ == "__main__":
		doctest.testmod()

		# initialises a new quantum backend
		lowercase_							 =       projectq.MainEngine()

		# Generate a list of 10 random numbers
		lowercase_							 =       [get_random_number(quantum_engine) for _ in range(10)]

		# Flushes the quantum engine from memory
		quantum_engine.flush()

		print('Random numbers', random_numbers_list)