Thanks Chronon.
I tried RPC with Eclipse and PyCharm. While it seems to work initially, eventually the connection is dropped with the following error on IDE's side:
Traceback (most recent call last):
File “<input>”, line 1, in <module>
File “C:\Program Files\Side Effects Software\Houdini 13.0.509\python27\lib\site-packages\rpyc\core\netref.py”, line 90, in __getattribute__
return syncreq(self, consts.HANDLE_GETATTR, name)
File “C:\Program Files\Side Effects Software\Houdini 13.0.509\python27\lib\site-packages\rpyc\core\netref.py”, line 45, in syncreq
return conn().sync_request(handler, oid, *args)
File “C:\Program Files\Side Effects Software\Houdini 13.0.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 337, in sync_request
seq = self._send_request(handler, args)
File “C:\Program Files\Side Effects Software\Houdini 13.0.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 158, in _send_request
self._send(consts.MSG_REQUEST, seq, (handler, self._box(args)))
File “C:\Program Files\Side Effects Software\Houdini 13.0.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 153, in _send
self._channel.send(data)
File “C:\Program Files\Side Effects Software\Houdini 13.0.509\python27\lib\site-packages\rpyc\core\channel.py”, line 50, in send
self.stream.write(buf)
File “C:\Program Files\Side Effects Software\Houdini 13.0.509\python27\lib\site-packages\rpyc\core\stream.py”, line 115, in write
count = self.sock.send(data)
File “C:\Program Files\Side Effects Software\Houdini 13.0.509\python27\lib\site-packages\rpyc\core\stream.py”, line 46, in __getattr__
raise EOFError(“stream has been closed”)
EOFError: stream has been closed
And on Houdini's side it looks like this:
Exception in thread Thread-5:
Traceback (most recent call last):
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\threading.py”, line 808, in __bootstrap_inner
self.run()
File “C

PROGRA~1/SIDEEF~1/HOUDIN~1.509/houdini/python2.7libs\hou.py”, line 67520, in __threadRun
self.__run()
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\threading.py”, line 761, in run
self.__target(*self.__args, **self.__kwargs)
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\site-packages\rpyc\utils\server.py”, line 110, in _authenticate_and_serve_client
self._serve_client(sock, credentials)
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\site-packages\rpyc\utils\server.py”, line 127, in _serve_client
conn.serve_all()
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 312, in serve_all
self.serve(0.1)
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 304, in serve
self._dispatch(data)
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 274, in _dispatch
self._dispatch_request(seq, args)
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 233, in _dispatch_request
self._send_reply(seq, res)
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 161, in _send_reply
self._send(consts.MSG_REPLY, seq, self._box(obj))
File “C:\PROGRA~1\SIDEEF~1\HOUDIN~1.509\python27\lib\site-packages\rpyc\core\protocol.py”, line 181, in _box
cls = getattr(obj, “__class__”, type(obj))
NameError: Unknown C global variable
However, I found a workaround for code completion in PyCharm using docstring type hints. This does not eliminate the unresolved attribute references warning when it comes to enums in kwargs, but it does show me full lists of methods available to objects.