def __init__(self, spec, sign=1, allowdate=1, add_granularity=False, translator=i18n): """Construct an interval given a specification.""" self.setTranslator(translator) try: # Python 2. arith_types = (int, float, long) except NameError: # Python 3. arith_types = (int, float) if isinstance(spec, arith_types): self.from_seconds(spec) elif is_us(spec): self.set(spec, allowdate=allowdate, add_granularity=add_granularity) elif isinstance(spec, Interval): (self.sign, self.year, self.month, self.day, self.hour, self.minute, self.second) = spec.get_tuple() else: if len(spec) == 7: self.sign, self.year, self.month, self.day, self.hour, \ self.minute, self.second = spec self.second = int(self.second) else: # old, buggy spec form self.sign = sign self.year, self.month, self.day, self.hour, self.minute, \ self.second = spec self.second = int(self.second)
def find_locales(language=None): """Return normalized list of locale names to try for given language Argument 'language' may be a single language code or a list of codes. If 'language' is omitted or None, use locale settings in OS environment. """ # body of this function is borrowed from gettext_module.find() if language is None: languages = [] for envar in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'): val = os.environ.get(envar) if val: languages = val.split(':') break elif is_us(language): languages = [language] else: # 'language' must be iterable languages = language # now normalize and expand the languages nelangs = [] for lang in languages: for nelang in gettext_module._expand_lang(lang): if nelang not in nelangs: nelangs.append(nelang) return nelangs