code: def create_or_load_convert_featurizer(
      default_model_storage: ModelStorage,
      default_execution_context: ExecutionContext,
  ) -> Callable[[Dict[Text, Any], bool], ConveRTFeaturizer]:
      def inner(
          config: Dict[Text, Any], load: bool = False
      ) -> Callable[[Dict[Text, Any], bool], ConveRTFeaturizer]:
          if load:
              constructor = ConveRTFeaturizer.load
          else:
              constructor = ConveRTFeaturizer.create
          return constructor(
              config,
              model_storage=default_model_storage,
              execution_context=default_execution_context,
              resource=Resource("unused"),
          )
  
      return inner
  
imports: import numpy
  import pytest
  from typing import Text, Optional, List, Tuple, Dict, Any, Callable
  from pathlib import Path
  import os
  from _pytest.monkeypatch import MonkeyPatch
  from rasa.nlu.tokenizers.whitespace_tokenizer import WhitespaceTokenizer
  from rasa.shared.nlu.training_data.training_data import TrainingData
  from rasa.shared.nlu.training_data.message import Message
  from rasa.nlu.constants import FEATURIZER_CLASS_ALIAS, TOKENS_NAMES, NUMBER_OF_SUB_TOKENS
  from rasa.shared.nlu.constants import TEXT, INTENT, RESPONSE
  from rasa.nlu.featurizers.dense_featurizer.convert_featurizer import ConveRTFeaturizer, RESTRICTED_ACCESS_URL, ORIGINAL_TF_HUB_MODULE_URL
  from rasa.exceptions import RasaException
  from rasa.engine.graph import ExecutionContext
  from rasa.engine.storage.storage import ModelStorage
  from rasa.engine.storage.resource import Resource
label_desc: Use image node_id 1 for calling a global function with example usage: create_or_load_convert_featurizer(default_model_storage, default_execution_context) and returns: inner, constructor