docs: def conversation(self, scope=None):
          """
          Get a single conversation, by scope, that this relation is currently handling.
  
          If the scope is not given, the correct scope is inferred by the current
          hook execution context.  If there is no current hook execution context, it
          is assume that there is only a single global conversation scope for this
          relation.  If this relation's scope is not global and there is no current
          hook execution context, then an error is raised.
          """
          if scope is None:
              if self.scope is scopes.UNIT:
                  scope = hookenv.remote_unit()
              elif self.scope is scopes.SERVICE:
                  scope = hookenv.remote_service_name()
              else:
                  scope = self.scope
          if scope is None:
              raise ValueError('Unable to determine default scope: no current hook or global scope')
          for conversation in self._conversations:
              if conversation.scope == scope:
                  return conversation
          else:
              raise ValueError("Conversation with scope '%s' not found" % scope)