class_docstr: Convert Tatoeba-Challenge models to huggingface format.
  
  Steps:
  
      1. Convert numpy state dict to hf format (same code as OPUS-MT-Train conversion).
      2. Rename opus model to huggingface format. This means replace each alpha3 code with an alpha2 code if a unique
         one exists. e.g. aav-eng -> aav-en, heb-eng -> he-en
      3. Select the best model for a particular pair, parse the yml for it and write a model card. By default the
         best model is the one listed first in released-model-results, but it's also possible to specify the most
         recent one.
code: def __init__(self, save_dir="marian_converted"):
      assert Path(
          DEFAULT_REPO
      ).exists(), "need git clone git@github.com:Helsinki-NLP/Tatoeba-Challenge.git"
      self.download_lang_info()
      self.model_results = json.load(
          open("Tatoeba-Challenge/models/released-model-results.json")
      )
      self.alpha3_to_alpha2 = {}
      for line in open(ISO_PATH):
          parts = line.split("\t")
          if len(parts[0]) == 3 and len(parts[3]) == 2:
              self.alpha3_to_alpha2[parts[0]] = parts[3]
      for line in LANG_CODE_PATH:
          parts = line.split(",")
          if len(parts[0]) == 3 and len(parts[1]) == 2:
              self.alpha3_to_alpha2[parts[0]] = parts[1]
      self.model_card_dir = Path(save_dir)
      self.tag2name = {}
      for key, value in GROUP_MEMBERS.items():
          self.tag2name[key] = value[0]
  
imports: import argparse
  import datetime
  import json
  import os
  import re
  from pathlib import Path
  from typing import Tuple
  from tqdm import tqdm
  import yaml
  from transformers.models.marian.convert_marian_to_pytorch import FRONT_MATTER_TEMPLATE, convert, convert_opus_name_to_hf_name, download_and_unzip, get_system_metadata
label_desc: Use image node_id 1 to create a new TatoebaConverter object  with example: obj = TatoebaConverter(save_dir)