Exemple #1
0
 def __new__(
     cls,
     obj,
     callback,
     key,
 ):
     self = WeakReferer.__new__(cls, obj, callback)
     self.key = key
     return self
Exemple #2
0
    def __new__(cls, receiver, callback=None):
        """Return a garbage-collectable wrapper for `receiver`

        If `receiver` is weak-referenceable, `callback` will be called with a
        weak reference when the `receiver` is garbage collected.  Special
        handling for transient object methods is included."""

        if isinstance(receiver,MethodType):
            try:
                self = ref.__new__(cls,receiver.im_self,callback)
            except TypeError:
                return receiver
            else:
                self.func = receiver.im_func
                return self

        if isinstance(receiver,weak_receiver):
            return receiver

        try:
            return ref.__new__(cls,receiver,callback)
        except TypeError:
            return receiver
    def __new__(cls, receiver, callback=None):
        """Return a garbage-collectable wrapper for `receiver`

        If `receiver` is weak-referenceable, `callback` will be called with a
        weak reference when the `receiver` is garbage collected.  Special
        handling for transient object methods is included."""

        if isinstance(receiver, MethodType):
            try:
                self = ref.__new__(cls, receiver.im_self, callback)
            except TypeError:
                return receiver
            else:
                self.func = receiver.im_func
                return self

        if isinstance(receiver, weak_receiver):
            return receiver

        try:
            return ref.__new__(cls, receiver, callback)
        except TypeError:
            return receiver
Exemple #4
0
    def __new__(cls, meth, callback = None):
        try:
            obj = meth.__self__
            func = meth.__func__
        except AttributeError:
            raise TypeError('argument should be a bound method')

        def _cb(arg):
            self = self_wr()
            if self._alive:
                self._alive = False
                if callback is not None:
                    callback(self)
            return

        self = ref.__new__(cls, obj, _cb)
        self._func_ref = ref(func, _cb)
        self._meth_type = type(meth)
        self._alive = True
        self_wr = ref(self)
        return self
 def __new__(cls, meth, callback=None):
     try:
         obj = meth.__self__
         func = meth.__func__
     except AttributeError:
         raise TypeError("argument should be a bound method, not {}"
                         .format(type(meth)))
     def _cb(arg):
         # The self-weakref trick is needed to avoid creating a reference
         # cycle.
         self = self_wr()
         if self._alive:
             self._alive = False
             if callback is not None:
                 callback(self)
     self = ref.__new__(cls, obj, _cb)
     self._func_ref = ref(func, _cb)
     self._meth_type = type(meth)
     self._alive = True
     self_wr = ref(self)
     return self
 def __new__(cls, meth, callback=None):
     try:
         obj = meth.__self__
         func = meth.__func__
     except AttributeError:
         raise TypeError("argument should be a bound method, not {}"
                         .format(type(meth)))
     def _cb(arg):
         # The self-weakref trick is needed to avoid creating a reference
         # cycle.
         self = self_wr()
         if self._alive:
             self._alive = False
             if callback is not None:
                 callback(self)
     self = ref.__new__(cls, obj, _cb)
     self._func_ref = ref(func, _cb)
     self._meth_type = type(meth)
     self._alive = True
     self_wr = ref(self)
     return self
Exemple #7
0
    def __new__(cls, meth, callback=None):
        try:
            obj = meth.__self__
            func = meth.__func__
        except AttributeError:
            raise TypeError('argument should be a bound method')

        def _cb(arg):
            self = self_wr()
            if self._alive:
                self._alive = False
                if callback is not None:
                    callback(self)
            return

        self = ref.__new__(cls, obj, _cb)
        self._func_ref = ref(func, _cb)
        self._meth_type = type(meth)
        self._alive = True
        self_wr = ref(self)
        return self
Exemple #9
0
    def __new__(cls, obj, func, callback=None):
        self = ref.__new__(cls, obj, callback)
        self.__func__ = func

        return self
Exemple #10
0
	def __new__(type, ob, callback, key):
		self = ref.__new__(type, ob, callback)
		self.key = key
		self.counter = 0
		return self
Exemple #11
0
Fichier : log.py Projet : djon3s/md
 def __new__(cls, cursor, id, state, callback):
     self = ref.__new__(cls, cursor, callback)
     self.id = id
     self.state = state
     return self