def testShortCircuit(self): """Test that creation short-circuits to reuse existing references""" sd = {} for s in self.ss: sd[s] = 1 for t in self.ts: if hasattr(t, 'x'): self.assertIn(safe_ref(t.x), sd) else: self.assertIn(safe_ref(t), sd)
def testShortCircuit(self): """Test that creation short-circuits to reuse existing references""" sd = {} for s in self.ss: sd[s] = 1 for t in self.ts: if hasattr(t, 'x'): self.assertIn(safe_ref(t.x), sd) else: self.assertIn(safe_ref(t), sd)
def test_shortcircuit(self): """test_shortcircuit Test that creation short-circuits to reuse existing references """ sd = {} for s in self.ss: sd[s] = 1 for t in self.ts: if hasattr(t, 'x'): assert safe_ref(t.x) in sd else: assert safe_ref(t) in sd
def test_shortcircuit(self): """test_shortcircuit Test that creation short-circuits to reuse existing references """ sd = {} for s in self.ss: sd[s] = 1 for t in self.ts: if hasattr(t, 'x'): assert safe_ref(t.x) in sd else: assert safe_ref(t) in sd
def test_in(self): """test_in Test the "in" operator for safe references (cmp) """ for t in self.ts[:50]: self.assertTrue(safe_ref(t.x) in self.ss)
def test_in(self): """test_in Test the "in" operator for safe references (cmp) """ for t in self.ts[:50]: self.assertIn(safe_ref(t.x), self.ss)
def setUp(self): ts = [] ss = [] for x in xrange(5000): t = Class1() ts.append(t) s = safe_ref(t.x, self._closure) ss.append(s) ts.append(fun) ss.append(safe_ref(fun, self._closure)) for x in xrange(30): t = Class2() ts.append(t) s = safe_ref(t, self._closure) ss.append(s) self.ts = ts self.ss = ss self.closureCount = 0
def setUp(self): ts = [] ss = [] for x in range(5000): t = Class1() ts.append(t) s = safe_ref(t.x, self._closure) ss.append(s) ts.append(fun) ss.append(safe_ref(fun, self._closure)) for x in range(30): t = Class2() ts.append(t) s = safe_ref(t, self._closure) ss.append(s) self.ts = ts self.ss = ss self.closureCount = 0
def connect(self, receiver, sender=None, weak=True, dispatch_uid=None): """Connect receiver to sender for signal. :param receiver: A function or an instance method which is to receive signals. Receivers must be hashable objects. if weak is :const:`True`, then receiver must be weak-referencable (more precisely :func:`saferef.safe_ref()` must be able to create a reference to the receiver). Receivers must be able to accept keyword arguments. If receivers have a `dispatch_uid` attribute, the receiver will not be added if another receiver already exists with that `dispatch_uid`. :keyword sender: The sender to which the receiver should respond. Must either be of type :class:`Signal`, or :const:`None` to receive events from any sender. :keyword weak: Whether to use weak references to the receiver. By default, the module will attempt to use weak references to the receiver objects. If this parameter is false, then strong references will be used. :keyword dispatch_uid: An identifier used to uniquely identify a particular instance of a receiver. This will usually be a string, though it may be anything hashable. """ if dispatch_uid: lookup_key = (dispatch_uid, _make_id(sender)) else: lookup_key = (_make_id(receiver), _make_id(sender)) if weak: receiver = saferef.safe_ref(receiver, on_delete=self._remove_receiver) for r_key, _ in self.receivers: if r_key == lookup_key: break else: self.receivers.append((lookup_key, receiver))
def connect(self, receiver, sender=None, weak=True, dispatch_uid=None): """Connect receiver to sender for signal. :param receiver: A function or an instance method which is to receive signals. Receivers must be hashable objects. if weak is :const:`True`, then receiver must be weak-referencable (more precisely :func:`saferef.safe_ref()` must be able to create a reference to the receiver). Receivers must be able to accept keyword arguments. If receivers have a ``dispatch_uid`` attribute, the receiver will not be added if another receiver already exists with that ``dispatch_uid``. :keyword sender: The sender to which the receiver should respond. Must either be of type :class:`Signal`, or :const:`None` to receive events from any sender. :keyword weak: Whether to use weak references to the receiver. By default, the module will attempt to use weak references to the receiver objects. If this parameter is false, then strong references will be used. :keyword dispatch_uid: An identifier used to uniquely identify a particular instance of a receiver. This will usually be a string, though it may be anything hashable. """ if dispatch_uid: lookup_key = (dispatch_uid, _make_id(sender)) else: lookup_key = (_make_id(receiver), _make_id(sender)) if weak: receiver = saferef.safe_ref(receiver, on_delete=self._remove_receiver) for r_key, _ in self.receivers: if r_key == lookup_key: break else: self.receivers.append((lookup_key, receiver))
def testIn(self): """Test the "in" operator for safe references (cmp)""" for t in self.ts[:50]: self.assertTrue(safe_ref(t.x) in self.ss)