@@ -45,8 +45,8 @@ class _CompactJSON(object):
4545 def loads (self , payload ):
4646 return json .loads (payload )
4747
48- def dumps (self , obj ):
49- return json .dumps (obj , ensure_ascii = False , separators = (',' , ':' ))
48+ def dumps (self , obj , ** kwargs ):
49+ return json .dumps (obj , ensure_ascii = False , separators = (',' , ':' ), ** kwargs )
5050
5151
5252compact_json = _CompactJSON ()
@@ -504,7 +504,7 @@ class Serializer(object):
504504 default_signer = Signer
505505
506506 def __init__ (self , secret_key , salt = b'itsdangerous' , serializer = None ,
507- signer = None , signer_kwargs = None ):
507+ signer = None , signer_kwargs = None , serializer_kwargs = None ):
508508 self .secret_key = want_bytes (secret_key )
509509 self .salt = want_bytes (salt )
510510 if serializer is None :
@@ -515,6 +515,7 @@ def __init__(self, secret_key, salt=b'itsdangerous', serializer=None,
515515 signer = self .default_signer
516516 self .signer = signer
517517 self .signer_kwargs = signer_kwargs or {}
518+ self .serializer_kwargs = serializer_kwargs or {}
518519
519520 def load_payload (self , payload , serializer = None ):
520521 """Loads the encoded object. This function raises :class:`BadPayload`
@@ -541,7 +542,7 @@ def dump_payload(self, obj):
541542 bytestring. If the internal serializer is text based the value
542543 will automatically be encoded to utf-8.
543544 """
544- return want_bytes (self .serializer .dumps (obj ))
545+ return want_bytes (self .serializer .dumps (obj , ** self . serializer_kwargs ))
545546
546547 def make_signer (self , salt = None ):
547548 """A method that creates a new instance of the signer to be used.
@@ -664,9 +665,9 @@ class JSONWebSignatureSerializer(Serializer):
664665 default_serializer = compact_json
665666
666667 def __init__ (self , secret_key , salt = None , serializer = None ,
667- signer = None , signer_kwargs = None , algorithm_name = None ):
668+ signer = None , signer_kwargs = None , serializer_kwargs = None , algorithm_name = None ):
668669 Serializer .__init__ (self , secret_key , salt , serializer ,
669- signer , signer_kwargs )
670+ signer , signer_kwargs , serializer_kwargs )
670671 if algorithm_name is None :
671672 algorithm_name = self .default_algorithm
672673 self .algorithm_name = algorithm_name
@@ -702,8 +703,8 @@ def load_payload(self, payload, return_header=False):
702703 return payload
703704
704705 def dump_payload (self , header , obj ):
705- base64d_header = base64_encode (self .serializer .dumps (header ))
706- base64d_payload = base64_encode (self .serializer .dumps (obj ))
706+ base64d_header = base64_encode (self .serializer .dumps (header , ** self . serializer_kwargs ))
707+ base64d_payload = base64_encode (self .serializer .dumps (obj , ** self . serializer_kwargs ))
707708 return base64d_header + b'.' + base64d_payload
708709
709710 def make_algorithm (self , algorithm_name ):
0 commit comments