





'''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   :					Optional[int]           =       {'configuration_mbart': ['MBART_PRETRAINED_CONFIG_ARCHIVE_MAP', 'MBartConfig', 'MBartOnnxConfig']}

try:
	if not is_sentencepiece_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a   :					List[Any]           =       ['MBartTokenizer']

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a   :					Union[str, Any]           =       ['MBartTokenizerFast']

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a   :					str           =       [
	    'MBART_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'MBartForCausalLM',
	    'MBartForConditionalGeneration',
	    'MBartForQuestionAnswering',
	    'MBartForSequenceClassification',
	    'MBartModel',
	    'MBartPreTrainedModel',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a   :					Union[str, Any]           =       [
	    'TFMBartForConditionalGeneration',
	    'TFMBartModel',
	    'TFMBartPreTrainedModel',
	]

try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a   :					Tuple           =       [
	    'FlaxMBartForConditionalGeneration',
	    'FlaxMBartForQuestionAnswering',
	    'FlaxMBartForSequenceClassification',
	    'FlaxMBartModel',
	    'FlaxMBartPreTrainedModel',
	]


if TYPE_CHECKING:
	from .configuration_mbart import MBART_PRETRAINED_CONFIG_ARCHIVE_MAP, MBartConfig, MBartOnnxConfig

	try:
		if not is_sentencepiece_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_mbart import MBartTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_mbart_fast import MBartTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_mbart import (
		    MBART_PRETRAINED_MODEL_ARCHIVE_LIST,
		    MBartForCausalLM,
		    MBartForConditionalGeneration,
		    MBartForQuestionAnswering,
		    MBartForSequenceClassification,
		    MBartModel,
		    MBartPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_mbart import TFMBartForConditionalGeneration, TFMBartModel, TFMBartPreTrainedModel

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_mbart import (
		    FlaxMBartForConditionalGeneration,
		    FlaxMBartForQuestionAnswering,
		    FlaxMBartForSequenceClassification,
		    FlaxMBartModel,
		    FlaxMBartPreTrainedModel,
		)

else:
	import sys

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






from ...configuration_utils import PretrainedConfig
from ...utils import logging


a      :  List[Any]			     =			logging.get_logger(__name__)







class 				_a				(   _lowerCAmelCase					):
			A      		=	'''timm_backbone'''

			def __init__(self,   SCREAMING_SNAKE_CASE_=None,   SCREAMING_SNAKE_CASE_=3,   SCREAMING_SNAKE_CASE_=True,   SCREAMING_SNAKE_CASE_=True,   SCREAMING_SNAKE_CASE_=None,   **SCREAMING_SNAKE_CASE_,   )       ->   Tuple:
						super().__init__(**SCREAMING_SNAKE_CASE_					)
						UpperCAmelCase_:		Dict							      =     backbone
						UpperCAmelCase_:		Optional[Any]							      =     num_channels
						UpperCAmelCase_:		Optional[Any]							      =     features_only
						UpperCAmelCase_:		Any							      =     use_pretrained_backbone
						UpperCAmelCase_:		List[str]							      =     True
						UpperCAmelCase_:		Union[str, Any]							      =     out_indices if out_indices is not None else (-1,)






