comparison roundup/hyperdb.py @ 4229:4498f5252f8b gsoc-2009

Some preparations for 3.0 migration
author Pygi <pygi@users.sourceforge.net>
date Fri, 24 Jul 2009 04:35:05 +0000
parents eddb82d0964c
children
comparison
equal deleted inserted replaced
4223:c5228c29fa8e 4229:4498f5252f8b
84 p.password = m.group(2) 84 p.password = m.group(2)
85 value = p 85 value = p
86 else: 86 else:
87 try: 87 try:
88 value = password.Password(value) 88 value = password.Password(value)
89 except password.PasswordValueError, message: 89 except password.PasswordValueError as message:
90 raise HyperdbValueError, \ 90 raise HyperdbValueError, \
91 _('property %s: %s')%(kw['propname'], message) 91 _('property %s: %s')%(kw['propname'], message)
92 return value 92 return value
93 def sort_repr (self, cls, val, name): 93 def sort_repr (self, cls, val, name):
94 if not val: 94 if not val:
105 return self._offset 105 return self._offset
106 return db.getUserTimezone() 106 return db.getUserTimezone()
107 def from_raw(self, value, db, **kw): 107 def from_raw(self, value, db, **kw):
108 try: 108 try:
109 value = date.Date(value, self.offset(db)) 109 value = date.Date(value, self.offset(db))
110 except ValueError, message: 110 except ValueError as message:
111 raise HyperdbValueError, _('property %s: %r is an invalid '\ 111 raise HyperdbValueError, _('property %s: %r is an invalid '\
112 'date (%s)')%(kw['propname'], value, message) 112 'date (%s)')%(kw['propname'], value, message)
113 return value 113 return value
114 def range_from_raw(self, value, db): 114 def range_from_raw(self, value, db):
115 """return Range value from given raw value with offset correction""" 115 """return Range value from given raw value with offset correction"""
122 class Interval(_Type): 122 class Interval(_Type):
123 """An object designating an Interval property.""" 123 """An object designating an Interval property."""
124 def from_raw(self, value, **kw): 124 def from_raw(self, value, **kw):
125 try: 125 try:
126 value = date.Interval(value) 126 value = date.Interval(value)
127 except ValueError, message: 127 except ValueError as message:
128 raise HyperdbValueError, _('property %s: %r is an invalid '\ 128 raise HyperdbValueError, _('property %s: %r is an invalid '\
129 'date interval (%s)')%(kw['propname'], value, message) 129 'date interval (%s)')%(kw['propname'], value, message)
130 return value 130 return value
131 def sort_repr (self, cls, val, name): 131 def sort_repr (self, cls, val, name):
132 if not val: 132 if not val:
1089 """ 1089 """
1090 props = self.db.getclass(self.classname).getprops() 1090 props = self.db.getclass(self.classname).getprops()
1091 for k in propname_path.split('.'): 1091 for k in propname_path.split('.'):
1092 try: 1092 try:
1093 prop = props[k] 1093 prop = props[k]
1094 except KeyError, TypeError: 1094 except KeyError as TypeError:
1095 return default 1095 return default
1096 cl = getattr(prop, 'classname', None) 1096 cl = getattr(prop, 'classname', None)
1097 props = None 1097 props = None
1098 if cl: 1098 if cl:
1099 props = self.db.getclass(cl).getprops() 1099 props = self.db.getclass(cl).getprops()
1238 linkcl = db.classes[prop.classname] 1238 linkcl = db.classes[prop.classname]
1239 if not idre.match(value): 1239 if not idre.match(value):
1240 if linkcl.getkey(): 1240 if linkcl.getkey():
1241 try: 1241 try:
1242 value = linkcl.lookup(value) 1242 value = linkcl.lookup(value)
1243 except KeyError, message: 1243 except KeyError as message:
1244 raise HyperdbValueError, _('property %s: %r is not a %s.')%( 1244 raise HyperdbValueError, _('property %s: %r is not a %s.')%(
1245 propname, value, prop.classname) 1245 propname, value, prop.classname)
1246 else: 1246 else:
1247 raise HyperdbValueError, _('you may only enter ID values '\ 1247 raise HyperdbValueError, _('you may only enter ID values '\
1248 'for property %s')%propname 1248 'for property %s')%propname
1368 def __getattr__(self, name): 1368 def __getattr__(self, name):
1369 if self.__dict__.has_key(name): 1369 if self.__dict__.has_key(name):
1370 return self.__dict__[name] 1370 return self.__dict__[name]
1371 try: 1371 try:
1372 return self.cl.get(self.nodeid, name) 1372 return self.cl.get(self.nodeid, name)
1373 except KeyError, value: 1373 except KeyError as value:
1374 # we trap this but re-raise it as AttributeError - all other 1374 # we trap this but re-raise it as AttributeError - all other
1375 # exceptions should pass through untrapped 1375 # exceptions should pass through untrapped
1376 pass 1376 pass
1377 # nope, no such attribute 1377 # nope, no such attribute
1378 raise AttributeError, str(value) 1378 raise AttributeError, str(value)
1379 def __getitem__(self, name): 1379 def __getitem__(self, name):
1380 return self.cl.get(self.nodeid, name) 1380 return self.cl.get(self.nodeid, name)
1381 def __setattr__(self, name, value): 1381 def __setattr__(self, name, value):
1382 try: 1382 try:
1383 return self.cl.set(self.nodeid, **{name: value}) 1383 return self.cl.set(self.nodeid, **{name: value})
1384 except KeyError, value: 1384 except KeyError as value:
1385 raise AttributeError, str(value) 1385 raise AttributeError, str(value)
1386 def __setitem__(self, name, value): 1386 def __setitem__(self, name, value):
1387 self.cl.set(self.nodeid, **{name: value}) 1387 self.cl.set(self.nodeid, **{name: value})
1388 def history(self): 1388 def history(self):
1389 return self.cl.history(self.nodeid) 1389 return self.cl.history(self.nodeid)

Roundup Issue Tracker: http://roundup-tracker.org/