BaseKernel.eval(..) should not declare a checked exception
BaseKernel.eval(..) should not declare a checked exception. It should throw some kind of RuntimeException instead. This will allow the extension classes to cut down the exception handling boilerplate:
public class DFLibJupyterExtension implements Extension { ... @Override public void install(BaseKernel kernel) { try { kernel.eval(...); } catch (Exception e) { throw new RuntimeException(e); } } }