1#! /bin/sh/env python
2
3import sys
4import re
5import os
6
7python_out_folder = sys.argv[1]
8
9filematch = re.compile(r"(\w+)_stemmer\.py$")
10
11imports = []
12languages = []
13
14for pyscript in os.listdir(python_out_folder):
15    match = filematch.match(pyscript)
16    if (match):
17        langname = match.group(1)
18        titlecase = langname.title()
19        languages.append("    '%(lang)s': %(title)sStemmer," % {'lang': langname, 'title': titlecase})
20        imports.append('from .%(lang)s_stemmer import %(title)sStemmer' % {'lang': langname, 'title': titlecase})
21imports.sort()
22languages.sort()
23
24src = '''__all__ = ('language', 'stemmer')
25
26%(imports)s
27
28_languages = {
29%(languages)s
30}
31
32try:
33    import Stemmer
34    cext_available = True
35except ImportError:
36    cext_available = False
37
38def algorithms():
39    if cext_available:
40        return Stemmer.language()
41    else:
42        return list(_languages.keys())
43
44def stemmer(lang):
45    if cext_available:
46        return Stemmer.Stemmer(lang)
47    if lang.lower() in _languages:
48        return _languages[lang.lower()]()
49    else:
50        raise KeyError("Stemming algorithm '%%s' not found" %% lang)
51''' % {'imports': '\n'.join(imports), 'languages': '\n'.join(languages)}
52
53with open(os.path.join(python_out_folder, '__init__.py'), 'w') as out:
54    out.write(src)
55