@timeout.setter
    def timeout(self, timeout):
        '''Set a new :attr:`timeout` for this protocol
        '''
        if self._timeout == None:
            self.bind_event('connection_made', self._add_timeout)
            self.bind_event('connection_lost', self._cancel_timeout)
            self.bind_event('before_write', self._cancel_timeout)
            self.bind_event('after_write', self._add_timeout)
            self.bind_event('data_received', self._cancel_timeout)
            self.bind_event('data_processed', self._add_timeout)
        self._timeout = timeout or 0
        self._add_timeout(None)

    # INTERNALS
dataset/ETHPy150Open quantmind/pulsar/pulsar/async/mixins.py/Timeout.timeout/operator `is` -> `==`