'''simple docstring'''





from typing import TYPE_CHECKING

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


lowercase_     :   Dict 				=				{
    'configuration_convbert': ['CONVBERT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'ConvBertConfig', 'ConvBertOnnxConfig'],
    'tokenization_convbert': ['ConvBertTokenizer'],
}

try:
      if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowercase_     :   List[Any] 				=				['ConvBertTokenizerFast']

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowercase_     :   int 				=				[
          'CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
          'ConvBertForMaskedLM',
          'ConvBertForMultipleChoice',
          'ConvBertForQuestionAnswering',
          'ConvBertForSequenceClassification',
          'ConvBertForTokenClassification',
          'ConvBertLayer',
          'ConvBertModel',
          'ConvBertPreTrainedModel',
          'load_tf_weights_in_convbert',
      ]


try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      lowercase_     :   Union[str, Any] 				=				[
          'TF_CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
          'TFConvBertForMaskedLM',
          'TFConvBertForMultipleChoice',
          'TFConvBertForQuestionAnswering',
          'TFConvBertForSequenceClassification',
          'TFConvBertForTokenClassification',
          'TFConvBertLayer',
          'TFConvBertModel',
          'TFConvBertPreTrainedModel',
      ]


if TYPE_CHECKING:
      from .configuration_convbert import CONVBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, ConvBertConfig, ConvBertOnnxConfig
      from .tokenization_convbert import ConvBertTokenizer

      try:
            if not is_tokenizers_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .tokenization_convbert_fast import ConvBertTokenizerFast

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_convbert import (
                CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                ConvBertForMaskedLM,
                ConvBertForMultipleChoice,
                ConvBertForQuestionAnswering,
                ConvBertForSequenceClassification,
                ConvBertForTokenClassification,
                ConvBertLayer,
                ConvBertModel,
                ConvBertPreTrainedModel,
                load_tf_weights_in_convbert,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_convbert import (
                TF_CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFConvBertForMaskedLM,
                TFConvBertForMultipleChoice,
                TFConvBertForQuestionAnswering,
                TFConvBertForSequenceClassification,
                TFConvBertForTokenClassification,
                TFConvBertLayer,
                TFConvBertModel,
                TFConvBertPreTrainedModel,
            )


else:
      import sys

      lowercase_     :   Dict 				=				_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)


import re







def 			A__      (	snake_case_ :		str      ):

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

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


if __name__ == "__main__":
      import doctest

      doctest.testmod()

