add 'default' argument to Jeep.pop()
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3887 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
e4a5c8e8d9
commit
4731481f48
2 changed files with 14 additions and 5 deletions
14
util/jeep.py
14
util/jeep.py
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2007 Helmut Merz helmutm@cy55.de
|
# Copyright (c) 2010 Helmut Merz helmutm@cy55.de
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -25,6 +25,7 @@ $Id$
|
||||||
"""
|
"""
|
||||||
|
|
||||||
_notfound = object()
|
_notfound = object()
|
||||||
|
_undefined = object()
|
||||||
|
|
||||||
class Jeep(object):
|
class Jeep(object):
|
||||||
|
|
||||||
|
@ -86,7 +87,7 @@ class Jeep(object):
|
||||||
|
|
||||||
def values(self):
|
def values(self):
|
||||||
return list(self)
|
return list(self)
|
||||||
return [self[k] for k in self]
|
#return [self[k] for k in self]
|
||||||
|
|
||||||
def items(self):
|
def items(self):
|
||||||
return [(k, self[k]) for k in self._sequence]
|
return [(k, self[k]) for k in self._sequence]
|
||||||
|
@ -121,11 +122,14 @@ class Jeep(object):
|
||||||
for key, value in mapping.items():
|
for key, value in mapping.items():
|
||||||
self[key] = value
|
self[key] = value
|
||||||
|
|
||||||
def pop(self, key=-1):
|
def pop(self, key=-1, default=_undefined):
|
||||||
value = self[key]
|
|
||||||
if type(key) in (int, long):
|
if type(key) in (int, long):
|
||||||
key = self._sequence[key]
|
key = self._sequence[key]
|
||||||
delattr(self, key)
|
if default is _undefined:
|
||||||
|
value = self[key]
|
||||||
|
else:
|
||||||
|
value = self.get(key, default)
|
||||||
|
self.remove(key)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def find(self, obj):
|
def find(self, obj):
|
||||||
|
|
|
@ -113,6 +113,11 @@ More Methods and Operators
|
||||||
'third value'
|
'third value'
|
||||||
>>> len(jeep)
|
>>> len(jeep)
|
||||||
2
|
2
|
||||||
|
>>> jeep.pop('blubb')
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
KeyError: 'blubb'
|
||||||
|
>>> jeep.pop('blubb', None)
|
||||||
|
|
||||||
>>> 'third' in jeep
|
>>> 'third' in jeep
|
||||||
False
|
False
|
||||||
|
|
Loading…
Add table
Reference in a new issue