Mercurial > babel > mirror
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 |