Mercurial > p > roundup > code
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) |
