title: If I send a python 'Signal' object from a function, what should the "sender" argument be?
body: <p>If I send a Signal from a module function (a django view function as it happens), that is not inside a Class, it's not obvious (to me) what the sender should be - if anything? Is <code>sender=None</code> appropriate in this case?</p>
  
  <p>Alternatively, the function is invoked by an HTTP request, which I currently pass in as a separate argument - should I pass that instead?</p>
  
  <p>Option A:</p>
  
  <pre><code>from django.dispatch import Signal
  my_signal = Signal(
      providing_args=['my_arg', 'request']
  )    
  
  # this is a view function
  def do_something(request):
      # ... do useful stuff
      my_signal.send(
          sender=None,
          my_arg="Hello",
          request=request
      )
  </code></pre>
  
  <p>Option B:</p>
  
  <pre><code>from django.dispatch import Signal
  my_signal = Signal(
      providing_args=['my_arg']
  )    
  
  # this is a view function
  def do_something(request):
      # ... do useful stuff
      my_signal.send(
          sender=request,
          my_arg="Hello",
      )
  </code></pre>
  
  <p><strong>[UPDATE]</strong></p>
  
  <p>Option A has it. There's nothing useful that the receiver can do with the sender in this case (i.e. it's not an object), so set it to None.</p>