code: def get_integration(self, name_or_class):
          # type: (Union[str, Integration]) -> Any
          
          if isinstance(name_or_class, str):
              integration_name = name_or_class
          elif name_or_class.identifier is not None:
              integration_name = name_or_class.identifier
          else:
              raise ValueError("Integration has no name")
  
          client = self._stack[-1][0]
          if client is not None:
              rv = client.integrations.get(integration_name)
              if rv is not None:
                  return rv
  
          initial_client = _initial_client
          if initial_client is not None:
              initial_client = initial_client()
  
          if (
              initial_client is not None
              and initial_client is not client
              and initial_client.integrations.get(name_or_class) is not None
          ):
              warning = (
                  "Integration %r attempted to run but it was only "
                  "enabled on init() but not the client that "
                  "was bound to the current flow.  Earlier versions of "
                  "the SDK would consider these integrations enabled but "
                  "this is no longer the case." % (name_or_class,)
              )
              warn(Warning(warning), stacklevel=3)
              logger.warning(warning)
docs: Returns the integration for this hub by name or class.  If there
          is no client bound or the client does not have that integration
          then `None` is returned.
  
          If the return value is not `None` the hub is guaranteed to have a
          client attached.