


from typing import TYPE_CHECKING

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


_lowercase							:   Dict						=						{
    """configuration_funnel""": ["""FUNNEL_PRETRAINED_CONFIG_ARCHIVE_MAP""", """FunnelConfig"""],
    """convert_funnel_original_tf_checkpoint_to_pytorch""": [],
    """tokenization_funnel""": ["""FunnelTokenizer"""],
}

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase							:   int						=						["""FunnelTokenizerFast"""]

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase							:   Any						=						[
				    """FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """FunnelBaseModel""",
				    """FunnelForMaskedLM""",
				    """FunnelForMultipleChoice""",
				    """FunnelForPreTraining""",
				    """FunnelForQuestionAnswering""",
				    """FunnelForSequenceClassification""",
				    """FunnelForTokenClassification""",
				    """FunnelModel""",
				    """FunnelPreTrainedModel""",
				    """load_tf_weights_in_funnel""",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase							:   str						=						[
				    """TF_FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST""",
				    """TFFunnelBaseModel""",
				    """TFFunnelForMaskedLM""",
				    """TFFunnelForMultipleChoice""",
				    """TFFunnelForPreTraining""",
				    """TFFunnelForQuestionAnswering""",
				    """TFFunnelForSequenceClassification""",
				    """TFFunnelForTokenClassification""",
				    """TFFunnelModel""",
				    """TFFunnelPreTrainedModel""",
				]


if TYPE_CHECKING:
				from .configuration_funnel import FUNNEL_PRETRAINED_CONFIG_ARCHIVE_MAP, FunnelConfig
				from .tokenization_funnel import FunnelTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_funnel_fast import FunnelTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_funnel import (
								    FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST,
								    FunnelBaseModel,
								    FunnelForMaskedLM,
								    FunnelForMultipleChoice,
								    FunnelForPreTraining,
								    FunnelForQuestionAnswering,
								    FunnelForSequenceClassification,
								    FunnelForTokenClassification,
								    FunnelModel,
								    FunnelPreTrainedModel,
								    load_tf_weights_in_funnel,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_funnel import (
								    TF_FUNNEL_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFFunnelBaseModel,
								    TFFunnelForMaskedLM,
								    TFFunnelForMultipleChoice,
								    TFFunnelForPreTraining,
								    TFFunnelForQuestionAnswering,
								    TFFunnelForSequenceClassification,
								    TFFunnelForTokenClassification,
								    TFFunnelModel,
								    TFFunnelPreTrainedModel,
								)

else:
				import sys

				_lowercase							:   Union[str, Any]						=						_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)










from ..utils import DummyObject, requires_backends


class       __lowerCAmelCase					(       metaclass=_UpperCamelCase      ):


	'''simple docstring'''





	_A													=				["note_seq"]

	def __init__(						self:						int,					*lowerCamelCase_:						Optional[int],					**lowerCamelCase_:						Tuple			):
			requires_backends(self,					['note_seq']			)

	@classmethod
	def    snake_case__(						cls:						Optional[Any],					*lowerCamelCase_:						Tuple,					**lowerCamelCase_:						Optional[Any]			):
			requires_backends(cls,					['note_seq']			)





	@classmethod
	def    snake_case__(						cls:						Any,					*lowerCamelCase_:						Dict,					**lowerCamelCase_:						str			):
			requires_backends(cls,					['note_seq']			)


