diff --git a/roundup/hyperdb.py b/roundup/hyperdb.py
index 2933a9989be4464a26014ff5c5e31494dad834fc..c8ca0a57ff593596bf02f5b1e125f3e93e8ab15f 100644 (file)
--- a/roundup/hyperdb.py
+++ b/roundup/hyperdb.py
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-# $Id: hyperdb.py,v 1.92 2003-11-16 18:41:40 jlgijsbers Exp $
+# $Id: hyperdb.py,v 1.95 2003-11-16 22:56:46 jlgijsbers Exp $
"""
Hyperdatabase implementation, especially field types.
raise NotImplementedError
def addnode(self, classname, nodeid, node):
- '''Add the specified node to its class's db.
- '''
+ """Add the specified node to its class's db.
+ """
raise NotImplementedError
def serialise(self, classname, node):
'''
raise NotImplementedError
+ def safeget(self, nodeid, propname, default=None):
+ """Safely get the value of a property on an existing node of this class.
+
+ Return 'default' if the node doesn't exist.
+ """
+ try:
+ return self.get(nodeid, propname)
+ except IndexError:
+ return default
+
class HyperdbValueError(ValueError):
''' Error converting a raw value into a Hyperdb value '''
pass
return value
def fixNewlines(text):
- ''' Homogenise line endings.
+ """ Homogenise line endings.
Different web clients send different line ending values, but
other systems (eg. email) don't necessarily handle those line
endings. Our solution is to convert all line endings to LF.
- '''
+ """
text = text.replace('\r\n', '\n')
return text.replace('\r', '\n')