in kernel-api/src/main/scala/org/apache/toree/magic/MagicManager.scala [93:113]
private def handleMagicResult(name: String, result: Try[Any]): MagicOutput = result match {
case Success(magicOutput) => magicOutput match {
case out: MagicOutput => out
case null | _: BoxedUnit => MagicOutput()
case cmo: Map[_, _]
if cmo.keys.forall(_.isInstanceOf[String]) &&
cmo.values.forall(_.isInstanceOf[String]) =>
MagicOutput(cmo.asInstanceOf[Map[String, String]].toSeq:_*)
case unknown =>
val message =
s"""Magic $name did not return proper magic output
|type. Expected ${classOf[MagicOutput].getName}, but found
|type of ${unknown.getClass.getName}.""".trim.stripMargin
logger.warn(message)
MagicOutput("text/plain" -> message)
}
case Failure(t) =>
val message = s"Magic $name failed to execute with error: \n${t.getMessage}"
logger.warn(message, t)
MagicOutput("text/plain" -> message)
}