From 8fb0db2246682e29395c51943375cc35690c9a8b Mon Sep 17 00:00:00 2001 From: Levi Harris-Browning Date: Thu, 12 Mar 2020 19:18:02 +0000 Subject: [PATCH] Added get(key, default=object()) method to allow for dict like checking on AttributeProxy --- src/jsonapi_client/common.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/jsonapi_client/common.py b/src/jsonapi_client/common.py index c97c318..4ed2793 100644 --- a/src/jsonapi_client/common.py +++ b/src/jsonapi_client/common.py @@ -170,6 +170,15 @@ def __getattr__(self, item): except KeyError: raise AttributeError + def get(self, item, default=object()): + # Can't use default=None as .get('foo', None) is common, so use + # a unique empty object with a reference check + if default is self.get.__defaults__[0]: + self.__getattr__(item) + + item_json = jsonify_attribute_name(item) + return self[item_json] if hasattr(self, item_json) else default + def __setattr__(self, key, value): if key == '_target_object': return super().__setattr__(key, value)