def __init__(self, session, channel_id, metadata, types,<EOL>decode=False, err_cb=None):
self._session = session<EOL>self.channel_id = channel_id<EOL>self.metadata = metadata<EOL>version = metadata.get("<STR_LIT:version>", {"<STR_LIT>": <NUM_LIT:0>})<EOL>self.version = Version(**version)<EOL>self.types = types<EOL>self.api = RemoteApi(self, '<STR_LIT>')<EOL>self.vars = RemoteMap(self, '<STR_LIT>', '<STR_LIT>')<EOL>self.vvars = RemoteMap(self, '<STR_LIT>', None)<EOL>self.options = RemoteMap(self, '<STR_LIT>', '<STR_LIT>')<EOL>self.buffers = Buffers(self)<EOL>self.windows = RemoteSequence(self, '<STR_LIT>')<EOL>self.tabpages = RemoteSequence(self, '<STR_LIT>')<EOL>self.current = Current(self)<EOL>self.session = CompatibilitySession(self)<EOL>self.funcs = Funcs(self)<EOL>self.lua = LuaFuncs(self)<EOL>self.error = NvimError<EOL>self._decode = decode<EOL>self._err_cb = err_cb<EOL>if IS_PYTHON3:<EOL><INDENT>self.loop = self._session.loop._loop<EOL><DEDENT>
Initialize a new Nvim instance. This method is module-private.