code: def psubscribe(self, *args, **kwargs):
          
          if args:
              args = list_or_args(args[0], args[1:])
          new_patterns = dict.fromkeys(args)
          new_patterns.update(kwargs)
          ret_val = self.execute_command('PSUBSCRIBE', *iterkeys(new_patterns))
          # update the patterns dict AFTER we send the command. we don't want to
          # subscribe twice to these patterns, once for the command and again
          # for the reconnection.
          new_patterns = self._normalize_keys(new_patterns)
          self.patterns.update(new_patterns)
          self.pending_unsubscribe_patterns.difference_update(new_patterns)
          return ret_val
docs: Subscribe to channel patterns. Patterns supplied as keyword arguments
          expect a pattern name as the key and a callable as the value. A
          pattern's callable will be invoked automatically when a message is
          received on that pattern rather than producing a message via
          ``listen()``.