class_docstr: Wrapper provider to provide a singleton instance.
class_docstr_tok: ["Wrapper","provider","to","provide","a","singleton","instance","."]
code: def make_factory(
      self, name: str, type_hint: Any
  ) -> Callable[..., Any]:
      factory = self._wrapped.make_factory(name, type_hint)
  
      @functools.wraps(factory)
      def singleton_factory(*args, **kwargs):
          if self._value is None:
              self._value = factory(*args, **kwargs)
          return self._value
  
      return singleton_factory
  
imports: import abc
  import functools
  import inspect
  import sys
  from typing import Any, Callable, Generic, Optional, TypeVar, Union, get_args, get_origin
  from tfx.utils import pure_typing_utils
label_desc: Use image node_id 3 for calling the SingletonProvider obj's underlying member method code with example usage: obj.make_factory(name, type_hint) and returns: singleton_factory, self