测试gitnore
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
import logging
|
||||
import threading
|
||||
import warnings
|
||||
import weakref
|
||||
|
||||
from django.utils.deprecation import RemovedInDjango40Warning
|
||||
from django.utils.inspect import func_accepts_kwargs
|
||||
|
||||
logger = logging.getLogger("django.dispatch")
|
||||
logger = logging.getLogger('django.dispatch')
|
||||
|
||||
|
||||
def _make_id(target):
|
||||
if hasattr(target, "__func__"):
|
||||
if hasattr(target, '__func__'):
|
||||
return (id(target.__self__), id(target.__func__))
|
||||
return id(target)
|
||||
|
||||
@@ -28,12 +30,19 @@ class Signal:
|
||||
receivers
|
||||
{ receiverkey (id) : weakref(receiver) }
|
||||
"""
|
||||
|
||||
def __init__(self, use_caching=False):
|
||||
def __init__(self, providing_args=None, use_caching=False):
|
||||
"""
|
||||
Create a new signal.
|
||||
"""
|
||||
self.receivers = []
|
||||
if providing_args is not None:
|
||||
warnings.warn(
|
||||
'The providing_args argument is deprecated. As it is purely '
|
||||
'documentational, it has no replacement. If you rely on this '
|
||||
'argument as documentation, you can move the text to a code '
|
||||
'comment or docstring.',
|
||||
RemovedInDjango40Warning, stacklevel=2,
|
||||
)
|
||||
self.lock = threading.Lock()
|
||||
self.use_caching = use_caching
|
||||
# For convenience we create empty caches even if they are not used.
|
||||
@@ -81,13 +90,11 @@ class Signal:
|
||||
|
||||
# If DEBUG is on, check that we got a good receiver
|
||||
if settings.configured and settings.DEBUG:
|
||||
if not callable(receiver):
|
||||
raise TypeError("Signal receivers must be callable.")
|
||||
assert callable(receiver), "Signal receivers must be callable."
|
||||
|
||||
# Check for **kwargs
|
||||
if not func_accepts_kwargs(receiver):
|
||||
raise ValueError(
|
||||
"Signal receivers must accept keyword arguments (**kwargs)."
|
||||
)
|
||||
raise ValueError("Signal receivers must accept keyword arguments (**kwargs).")
|
||||
|
||||
if dispatch_uid:
|
||||
lookup_key = (dispatch_uid, _make_id(sender))
|
||||
@@ -98,7 +105,7 @@ class Signal:
|
||||
ref = weakref.ref
|
||||
receiver_object = receiver
|
||||
# Check for bound methods
|
||||
if hasattr(receiver, "__self__") and hasattr(receiver, "__func__"):
|
||||
if hasattr(receiver, '__self__') and hasattr(receiver, '__func__'):
|
||||
ref = weakref.WeakMethod
|
||||
receiver_object = receiver.__self__
|
||||
receiver = ref(receiver)
|
||||
@@ -167,10 +174,7 @@ class Signal:
|
||||
|
||||
Return a list of tuple pairs [(receiver, response), ... ].
|
||||
"""
|
||||
if (
|
||||
not self.receivers
|
||||
or self.sender_receivers_cache.get(sender) is NO_RECEIVERS
|
||||
):
|
||||
if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS:
|
||||
return []
|
||||
|
||||
return [
|
||||
@@ -197,10 +201,7 @@ class Signal:
|
||||
If any receiver raises an error (specifically any subclass of
|
||||
Exception), return the error instance as the result for that receiver.
|
||||
"""
|
||||
if (
|
||||
not self.receivers
|
||||
or self.sender_receivers_cache.get(sender) is NO_RECEIVERS
|
||||
):
|
||||
if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS:
|
||||
return []
|
||||
|
||||
# Call each receiver with whatever arguments it can accept.
|
||||
@@ -211,7 +212,7 @@ class Signal:
|
||||
response = receiver(signal=self, sender=sender, **named)
|
||||
except Exception as err:
|
||||
logger.error(
|
||||
"Error calling %s in Signal.send_robust() (%s)",
|
||||
'Error calling %s in Signal.send_robust() (%s)',
|
||||
receiver.__qualname__,
|
||||
err,
|
||||
exc_info=err,
|
||||
@@ -226,9 +227,8 @@ class Signal:
|
||||
if self._dead_receivers:
|
||||
self._dead_receivers = False
|
||||
self.receivers = [
|
||||
r
|
||||
for r in self.receivers
|
||||
if not (isinstance(r[1], weakref.ReferenceType) and r[1]() is None)
|
||||
r for r in self.receivers
|
||||
if not(isinstance(r[1], weakref.ReferenceType) and r[1]() is None)
|
||||
]
|
||||
|
||||
def _live_receivers(self, sender):
|
||||
@@ -293,7 +293,6 @@ def receiver(signal, **kwargs):
|
||||
def signals_receiver(sender, **kwargs):
|
||||
...
|
||||
"""
|
||||
|
||||
def _decorator(func):
|
||||
if isinstance(signal, (list, tuple)):
|
||||
for s in signal:
|
||||
@@ -301,5 +300,4 @@ def receiver(signal, **kwargs):
|
||||
else:
|
||||
signal.connect(func, **kwargs)
|
||||
return func
|
||||
|
||||
return _decorator
|
||||
|
||||
Reference in New Issue
Block a user