
from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_UpperCAmelCase      :				Any          = logging.get_logger(__name__)

_UpperCAmelCase      :				Union[str, Any]          = {
    "facebook/deit-base-distilled-patch16-224": (
        "https://huggingface.co/facebook/deit-base-patch16-224/resolve/main/config.json"
    ),
    # See all DeiT models at https://huggingface.co/models?filter=deit
}


class        lowercase      (	_SCREAMING_SNAKE_CASE     ):
		__lowercase : Optional[int]			  =       "deit"



		def __init__(				self       ,   A_=768       ,   A_=12       ,   A_=12       ,   A_=3_072       ,   A_="gelu"       ,   A_=0.0       ,   A_=0.0       ,   A_=0.02       ,   A_=1e-12       ,   A_=224       ,   A_=16       ,   A_=3       ,   A_=True       ,   A_=16       ,   **A_       ,   )						->      str:
				"""simple docstring"""
				super().__init__(**A_ )

				UpperCamelCase						=  hidden_size
				UpperCamelCase						=  num_hidden_layers
				UpperCamelCase						=  num_attention_heads
				UpperCamelCase						=  intermediate_size
				UpperCamelCase						=  hidden_act
				UpperCamelCase						=  hidden_dropout_prob
				UpperCamelCase						=  attention_probs_dropout_prob
				UpperCamelCase						=  initializer_range
				UpperCamelCase						=  layer_norm_eps
				UpperCamelCase						=  image_size
				UpperCamelCase						=  patch_size
				UpperCamelCase						=  num_channels
				UpperCamelCase						=  qkv_bias
				UpperCamelCase						=  encoder_stride






class        lowercase      (	_SCREAMING_SNAKE_CASE     ):
		__lowercase : Tuple			  =       version.parse("1.11"     )



		@property
		def __UpperCamelCase				(				self )						->      Mapping[str, Mapping[int, str]]:
				"""simple docstring"""
				return OrderedDict(
				    [
				        ('pixel_values', {0: 'batch', 1: 'num_channels', 2: 'height', 3: 'width'}),
				    ] )



		@property
		def __UpperCamelCase				(				self )						->      float:
				"""simple docstring"""
				return 1e-4


import re


def    A (      lowercase				)     ->						str:
		'''simple docstring'''

		if len(re.findall('[ATCG]'					, lowercase				)				) != len(lowercase				):
				raise ValueError('Invalid Strand'				)

		return dna.translate(dna.maketrans('ATCG'					, 'TAGC'				)				)


if __name__ == "__main__":
					import doctest

					doctest.testmod()
