class_docstr: The ``ExternalRegistry`` is a ``FlashRegistry`` that can point to an external provider via a getter function.
  
  Args:
      getter: A function whose first argument is a key that can optionally take additional args and kwargs.
      providers: The provider(/s) of entries in this registry.
class_docstr_tok: ["The","``","ExternalRegistry","``","is","a","``","FlashRegistry","``","that","can","point","to","an","external","provider","via","a","getter","function",".","Args",":","getter",":","A","function","whose","first","argument","is","a","key","that","can","optionally","take","additional","args","and","kwargs",".","providers",":","The","provider","(","\/s",")","of","entries","in","this","registry","."]
code: def __init__(
      self,
      getter: Callable,
      name: str,
      providers: Optional[Union[Provider, List[Provider]]] = None,
      verbose: bool = False,
      **metadata,
  ):
      super().__init__(name, verbose=verbose)
  
      self.getter = getter
      self.providers = (
          providers
          if providers is None or isinstance(providers, list)
          else [providers]
      )
      self.metadata = metadata
  
imports: import functools
  import inspect
  import itertools
  from typing import Any, Callable, Dict, List, Optional, Union
  from pytorch_lightning.utilities import rank_zero_info
  from flash.core.utilities.providers import Provider
label_desc: Use image node_id 1 to create a new ExternalRegistry object from inherited base classes: FlashRegistry with example: obj = ExternalRegistry(getter, name, providers, verbose)