from typing import TYPE_CHECKING

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


lowerCamelCase_				:		Optional[int]       						=       {
    """configuration_openai""": ["""OPENAI_GPT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """OpenAIGPTConfig"""],
    """tokenization_openai""": ["""OpenAIGPTTokenizer"""],
}

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_				:		Tuple       						=       ["""OpenAIGPTTokenizerFast"""]

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_				:		Tuple       						=       [
	    """OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """OpenAIGPTDoubleHeadsModel""",
	    """OpenAIGPTForSequenceClassification""",
	    """OpenAIGPTLMHeadModel""",
	    """OpenAIGPTModel""",
	    """OpenAIGPTPreTrainedModel""",
	    """load_tf_weights_in_openai_gpt""",
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_				:		Any       						=       [
	    """TF_OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """TFOpenAIGPTDoubleHeadsModel""",
	    """TFOpenAIGPTForSequenceClassification""",
	    """TFOpenAIGPTLMHeadModel""",
	    """TFOpenAIGPTMainLayer""",
	    """TFOpenAIGPTModel""",
	    """TFOpenAIGPTPreTrainedModel""",
	]


if TYPE_CHECKING:
	from .configuration_openai import OPENAI_GPT_PRETRAINED_CONFIG_ARCHIVE_MAP, OpenAIGPTConfig
	from .tokenization_openai import OpenAIGPTTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_openai_fast import OpenAIGPTTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_openai import (
		    OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    OpenAIGPTDoubleHeadsModel,
		    OpenAIGPTForSequenceClassification,
		    OpenAIGPTLMHeadModel,
		    OpenAIGPTModel,
		    OpenAIGPTPreTrainedModel,
		    load_tf_weights_in_openai_gpt,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_openai import (
		    TF_OPENAI_GPT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFOpenAIGPTDoubleHeadsModel,
		    TFOpenAIGPTForSequenceClassification,
		    TFOpenAIGPTLMHeadModel,
		    TFOpenAIGPTMainLayer,
		    TFOpenAIGPTModel,
		    TFOpenAIGPTPreTrainedModel,
		)

else:
	import sys

	lowerCamelCase_				:		Optional[int]       						=       _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)





def 							lowerCAmelCase(	__lowerCamelCase      ,				__lowerCamelCase						):
					sequence.append(__lowerCamelCase						)

					__a							=   0
					while sequence[index] != target:
										index += 1

					sequence.pop()

					if index == len(__lowerCamelCase						):
										return None

					return index


if __name__ == "__main__":
	lowerCamelCase_				:		List[str]       						=       input("""Enter numbers separated by comma:\n""").strip()
	lowerCamelCase_				:		str       						=       [int(item) for item in user_input.split(""",""")]

	lowerCamelCase_				:		Tuple       						=       input("""Enter a single number to be found in the list:\n""")
	lowerCamelCase_				:		Optional[int]       						=       int(target_input)
	lowerCamelCase_				:		List[Any]       						=       sentinel_linear_search(sequence, target)
	if result is not None:
		print(F'''{target} found at positions: {result}''')
	else:
		print("""Not found""")




