Github user agoodm commented on the issue:

    https://github.com/apache/zeppelin/pull/1439
  
    Thank you very much for the detailed explanation. To be precise, I made the 
`cmd` argument that gets registered a String solely because 
`Interpreter.interpret()` accepts a String representation of the code rather 
than actual callable objects. I think actually being able to do that (eg, use 
some API like ` z.registerCallback("post_exec", callback_func)` rather than 
`z.registerCallback("post_exec", "callback_func()") `would depend on the 
language that's being interpreted and what sort of libraries are available to 
connect it to the JVM (eg py4j with python). 
    
    Nevertheless I think you have made a very compelling point. The source of 
my problem with my first implementation of the registry system using the 
`Interpreter` class was that I only considered attempting an implementation of 
pre/post execute from a Paragraph execution perspective. This is why I thought 
that I needed to broadcast changes in the registry to the `ZeppelinServer`, as 
I processed the registry from within the `Paragraph` class rather than from the 
`RemoteInterpreterServer` class. As a result of your explanation I think I 
understand everything a lot better now, so I'll go ahead and work on an 
implementation tomorrow which works exclusively through the interpreter process.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to