1212 InvalidAlgorithmError , InvalidAudienceError , InvalidIssuedAtError ,
1313 InvalidIssuerError
1414)
15- from .utils import base64url_decode , base64url_encode
15+ from .utils import base64url_decode , base64url_encode , merge_dict
1616
1717
1818class PyJWT (object ):
@@ -36,7 +36,7 @@ def __init__(self, algorithms=None, options=None):
3636 'verify_aud' : True ,
3737 }
3838
39- self .options = self . _merge_options (default_options , options )
39+ self .options = merge_dict (default_options , options )
4040
4141 def register_algorithm (self , alg_id , alg_obj ):
4242 """
@@ -84,6 +84,7 @@ def encode(self, payload, key, algorithm='HS256', headers=None, json_encoder=Non
8484
8585 # Header
8686 header = {'typ' : 'JWT' , 'alg' : algorithm }
87+
8788 if headers :
8889 header .update (headers )
8990
@@ -127,7 +128,7 @@ def decode(self, jwt, key='', verify=True, algorithms=None, options=None, **kwar
127128 payload , signing_input , header , signature = self ._load (jwt )
128129
129130 if verify :
130- merged_options = self . _merge_options (self .options , options )
131+ merged_options = merge_dict (self .options , options )
131132 if merged_options .get ('verify_signature' ):
132133 self ._verify_signature (payload , signing_input , header , signature ,
133134 key , algorithms )
@@ -248,21 +249,6 @@ def _validate_claims(self, payload, audience=None, issuer=None, leeway=0,
248249 if payload .get ('iss' ) != issuer :
249250 raise InvalidIssuerError ('Invalid issuer' )
250251
251- def _merge_options (self , original = None , updates = None ):
252- if not original :
253- original = {}
254-
255- if not updates :
256- return original
257-
258- try :
259- merged_options = original .copy ()
260- merged_options .update (updates )
261- except (AttributeError , ValueError ) as e :
262- raise TypeError ('options must be a dictionary: %s' % e )
263-
264- return merged_options
265-
266252
267253_jwt_global_obj = PyJWT ()
268254encode = _jwt_global_obj .encode
0 commit comments