class_docstr: The ``ConcatRegistry`` can be used to concatenate multiple registries of different types together.
class_docstr_tok: ["The","``","ConcatRegistry","``","can","be","used","to","concatenate","multiple","registries","of","different","types","together","."]
code: def get(
      self,
      key: str,
      with_metadata: bool = False,
      strict: bool = True,
      **metadata,
  ) -> Union[
      Callable,
      _REGISTERED_FUNCTION,
      List[_REGISTERED_FUNCTION],
      List[Callable],
  ]:
      matches = []
      external_matches = []
  
      for registry in self.registries:
          if key in registry:
              result = registry.get(
                  key,
                  with_metadata=with_metadata,
                  strict=strict,
                  **metadata,
              )
              if not isinstance(result, list):
                  result = [result]
  
              if isinstance(registry, ExternalRegistry):
                  external_matches += result
              else:
                  matches += result
  
      if not strict:
          return matches + external_matches
  
      if len(matches) > 0:
          return matches[0]
  
      if len(external_matches) == 1:
          return external_matches[0]
  
      if len(matches) == 0 and len(external_matches) == 0:
          raise KeyError("No matches found in registry.")
      raise KeyError(
          "Multiple matches from external registries, a strict lookup is not possible."
      )
  
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 5 for calling the ConcatRegistry obj's underlying member method code with example usage: obj.get(key, with_metadata, strict) and returns: unknown, matches, external_matches