from typing import TYPE_CHECKING

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


snake_case__						      =			{
    'auto_factory': ['get_values'],
    'configuration_auto': ['ALL_PRETRAINED_CONFIG_ARCHIVE_MAP', 'CONFIG_MAPPING', 'MODEL_NAMES_MAPPING', 'AutoConfig'],
    'feature_extraction_auto': ['FEATURE_EXTRACTOR_MAPPING', 'AutoFeatureExtractor'],
    'image_processing_auto': ['IMAGE_PROCESSOR_MAPPING', 'AutoImageProcessor'],
    'processing_auto': ['PROCESSOR_MAPPING', 'AutoProcessor'],
    'tokenization_auto': ['TOKENIZER_MAPPING', 'AutoTokenizer'],
}

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     snake_case__						      =			[
         'MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING',
         'MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING',
         'MODEL_FOR_AUDIO_XVECTOR_MAPPING',
         'MODEL_FOR_BACKBONE_MAPPING',
         'MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING',
         'MODEL_FOR_CAUSAL_LM_MAPPING',
         'MODEL_FOR_CTC_MAPPING',
         'MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING',
         'MODEL_FOR_DEPTH_ESTIMATION_MAPPING',
         'MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING',
         'MODEL_FOR_IMAGE_SEGMENTATION_MAPPING',
         'MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING',
         'MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING',
         'MODEL_FOR_MASKED_LM_MAPPING',
         'MODEL_FOR_MASK_GENERATION_MAPPING',
         'MODEL_FOR_MULTIPLE_CHOICE_MAPPING',
         'MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING',
         'MODEL_FOR_OBJECT_DETECTION_MAPPING',
         'MODEL_FOR_PRETRAINING_MAPPING',
         'MODEL_FOR_QUESTION_ANSWERING_MAPPING',
         'MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING',
         'MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING',
         'MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING',
         'MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING',
         'MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING',
         'MODEL_FOR_TEXT_ENCODING_MAPPING',
         'MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING',
         'MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING',
         'MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING',
         'MODEL_FOR_VISION_2_SEQ_MAPPING',
         'MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING',
         'MODEL_MAPPING',
         'MODEL_WITH_LM_HEAD_MAPPING',
         'MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING',
         'MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING',
         'AutoModel',
         'AutoBackbone',
         'AutoModelForAudioClassification',
         'AutoModelForAudioFrameClassification',
         'AutoModelForAudioXVector',
         'AutoModelForCausalLM',
         'AutoModelForCTC',
         'AutoModelForDepthEstimation',
         'AutoModelForImageClassification',
         'AutoModelForImageSegmentation',
         'AutoModelForInstanceSegmentation',
         'AutoModelForMaskGeneration',
         'AutoModelForTextEncoding',
         'AutoModelForMaskedImageModeling',
         'AutoModelForMaskedLM',
         'AutoModelForMultipleChoice',
         'AutoModelForNextSentencePrediction',
         'AutoModelForObjectDetection',
         'AutoModelForPreTraining',
         'AutoModelForQuestionAnswering',
         'AutoModelForSemanticSegmentation',
         'AutoModelForSeq2SeqLM',
         'AutoModelForSequenceClassification',
         'AutoModelForSpeechSeq2Seq',
         'AutoModelForTableQuestionAnswering',
         'AutoModelForTokenClassification',
         'AutoModelForUniversalSegmentation',
         'AutoModelForVideoClassification',
         'AutoModelForVision2Seq',
         'AutoModelForVisualQuestionAnswering',
         'AutoModelForDocumentQuestionAnswering',
         'AutoModelWithLMHead',
         'AutoModelForZeroShotImageClassification',
         'AutoModelForZeroShotObjectDetection',
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     snake_case__						      =			[
         'TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING',
         'TF_MODEL_FOR_CAUSAL_LM_MAPPING',
         'TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING',
         'TF_MODEL_FOR_MASK_GENERATION_MAPPING',
         'TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING',
         'TF_MODEL_FOR_MASKED_LM_MAPPING',
         'TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING',
         'TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING',
         'TF_MODEL_FOR_PRETRAINING_MAPPING',
         'TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING',
         'TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING',
         'TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING',
         'TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING',
         'TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING',
         'TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING',
         'TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING',
         'TF_MODEL_FOR_TEXT_ENCODING_MAPPING',
         'TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING',
         'TF_MODEL_FOR_VISION_2_SEQ_MAPPING',
         'TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING',
         'TF_MODEL_MAPPING',
         'TF_MODEL_WITH_LM_HEAD_MAPPING',
         'TFAutoModel',
         'TFAutoModelForAudioClassification',
         'TFAutoModelForCausalLM',
         'TFAutoModelForImageClassification',
         'TFAutoModelForMaskedImageModeling',
         'TFAutoModelForMaskedLM',
         'TFAutoModelForMaskGeneration',
         'TFAutoModelForMultipleChoice',
         'TFAutoModelForNextSentencePrediction',
         'TFAutoModelForPreTraining',
         'TFAutoModelForDocumentQuestionAnswering',
         'TFAutoModelForQuestionAnswering',
         'TFAutoModelForSemanticSegmentation',
         'TFAutoModelForSeq2SeqLM',
         'TFAutoModelForSequenceClassification',
         'TFAutoModelForSpeechSeq2Seq',
         'TFAutoModelForTableQuestionAnswering',
         'TFAutoModelForTextEncoding',
         'TFAutoModelForTokenClassification',
         'TFAutoModelForVision2Seq',
         'TFAutoModelForZeroShotImageClassification',
         'TFAutoModelWithLMHead',
     ]

try:
     if not is_flax_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     snake_case__						      =			[
         'FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING',
         'FLAX_MODEL_FOR_CAUSAL_LM_MAPPING',
         'FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING',
         'FLAX_MODEL_FOR_MASKED_LM_MAPPING',
         'FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING',
         'FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING',
         'FLAX_MODEL_FOR_PRETRAINING_MAPPING',
         'FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING',
         'FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING',
         'FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING',
         'FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING',
         'FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING',
         'FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING',
         'FLAX_MODEL_MAPPING',
         'FlaxAutoModel',
         'FlaxAutoModelForCausalLM',
         'FlaxAutoModelForImageClassification',
         'FlaxAutoModelForMaskedLM',
         'FlaxAutoModelForMultipleChoice',
         'FlaxAutoModelForNextSentencePrediction',
         'FlaxAutoModelForPreTraining',
         'FlaxAutoModelForQuestionAnswering',
         'FlaxAutoModelForSeq2SeqLM',
         'FlaxAutoModelForSequenceClassification',
         'FlaxAutoModelForSpeechSeq2Seq',
         'FlaxAutoModelForTokenClassification',
         'FlaxAutoModelForVision2Seq',
     ]


if TYPE_CHECKING:
     from .auto_factory import get_values
     from .configuration_auto import ALL_PRETRAINED_CONFIG_ARCHIVE_MAP, CONFIG_MAPPING, MODEL_NAMES_MAPPING, AutoConfig
     from .feature_extraction_auto import FEATURE_EXTRACTOR_MAPPING, AutoFeatureExtractor
     from .image_processing_auto import IMAGE_PROCESSOR_MAPPING, AutoImageProcessor
     from .processing_auto import PROCESSOR_MAPPING, AutoProcessor
     from .tokenization_auto import TOKENIZER_MAPPING, AutoTokenizer

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_auto import (
              MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
              MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING,
              MODEL_FOR_AUDIO_XVECTOR_MAPPING,
              MODEL_FOR_BACKBONE_MAPPING,
              MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
              MODEL_FOR_CAUSAL_LM_MAPPING,
              MODEL_FOR_CTC_MAPPING,
              MODEL_FOR_DEPTH_ESTIMATION_MAPPING,
              MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
              MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
              MODEL_FOR_IMAGE_SEGMENTATION_MAPPING,
              MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING,
              MODEL_FOR_MASK_GENERATION_MAPPING,
              MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
              MODEL_FOR_MASKED_LM_MAPPING,
              MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
              MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
              MODEL_FOR_OBJECT_DETECTION_MAPPING,
              MODEL_FOR_PRETRAINING_MAPPING,
              MODEL_FOR_QUESTION_ANSWERING_MAPPING,
              MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
              MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
              MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
              MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
              MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
              MODEL_FOR_TEXT_ENCODING_MAPPING,
              MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
              MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING,
              MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING,
              MODEL_FOR_VISION_2_SEQ_MAPPING,
              MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING,
              MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
              MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING,
              MODEL_MAPPING,
              MODEL_WITH_LM_HEAD_MAPPING,
              AutoBackbone,
              AutoModel,
              AutoModelForAudioClassification,
              AutoModelForAudioFrameClassification,
              AutoModelForAudioXVector,
              AutoModelForCausalLM,
              AutoModelForCTC,
              AutoModelForDepthEstimation,
              AutoModelForDocumentQuestionAnswering,
              AutoModelForImageClassification,
              AutoModelForImageSegmentation,
              AutoModelForInstanceSegmentation,
              AutoModelForMaskedImageModeling,
              AutoModelForMaskedLM,
              AutoModelForMaskGeneration,
              AutoModelForMultipleChoice,
              AutoModelForNextSentencePrediction,
              AutoModelForObjectDetection,
              AutoModelForPreTraining,
              AutoModelForQuestionAnswering,
              AutoModelForSemanticSegmentation,
              AutoModelForSeqaSeqLM,
              AutoModelForSequenceClassification,
              AutoModelForSpeechSeqaSeq,
              AutoModelForTableQuestionAnswering,
              AutoModelForTextEncoding,
              AutoModelForTokenClassification,
              AutoModelForUniversalSegmentation,
              AutoModelForVideoClassification,
              AutoModelForVisionaSeq,
              AutoModelForVisualQuestionAnswering,
              AutoModelForZeroShotImageClassification,
              AutoModelForZeroShotObjectDetection,
              AutoModelWithLMHead,
          )

     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_auto import (
              TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
              TF_MODEL_FOR_CAUSAL_LM_MAPPING,
              TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
              TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
              TF_MODEL_FOR_MASK_GENERATION_MAPPING,
              TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
              TF_MODEL_FOR_MASKED_LM_MAPPING,
              TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
              TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
              TF_MODEL_FOR_PRETRAINING_MAPPING,
              TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
              TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
              TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
              TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
              TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
              TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
              TF_MODEL_FOR_TEXT_ENCODING_MAPPING,
              TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
              TF_MODEL_FOR_VISION_2_SEQ_MAPPING,
              TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
              TF_MODEL_MAPPING,
              TF_MODEL_WITH_LM_HEAD_MAPPING,
              TFAutoModel,
              TFAutoModelForAudioClassification,
              TFAutoModelForCausalLM,
              TFAutoModelForDocumentQuestionAnswering,
              TFAutoModelForImageClassification,
              TFAutoModelForMaskedImageModeling,
              TFAutoModelForMaskedLM,
              TFAutoModelForMaskGeneration,
              TFAutoModelForMultipleChoice,
              TFAutoModelForNextSentencePrediction,
              TFAutoModelForPreTraining,
              TFAutoModelForQuestionAnswering,
              TFAutoModelForSemanticSegmentation,
              TFAutoModelForSeqaSeqLM,
              TFAutoModelForSequenceClassification,
              TFAutoModelForSpeechSeqaSeq,
              TFAutoModelForTableQuestionAnswering,
              TFAutoModelForTextEncoding,
              TFAutoModelForTokenClassification,
              TFAutoModelForVisionaSeq,
              TFAutoModelForZeroShotImageClassification,
              TFAutoModelWithLMHead,
          )

     try:
          if not is_flax_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_flax_auto import (
              FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
              FLAX_MODEL_FOR_CAUSAL_LM_MAPPING,
              FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
              FLAX_MODEL_FOR_MASKED_LM_MAPPING,
              FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
              FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
              FLAX_MODEL_FOR_PRETRAINING_MAPPING,
              FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
              FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
              FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
              FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
              FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
              FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING,
              FLAX_MODEL_MAPPING,
              FlaxAutoModel,
              FlaxAutoModelForCausalLM,
              FlaxAutoModelForImageClassification,
              FlaxAutoModelForMaskedLM,
              FlaxAutoModelForMultipleChoice,
              FlaxAutoModelForNextSentencePrediction,
              FlaxAutoModelForPreTraining,
              FlaxAutoModelForQuestionAnswering,
              FlaxAutoModelForSeqaSeqLM,
              FlaxAutoModelForSequenceClassification,
              FlaxAutoModelForSpeechSeqaSeq,
              FlaxAutoModelForTokenClassification,
              FlaxAutoModelForVisionaSeq,
          )

else:
     import sys

     snake_case__						      =			_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)
