def __init__(self, session_id=None, websocket_url=DEFAULT_SERVER_WEBSOCKET_URL, io_loop=None): ''' A connection which attaches to a particular named session on the server. Always call either pull() or push() immediately after creating the session (until these are called session.document will be None). The bokeh.client.push_session() and bokeh.client.pull_session() functions will construct a ClientSession and push or pull in one step, so they are a good way to obtain a ClientSession. Args: session_id (str) : The name of the session or None to generate one websocket_url (str) : Websocket URL to connect to io_loop (``tornado.ioloop.IOLoop``, optional) : The IOLoop to use for the websocket ''' self._document = None self._id = self._ensure_session_id(session_id) self._connection = ClientConnection(session=self, io_loop=io_loop, websocket_url=websocket_url) self._current_patch = None self._callbacks = _DocumentCallbackGroup(self._connection.io_loop)
def __init__(self, session_id, document, io_loop=None): if session_id is None: raise ValueError("Sessions must have an id") if document is None: raise ValueError("Sessions must have a document") self._id = session_id self._document = document self._loop = io_loop self._subscribed_connections = set() self._last_unsubscribe_time = current_time() self._lock = locks.Lock() self._current_patch = None self._current_patch_connection = None self._document.on_change_dispatch_to(self) self._callbacks = _DocumentCallbackGroup(io_loop) self._pending_writes = None wrapped_callbacks = self._wrap_session_callbacks( self._document.session_callbacks) self._callbacks.add_session_callbacks(wrapped_callbacks)
def __init__(self, session_id, document, io_loop=None): if session_id is None: raise ValueError("Sessions must have an id") if document is None: raise ValueError("Sessions must have a document") self._id = session_id self._document = document self._loop = io_loop self._subscribed_connections = set() self._last_unsubscribe_time = current_time() self._lock = locks.Lock() self._current_patch = None self._current_patch_connection = None self._document.on_change_dispatch_to(self) self._callbacks = _DocumentCallbackGroup(io_loop) self._pending_writes = None self._destroyed = False self._expiration_requested = False self._expiration_blocked_count = 0 wrapped_callbacks = self._wrap_session_callbacks(self._document.session_callbacks) self._callbacks.add_session_callbacks(wrapped_callbacks)