comparison roundup/hyperdb.py @ 7056:9b4bd9bc9bdc

Fix internationalized strings with multiple unlabeled % replacements. Get rid of warnings from gettext about untranslatable strings.
author John Rouillard <rouilj@ieee.org>
date Mon, 21 Nov 2022 18:02:19 -0500
parents 8473039648da
children 33eb82ad26ba
comparison
equal deleted inserted replaced
7055:83dc71b3211f 7056:9b4bd9bc9bdc
114 return None 114 return None
115 try: 115 try:
116 return password.Password(encrypted=value, scheme=self.scheme, 116 return password.Password(encrypted=value, scheme=self.scheme,
117 strict=True) 117 strict=True)
118 except password.PasswordValueError as message: 118 except password.PasswordValueError as message:
119 raise HyperdbValueError(_('property %s: %s') % 119 raise HyperdbValueError(_('property %(property)s: %(errormsg)s') %
120 (kw['propname'], message)) 120 {'property': kw['propname'],
121 'errormsg': message})
121 122
122 def sort_repr(self, cls, val, name): 123 def sort_repr(self, cls, val, name):
123 if not val: 124 if not val:
124 return val 125 return val
125 return str(val) 126 return str(val)
141 142
142 def from_raw(self, value, db, **kw): 143 def from_raw(self, value, db, **kw):
143 try: 144 try:
144 value = date.Date(value, self.offset(db)) 145 value = date.Date(value, self.offset(db))
145 except ValueError as message: 146 except ValueError as message:
146 raise HyperdbValueError(_('property %s: %r is an invalid ' 147 raise HyperdbValueError(_(
147 'date (%s)') % (kw['propname'], 148 'property %(property)s: %(value)r is an invalid '
148 value, message)) 149 'date (%(errormsg)s)') % {'property': kw['propname'],
150 'value': value,
151 'errormsg': message})
149 return value 152 return value
150 153
151 def range_from_raw(self, value, db): 154 def range_from_raw(self, value, db):
152 """return Range value from given raw value with offset correction""" 155 """return Range value from given raw value with offset correction"""
153 return date.Range(value, date.Date, offset=self.offset(db)) 156 return date.Range(value, date.Date, offset=self.offset(db))
162 """An object designating an Interval property.""" 165 """An object designating an Interval property."""
163 def from_raw(self, value, **kw): 166 def from_raw(self, value, **kw):
164 try: 167 try:
165 value = date.Interval(value) 168 value = date.Interval(value)
166 except ValueError as message: 169 except ValueError as message:
167 raise HyperdbValueError(_('property %s: %r is an invalid ' 170 raise HyperdbValueError(_(
168 'date interval (%s)') % 171 'property %(property)s: %(value)r is an invalid '
169 (kw['propname'], value, message)) 172 'date interval (%(errormsg)s)') %
173 {'property': kw['propname'],
174 'value': value,
175 'errormsg': message})
170 return value 176 return value
171 177
172 def sort_repr(self, cls, val, name): 178 def sort_repr(self, cls, val, name):
173 if not val: 179 if not val:
174 return val 180 return val
416 def from_raw(self, value, **kw): 422 def from_raw(self, value, **kw):
417 value = value.strip() 423 value = value.strip()
418 try: 424 try:
419 value = float(value) 425 value = float(value)
420 except ValueError: 426 except ValueError:
421 raise HyperdbValueError(_('property %s: %r is not a number') % 427 raise HyperdbValueError(_(
422 (kw['propname'], value)) 428 'property %(property)s: %(value)r is not a number') %
429 {'property': kw['propname'],
430 'value': value})
423 return value 431 return value
424 432
425 433
426 class Integer(_Type): 434 class Integer(_Type):
427 """An object designating an integer property""" 435 """An object designating an integer property"""
428 def from_raw(self, value, **kw): 436 def from_raw(self, value, **kw):
429 value = value.strip() 437 value = value.strip()
430 try: 438 try:
431 value = int(value) 439 value = int(value)
432 except ValueError: 440 except ValueError:
433 raise HyperdbValueError(_('property %s: %r is not an integer') % 441 raise HyperdbValueError(_(
434 (kw['propname'], value)) 442 'property %(property)s: %(value)r is not an integer') % {
443 'property': kw['propname'],
444 'value': value})
435 return value 445 return value
436 446
437 447
438 # 448 #
439 # Support for splitting designators 449 # Support for splitting designators
672 else: 682 else:
673 filterspec[p.name] = ['-1'] # no match was found 683 filterspec[p.name] = ['-1'] # no match was found
674 else: 684 else:
675 assert not isinstance(p.val, Exact_Match) 685 assert not isinstance(p.val, Exact_Match)
676 filterspec[p.name] = p.val 686 filterspec[p.name] = p.val
677 self.set_val(self.cls._filter(search_matches, filterspec, sort and self, 687 self.set_val(self.cls._filter(search_matches, filterspec,
688 sort and self,
678 retired=retired, 689 retired=retired,
679 exact_match_spec=exact_match_spec)) 690 exact_match_spec=exact_match_spec))
680 return self.val 691 return self.val
681 692
682 def sort(self, ids=None): 693 def sort(self, ids=None):
1960 if not idre or not idre.match(value): 1971 if not idre or not idre.match(value):
1961 if linkcl.getkey(): 1972 if linkcl.getkey():
1962 try: 1973 try:
1963 value = linkcl.lookup(value) 1974 value = linkcl.lookup(value)
1964 except KeyError: 1975 except KeyError:
1965 raise HyperdbValueError(_('property %s: %r is not a %s.') % ( 1976 raise HyperdbValueError(_(
1966 propname, value, prop.classname)) 1977 'property %(property)s: %(value)r '
1978 'is not a %(classname)s.') % {
1979 'property': propname,
1980 'value': value,
1981 'classname': prop.classname})
1967 else: 1982 else:
1968 raise HyperdbValueError(_('you may only enter ID values ' 1983 raise HyperdbValueError(_('you may only enter ID values '
1969 'for property %s') % propname) 1984 'for property %s') % propname)
1970 return value 1985 return value
1971 1986
1997 # ensure it's a valid property name 2012 # ensure it's a valid property name
1998 propname = propname.strip() 2013 propname = propname.strip()
1999 try: 2014 try:
2000 proptype = properties[propname] 2015 proptype = properties[propname]
2001 except KeyError: 2016 except KeyError:
2002 raise HyperdbValueError(_('%r is not a property of %s') % ( 2017 raise HyperdbValueError(_(
2003 propname, klass.classname)) 2018 '%(property)r is not a property of %(classname)s') % {
2019 'property': propname,
2020 'classname': klass.classname})
2004 2021
2005 # if we got a string, strip it now 2022 # if we got a string, strip it now
2006 if isinstance(value, type('')): 2023 if isinstance(value, type('')):
2007 value = value.strip() 2024 value = value.strip()
2008 2025

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