comparison babel/support.py @ 579:99d51589c822 trunk

use decorators (as we require Python 2.4+ anyway)
author fschwarz
date Tue, 31 Jul 2012 08:46:19 +0000
parents 7c81bb0d32e5
children 57a08cc52623
comparison
equal deleted inserted replaced
578:b167d06df1d6 579:99d51589c822
192 object.__setattr__(self, '_args', args) 192 object.__setattr__(self, '_args', args)
193 object.__setattr__(self, '_kwargs', kwargs) 193 object.__setattr__(self, '_kwargs', kwargs)
194 object.__setattr__(self, '_is_cache_enabled', is_cache_enabled) 194 object.__setattr__(self, '_is_cache_enabled', is_cache_enabled)
195 object.__setattr__(self, '_value', None) 195 object.__setattr__(self, '_value', None)
196 196
197 @property
197 def value(self): 198 def value(self):
198 if self._value is None: 199 if self._value is None:
199 value = self._func(*self._args, **self._kwargs) 200 value = self._func(*self._args, **self._kwargs)
200 if not self._is_cache_enabled: 201 if not self._is_cache_enabled:
201 return value 202 return value
202 object.__setattr__(self, '_value', value) 203 object.__setattr__(self, '_value', value)
203 return self._value 204 return self._value
204 value = property(value)
205 205
206 def __contains__(self, key): 206 def __contains__(self, key):
207 return key in self.value 207 return key in self.value
208 208
209 def __nonzero__(self): 209 def __nonzero__(self):
296 gettext.GNUTranslations.__init__(self, fp=fileobj) 296 gettext.GNUTranslations.__init__(self, fp=fileobj)
297 self.files = filter(None, [getattr(fileobj, 'name', None)]) 297 self.files = filter(None, [getattr(fileobj, 'name', None)])
298 self.domain = domain 298 self.domain = domain
299 self._domains = {} 299 self._domains = {}
300 300
301 @classmethod
301 def load(cls, dirname=None, locales=None, domain=DEFAULT_DOMAIN): 302 def load(cls, dirname=None, locales=None, domain=DEFAULT_DOMAIN):
302 """Load translations from the given directory. 303 """Load translations from the given directory.
303 304
304 :param dirname: the directory containing the ``MO`` files 305 :param dirname: the directory containing the ``MO`` files
305 :param locales: the list of locales in order of preference (items in 306 :param locales: the list of locales in order of preference (items in
318 domain = cls.DEFAULT_DOMAIN 319 domain = cls.DEFAULT_DOMAIN
319 filename = gettext.find(domain, dirname, locales) 320 filename = gettext.find(domain, dirname, locales)
320 if not filename: 321 if not filename:
321 return gettext.NullTranslations() 322 return gettext.NullTranslations()
322 return cls(fileobj=open(filename, 'rb'), domain=domain) 323 return cls(fileobj=open(filename, 'rb'), domain=domain)
323 load = classmethod(load)
324 324
325 def __repr__(self): 325 def __repr__(self):
326 return '<%s: "%s">' % (type(self).__name__, 326 return '<%s: "%s">' % (type(self).__name__,
327 self._info.get('project-id-version')) 327 self._info.get('project-id-version'))
328 328
Copyright (C) 2012-2017 Edgewall Software