Cleanup for stow ---STOW
[dotfiles/.git] / .local / lib / python2.7 / site-packages / pynvim / msgpack_rpc / __init__.py
diff --git a/.local/lib/python2.7/site-packages/pynvim/msgpack_rpc/__init__.py b/.local/lib/python2.7/site-packages/pynvim/msgpack_rpc/__init__.py
new file mode 100644 (file)
index 0000000..8da22e0
--- /dev/null
@@ -0,0 +1,45 @@
+"""Msgpack-rpc subpackage.
+
+This package implements a msgpack-rpc client. While it was designed for
+handling some Nvim particularities(server->client requests for example), the
+code here should work with other msgpack-rpc servers.
+"""
+from pynvim.msgpack_rpc.async_session import AsyncSession
+from pynvim.msgpack_rpc.event_loop import EventLoop
+from pynvim.msgpack_rpc.msgpack_stream import MsgpackStream
+from pynvim.msgpack_rpc.session import ErrorResponse, Session
+from pynvim.util import get_client_info
+
+
+__all__ = ('tcp_session', 'socket_session', 'stdio_session', 'child_session',
+           'ErrorResponse')
+
+
+def session(transport_type='stdio', *args, **kwargs):
+    loop = EventLoop(transport_type, *args, **kwargs)
+    msgpack_stream = MsgpackStream(loop)
+    async_session = AsyncSession(msgpack_stream)
+    session = Session(async_session)
+    session.request(b'nvim_set_client_info',
+                    *get_client_info('client', 'remote', {}), async_=True)
+    return session
+
+
+def tcp_session(address, port=7450):
+    """Create a msgpack-rpc session from a tcp address/port."""
+    return session('tcp', address, port)
+
+
+def socket_session(path):
+    """Create a msgpack-rpc session from a unix domain socket."""
+    return session('socket', path)
+
+
+def stdio_session():
+    """Create a msgpack-rpc session from stdin/stdout."""
+    return session('stdio')
+
+
+def child_session(argv):
+    """Create a msgpack-rpc session from a new Nvim instance."""
+    return session('child', argv)