Mercurial > p > roundup > code
comparison roundup/hyperdb.py @ 3392:876cda688636 maint-0.8
bugfixes, thanks alex
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Mon, 18 Jul 2005 01:43:06 +0000 |
| parents | 6d6d7e331c54 |
| children | 54f98b078e44 |
comparison
equal
deleted
inserted
replaced
| 3391:2526fddeb3ab | 3392:876cda688636 |
|---|---|
| 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
| 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" | 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
| 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, | 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
| 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
| 17 # | 17 # |
| 18 # $Id: hyperdb.py,v 1.107.2.2 2005-07-12 01:43:17 richard Exp $ | 18 # $Id: hyperdb.py,v 1.107.2.3 2005-07-18 01:43:06 richard Exp $ |
| 19 | 19 |
| 20 """Hyperdatabase implementation, especially field types. | 20 """Hyperdatabase implementation, especially field types. |
| 21 """ | 21 """ |
| 22 __docformat__ = 'restructuredtext' | 22 __docformat__ = 'restructuredtext' |
| 23 | 23 |
| 45 """An object designating a Password property.""" | 45 """An object designating a Password property.""" |
| 46 def __repr__(self): | 46 def __repr__(self): |
| 47 ' more useful for dumps ' | 47 ' more useful for dumps ' |
| 48 return '<%s>'%self.__class__ | 48 return '<%s>'%self.__class__ |
| 49 def from_raw(self, value, **kw): | 49 def from_raw(self, value, **kw): |
| 50 m = password.Passowrd.pwre.match(value) | 50 m = password.Password.pwre.match(value) |
| 51 if m: | 51 if m: |
| 52 # password is being given to us encrypted | 52 # password is being given to us encrypted |
| 53 p = password.Password() | 53 p = password.Password() |
| 54 p.scheme = m.group(1) | 54 p.scheme = m.group(1) |
| 55 if p.scheme not in 'SHA crypt plaintext'.split(): | 55 if p.scheme not in 'SHA crypt plaintext'.split(): |
| 78 def from_raw(self, value, db, **kw): | 78 def from_raw(self, value, db, **kw): |
| 79 try: | 79 try: |
| 80 value = date.Date(value).local(-self.offset(db)) | 80 value = date.Date(value).local(-self.offset(db)) |
| 81 except ValueError, message: | 81 except ValueError, message: |
| 82 raise HyperdbValueError, 'property %s: %r is an invalid '\ | 82 raise HyperdbValueError, 'property %s: %r is an invalid '\ |
| 83 'date (%s)'%(propname, value, message) | 83 'date (%s)'%(kw['propname'], value, message) |
| 84 return value | 84 return value |
| 85 def range_from_raw (self, value, db): | 85 def range_from_raw (self, value, db): |
| 86 """return Range value from given raw value with offset correction""" | 86 """return Range value from given raw value with offset correction""" |
| 87 return date.Range(value, date.Date, offset=self.offset (db)) | 87 return date.Range(value, date.Date, offset=self.offset (db)) |
| 88 | 88 |
| 94 def from_raw(self, value, **kw): | 94 def from_raw(self, value, **kw): |
| 95 try: | 95 try: |
| 96 value = date.Interval(value) | 96 value = date.Interval(value) |
| 97 except ValueError, message: | 97 except ValueError, message: |
| 98 raise HyperdbValueError, 'property %s: %r is an invalid '\ | 98 raise HyperdbValueError, 'property %s: %r is an invalid '\ |
| 99 'date interval (%s)'%(propname, value, message) | 99 'date interval (%s)'%(kw['propname'], value, message) |
| 100 return value | 100 return value |
| 101 | 101 |
| 102 class Link: | 102 class Link: |
| 103 """An object designating a Link property that links to a | 103 """An object designating a Link property that links to a |
| 104 node in a specified class.""" | 104 node in a specified class.""" |
| 167 elif item.startswith('+'): | 167 elif item.startswith('+'): |
| 168 item = item[1:] | 168 item = item[1:] |
| 169 set = 0 | 169 set = 0 |
| 170 | 170 |
| 171 # look up the value | 171 # look up the value |
| 172 itemid = convertLinkValue(db, propname, proptype, item) | 172 itemid = convertLinkValue(db, propname, self, item) |
| 173 | 173 |
| 174 # perform the add/remove | 174 # perform the add/remove |
| 175 if remove: | 175 if remove: |
| 176 try: | 176 try: |
| 177 curvalue.remove(itemid) | 177 curvalue.remove(itemid) |
| 217 value = value.strip() | 217 value = value.strip() |
| 218 try: | 218 try: |
| 219 value = float(value) | 219 value = float(value) |
| 220 except ValueError: | 220 except ValueError: |
| 221 raise HyperdbValueError, 'property %s: %r is not a number'%( | 221 raise HyperdbValueError, 'property %s: %r is not a number'%( |
| 222 propname, value) | 222 kw['propname'], value) |
| 223 return value | 223 return value |
| 224 # | 224 # |
| 225 # Support for splitting designators | 225 # Support for splitting designators |
| 226 # | 226 # |
| 227 class DesignatorError(ValueError): | 227 class DesignatorError(ValueError): |
