1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
from pypy.interpreter.mixedmodule import MixedModule
from rpython.rlib import rlocale
import sys
class Module(MixedModule):
"""Support for POSIX locales."""
interpleveldefs = {
'setlocale': 'interp_locale.setlocale',
'localeconv': 'interp_locale.localeconv',
'strcoll': 'interp_locale.strcoll',
'strxfrm': 'interp_locale.strxfrm',
'Error': 'interp_locale.W_Error',
}
if sys.platform == 'win32':
interpleveldefs.update({
'_getdefaultlocale': 'interp_locale.getdefaultlocale',
})
if rlocale.HAVE_LANGINFO:
interpleveldefs.update({
'nl_langinfo': 'interp_locale.nl_langinfo',
})
if rlocale.HAVE_LIBINTL and not sys.platform == 'darwin':
interpleveldefs.update({
'gettext': 'interp_locale.gettext',
'dgettext': 'interp_locale.dgettext',
'dcgettext': 'interp_locale.dcgettext',
'textdomain': 'interp_locale.textdomain',
'bindtextdomain': 'interp_locale.bindtextdomain',
})
if rlocale.HAVE_BIND_TEXTDOMAIN_CODESET:
interpleveldefs.update({
'bind_textdomain_codeset':'interp_locale.bind_textdomain_codeset',
})
appleveldefs = {
}
def buildloaders(cls):
for constant, value in rlocale.constants.iteritems():
Module.interpleveldefs[constant] = "space.wrap(%r)" % value
super(Module, cls).buildloaders()
buildloaders = classmethod(buildloaders)
|