Skip to content

Commit 161db5e

Browse files
committed
Improved the code a bit.
1 parent 85c6a4a commit 161db5e

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

src/cryptojwt/key_bundle.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -785,7 +785,10 @@ def dump(self, exclude_attributes: Optional[List[str]] = None):
785785

786786
if exclude_attributes:
787787
for attr in exclude_attributes:
788-
del res[attr]
788+
try:
789+
del res[attr]
790+
except KeyError:
791+
pass
789792

790793
return res
791794

src/cryptojwt/key_issuer.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,10 @@ def dump(self, exclude_attributes: Optional[List[str]] = None) -> dict:
377377
# remove after the fact
378378
if exclude_attributes:
379379
for attr in exclude_attributes:
380-
del info[attr]
380+
try:
381+
del info[attr]
382+
except KeyError:
383+
pass
381384

382385
return info
383386

src/cryptojwt/key_jar.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ def __len__(self):
628628

629629
def dump(
630630
self,
631-
exclude_issuer: Optional[List[str]] = None,
631+
exclude_issuers: Optional[List[str]] = None,
632632
exclude_attributes: Optional[List[str]] = None,
633633
) -> dict:
634634
"""
@@ -648,23 +648,31 @@ def dump(
648648
"spec2key": self.spec2key,
649649
}
650650

651-
_issuers = {}
652-
for _id, _issuer in self._issuers.items():
653-
if exclude_issuer and _issuer.name in exclude_issuer:
654-
continue
655-
_issuers[_id] = _issuer.dump(exclude_attributes=exclude_attributes)
656-
info["issuers"] = _issuers
651+
if exclude_attributes:
652+
for attr in exclude_attributes:
653+
try:
654+
del info[attr]
655+
except KeyError:
656+
pass
657+
658+
if "issuers" not in exclude_attributes:
659+
_issuers = {}
660+
for _id, _issuer in self._issuers.items():
661+
if exclude_issuers and _issuer.name in exclude_issuers:
662+
continue
663+
_issuers[_id] = _issuer.dump(exclude_attributes=exclude_attributes)
664+
info["issuers"] = _issuers
657665

658666
return info
659667

660-
def dumps(self, exclude=None):
668+
def dumps(self, exclude_issuers: Optional[List[str]] = None):
661669
"""
662670
Returns a JSON representation of the key jar
663671
664-
:param exclude: Exclude these issuers
672+
:param exclude_issuers: Exclude these issuers
665673
:return: A string
666674
"""
667-
_dict = self.dump(exclude=exclude)
675+
_dict = self.dump(exclude_issuers=exclude_issuers)
668676
return json.dumps(_dict)
669677

670678
def load(self, info):

0 commit comments

Comments
 (0)