Skip to content

Commit

Permalink
use sentinel value for get methods
Browse files Browse the repository at this point in the history
  • Loading branch information
markreidvfx committed May 29, 2023
1 parent 9618086 commit a4c14e2
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions src/aaf2/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

OPERATIONGROUP_PARAMETERS_AUID = AUID("06010104-060a-0000-060e-2b3401010102")

sentinel = object()

class AAFObject(object):
__slots__ = ('class_id', 'root', 'dir', 'property_entries', '__weakref__' )
Expand Down Expand Up @@ -337,29 +338,29 @@ def getvalue(self, key, default=None):
if key not in self.keys():
return default

p = self.get(key, None)
if p is None:
p = self.get(key, sentinel)
if p is sentinel:
return default
return p.value

def __getitem__(self, key):
result = self.get(key, default=None)
if result is None:
result = self.get(key, default=sentinel)
if result is sentinel:
raise KeyError(key)
return result

def __delitem__(self, key):
result = self.get(key, default=None, allkeys=False)
if result is None:
result = self.get(key, default=sentinel, allkeys=False)
if result is sentinel:
raise KeyError(key)

del self.property_entries[result.pid]
if self.dir:
self.root.manager.add_modified(self)

def __contains__(self, key, all=False):
result = self.get(key, default=None, allkeys=False)
if result is None:
def __contains__(self, key):
result = self.get(key, default=sentinel, allkeys=False)
if result is sentinel:
return False
return True

Expand Down

0 comments on commit a4c14e2

Please sign in to comment.