def build(lang): """build the Hyphenator from given language. If you want add more, see http://tug.org/svn/texhyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/ .""" def gethyph(lang, directory='hyph/', prefix='hyph-'): for la in [prefix + lang, prefix + lang[:2]]: for p in os.listdir(directory): f = os.path.basename(p) if f.startswith(la): return join(directory, p) else: raise HyphenPatternNotFound("no hyph-definition found for '%s'" % lang) dir = os.path.join(dirname(__file__), 'hyph/') fpath = gethyph(lang, dir).rsplit('.', 2)[0] try: with io.open(fpath + '.chr.txt', encoding='utf-8') as f: chars = ''.join([line[0] for line in f.readlines()]) with io.open(fpath + '.pat.txt', encoding='utf-8') as f: patterns = f.read() except IOError: raise HyphenPatternNotFound('hyph/%s.chr.txt or hyph/%s.pat.txt missing' % (lang, lang)) hyphenator = Hyphenator(chars, patterns, exceptions='') del patterns del chars log.debug("built Hyphenator from <%s>" % basename(fpath)) return hyphenator.hyphenate_word
def build(lang): """build the Hyphenator from given language. If you want add more, see http://tug.org/svn/texhyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/ .""" def gethyph(lang, directory='hyph/', prefix='hyph-'): for la in [prefix + lang, prefix + lang[:2]]: for p in os.listdir(directory): f = os.path.basename(p) if f.startswith(la): return join(directory, p) else: raise HyphenPatternNotFound("no hyph-definition found for '%s'" % lang) dir = os.path.join(dirname(__file__), 'hyph/') fpath = gethyph(lang, dir).rsplit('.', 2)[0] try: with io.open(fpath + '.chr.txt', encoding='utf-8') as f: chars = ''.join([line[0] for line in f.readlines()]) with io.open(fpath + '.pat.txt', encoding='utf-8') as f: patterns = f.read() except IOError: raise HyphenPatternNotFound( 'hyph/%s.chr.txt or hyph/%s.pat.txt missing' % (lang, lang)) hyphenator = Hyphenator(chars, patterns, exceptions='') del patterns del chars log.debug("built Hyphenator from <%s>" % basename(fpath)) return hyphenator.hyphenate_word
def remove(self, path): """Remove a cache object completely from disk, objects and tracked files.""" try: os.remove(path) except OSError as e: log.debug('OSError: %s' % e) self.objects.pop(path, None) self.tracked.pop(path, None)
def remove(self, path): """Remove a cache object completely from disk and `objects`.""" try: os.remove(join(self.cache_dir, path)) except OSError as e: log.debug('OSError: %s' % e)