def list_pretrained_models() -> Optional[List[PretrainedModelInfo]]:
     pretrained_models = []
     for key, value in BERT_PRETRAINED_MODEL_ARCHIVE_MAP.items():
         model_info = PretrainedModelInfo(
             pretrained_model_name=key,
             description="weights by HuggingFace",
             parameters=BERT_PRETRAINED_CONFIG_ARCHIVE_MAP[key],
             location=value)
         pretrained_models.append(model_info)
     return pretrained_models
    def test_model_from_pretrained(self):
        logging.basicConfig(level=logging.INFO)
        for model_name in list(BERT_PRETRAINED_MODEL_ARCHIVE_MAP.keys())[:1]:
            config = BertConfig.from_pretrained(model_name)
            self.assertIsNotNone(config)
            self.assertIsInstance(config, PretrainedConfig)

            model = BertModel.from_pretrained(model_name)
            model, loading_info = BertModel.from_pretrained(model_name, output_loading_info=True)
            self.assertIsNotNone(model)
            self.assertIsInstance(model, PreTrainedModel)
            for value in loading_info.values():
                self.assertEqual(len(value), 0)

            config = BertConfig.from_pretrained(model_name, output_attentions=True, output_hidden_states=True)
            model = BertModel.from_pretrained(model_name, output_attentions=True, output_hidden_states=True)
            self.assertEqual(model.config.output_attentions, True)
            self.assertEqual(model.config.output_hidden_states, True)
            self.assertEqual(model.config, config)