import argparse

from transformers import CanineConfig, CanineModel, CanineTokenizer, load_tf_weights_in_canine
from transformers.utils import logging


logging.set_verbosity_info()
def    __magic_name__(	__UpperCAmelCase			,    __UpperCAmelCase		)    ->     Tuple:



      '''simple docstring'''

      _lowerCamelCase           =					CanineConfig()
      _lowerCamelCase           =					CanineModel(__UpperCAmelCase		)
      model.eval()

      print(F'Building PyTorch model from configuration: {config}'		)

      # Load weights from tf checkpoint
      load_tf_weights_in_canine(__UpperCAmelCase			,    __UpperCAmelCase			,    __UpperCAmelCase		)

      # Save pytorch-model (weights and configuration)
      print(F'Save PyTorch model to {pytorch_dump_path}'		)
      model.save_pretrained(__UpperCAmelCase		)

      # Save tokenizer files
      _lowerCamelCase           =					CanineTokenizer()
      print(F'Save tokenizer files to {pytorch_dump_path}'		)
      tokenizer.save_pretrained(__UpperCAmelCase		)


if __name__ == "__main__":
     snake_case__						      =			argparse.ArgumentParser()
     # Required parameters
     parser.add_argument(
         '--tf_checkpoint_path',
         default=None,
         type=str,
         required=True,
         help='Path to the TensorFlow checkpoint. Should end with model.ckpt',
     )
     parser.add_argument(
         '--pytorch_dump_path',
         default=None,
         type=str,
         required=True,
         help='Path to a folder where the PyTorch model will be placed.',
     )
     snake_case__						      =			parser.parse_args()
     convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.pytorch_dump_path)