



from typing import TYPE_CHECKING

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


_lowercase: Union[str, Any]      			=		{
    "configuration_clip": [
        "CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "CLIPConfig",
        "CLIPOnnxConfig",
        "CLIPTextConfig",
        "CLIPVisionConfig",
    ],
    "processing_clip": ["CLIPProcessor"],
    "tokenization_clip": ["CLIPTokenizer"],
}

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

try:
				if not is_vision_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase: int      			=		["CLIPFeatureExtractor"]
				_lowercase: List[str]      			=		["CLIPImageProcessor"]

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase: Tuple      			=		[
				    "CLIP_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "CLIPModel",
				    "CLIPPreTrainedModel",
				    "CLIPTextModel",
				    "CLIPTextModelWithProjection",
				    "CLIPVisionModel",
				    "CLIPVisionModelWithProjection",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase: str      			=		[
				    "TF_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "TFCLIPModel",
				    "TFCLIPPreTrainedModel",
				    "TFCLIPTextModel",
				    "TFCLIPVisionModel",
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase: List[str]      			=		[
				    "FlaxCLIPModel",
				    "FlaxCLIPPreTrainedModel",
				    "FlaxCLIPTextModel",
				    "FlaxCLIPTextPreTrainedModel",
				    "FlaxCLIPVisionModel",
				    "FlaxCLIPVisionPreTrainedModel",
				]


if TYPE_CHECKING:
				from .configuration_clip import (
				    CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
				    CLIPConfig,
				    CLIPOnnxConfig,
				    CLIPTextConfig,
				    CLIPVisionConfig,
				)
				from .processing_clip import CLIPProcessor
				from .tokenization_clip import CLIPTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_clip_fast import CLIPTokenizerFast

				try:
								if not is_vision_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .feature_extraction_clip import CLIPFeatureExtractor
								from .image_processing_clip import CLIPImageProcessor

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_clip import (
								    CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
								    CLIPModel,
								    CLIPPreTrainedModel,
								    CLIPTextModel,
								    CLIPTextModelWithProjection,
								    CLIPVisionModel,
								    CLIPVisionModelWithProjection,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_clip import (
								    TF_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFCLIPModel,
								    TFCLIPPreTrainedModel,
								    TFCLIPTextModel,
								    TFCLIPVisionModel,
								)

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_flax_clip import (
								    FlaxCLIPModel,
								    FlaxCLIPPreTrainedModel,
								    FlaxCLIPTextModel,
								    FlaxCLIPTextPreTrainedModel,
								    FlaxCLIPVisionModel,
								    FlaxCLIPVisionPreTrainedModel,
								)


else:
				import sys

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





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


_lowercase: str      			=		logging.get_logger(__name__)

_lowercase: List[str]      			=		{
    "microsoft/trocr-base-handwritten": (
        "https://huggingface.co/microsoft/trocr-base-handwritten/resolve/main/config.json"
    ),
    # See all TrOCR models at https://huggingface.co/models?filter=trocr
}



class 	_lowercase							(   lowerCAmelCase	):





	"""simple docstring"""
	__A							=							"trocr"
	__A							=							["past_key_values"]
	__A							=							{
	    "num_attention_heads": "decoder_attention_heads",
	    "hidden_size": "d_model",
	    "num_hidden_layers": "decoder_layers",
	}




	def __init__(self		,       lowerCamelCase_=50265		,       lowerCamelCase_=1024		,       lowerCamelCase_=12		,       lowerCamelCase_=16		,       lowerCamelCase_=4096		,       lowerCamelCase_="gelu"		,       lowerCamelCase_=512		,       lowerCamelCase_=0.1		,       lowerCamelCase_=0.0		,       lowerCamelCase_=0.0		,       lowerCamelCase_=2		,       lowerCamelCase_=0.02		,       lowerCamelCase_=0.0		,       lowerCamelCase_=True		,       lowerCamelCase_=False		,       lowerCamelCase_=True		,       lowerCamelCase_=True		,       lowerCamelCase_=1		,       lowerCamelCase_=0		,       lowerCamelCase_=2		,       **lowerCamelCase_		,       ):
						"""simple docstring"""

						a					     =   vocab_size
						a					     =   d_model
						a					     =   decoder_layers
						a					     =   decoder_attention_heads
						a					     =   decoder_ffn_dim
						a					     =   activation_function
						a					     =   max_position_embeddings
						a					     =   dropout
						a					     =   attention_dropout
						a					     =   activation_dropout
						a					     =   init_std
						a					     =   decoder_layerdrop
						a					     =   use_cache
						a					     =   scale_embedding
						a					     =   use_learned_position_embeddings
						a					     =   layernorm_embedding

						super().__init__(
						    pad_token_id=lowerCamelCase_		,       bos_token_id=lowerCamelCase_		,       eos_token_id=lowerCamelCase_		,       decoder_start_token_id=lowerCamelCase_		,       **lowerCamelCase_		,       )
