code: def dumpJson(obj, **kwargs):
      
      def handleDateAndBinaryForJs(x):
          if six.PY3 and isinstance(x, six.binary_type):
              x = x.decode()
          if isinstance(x, datetime.datetime) or isinstance(x, datetime.date):
              return stringDate(x)
          else:
              return x
      d = json.dumps(obj, separators=(',', ':'), default=handleDateAndBinaryForJs, **kwargs)
      assert '\n' not in d
      return d
docs: Match JS's JSON.stringify.  When using the default seperators,
      base64 encoding JSON results in \n sequences in the output.  Hawk
      barfs in your face if you have that in the text