


"""simple docstring"""


from typing import TYPE_CHECKING

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


A     :   List[str]			    =			{"configuration_xglm": ["XGLM_PRETRAINED_CONFIG_ARCHIVE_MAP", "XGLMConfig"]}

try:
	if not is_sentencepiece_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	A     :   Tuple			    =			["XGLMTokenizer"]

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

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	A     :   List[Any]			    =			[
	    "XGLM_PRETRAINED_MODEL_ARCHIVE_LIST",
	    "XGLMForCausalLM",
	    "XGLMModel",
	    "XGLMPreTrainedModel",
	]


try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	A     :   Optional[int]			    =			[
	    "FlaxXGLMForCausalLM",
	    "FlaxXGLMModel",
	    "FlaxXGLMPreTrainedModel",
	]


try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	A     :   Tuple			    =			[
	    "TF_XGLM_PRETRAINED_MODEL_ARCHIVE_LIST",
	    "TFXGLMForCausalLM",
	    "TFXGLMModel",
	    "TFXGLMPreTrainedModel",
	]


if TYPE_CHECKING:
	from .configuration_xglm import XGLM_PRETRAINED_CONFIG_ARCHIVE_MAP, XGLMConfig

	try:
		if not is_sentencepiece_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_xglm import XGLMTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_xglm_fast import XGLMTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_xglm import XGLM_PRETRAINED_MODEL_ARCHIVE_LIST, XGLMForCausalLM, XGLMModel, XGLMPreTrainedModel

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_xglm import FlaxXGLMForCausalLM, FlaxXGLMModel, FlaxXGLMPreTrainedModel

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_xglm import (
		    TF_XGLM_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFXGLMForCausalLM,
		    TFXGLMModel,
		    TFXGLMPreTrainedModel,
		)


else:
	import sys

	A     :   Optional[int]			    =			_LazyModule(__name__, globals()["__file__"], _import_structure)






from abc import ABC, abstractmethod
from argparse import ArgumentParser




class     _SCREAMING_SNAKE_CASE     (      snake_case_						):



	@staticmethod
	@abstractmethod
	def     SCREAMING_SNAKE_CASE_(    lowercase )				->       int:
					raise NotImplementedError()



	@abstractmethod
	def     SCREAMING_SNAKE_CASE_(    self )				->       Union[str, Any]:
					raise NotImplementedError()


