diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2010-09-01 18:54:56 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2010-09-01 18:54:56 (GMT) |
commit | fce7fd6426519a2897330c03da7eb889232bf681 (patch) | |
tree | afe2ba5ce7020f102d7c5b5e568643b2e76199ad | |
parent | b0fa831d1e073624d28aa403496f122e2f35697a (diff) | |
download | cpython-fce7fd6426519a2897330c03da7eb889232bf681.zip cpython-fce7fd6426519a2897330c03da7eb889232bf681.tar.gz cpython-fce7fd6426519a2897330c03da7eb889232bf681.tar.bz2 |
Issue #9549: sys.setdefaultencoding() and PyUnicode_SetDefaultEncoding()
are now removed, since their effect was inexistent in 3.x (the default
encoding is hardcoded to utf-8 and cannot be changed).
-rw-r--r-- | Doc/library/sys.rst | 12 | ||||
-rw-r--r-- | Include/unicodeobject.h | 12 | ||||
-rw-r--r-- | Lib/site.py | 25 | ||||
-rw-r--r-- | Lib/test/test_site.py | 8 | ||||
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Misc/cheatsheet | 2 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 11 | ||||
-rw-r--r-- | Python/sysmodule.c | 20 |
8 files changed, 4 insertions, 90 deletions
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 79652ea..09dd844 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -712,18 +712,6 @@ always available. :func:`setswitchinterval` instead. -.. function:: setdefaultencoding(name) - - Set the current default string encoding used by the Unicode implementation. If - *name* does not match any available encoding, :exc:`LookupError` is raised. - This function is only intended to be used by the :mod:`site` module - implementation and, where needed, by :mod:`sitecustomize`. Once used by the - :mod:`site` module, it is removed from the :mod:`sys` module's namespace. - - .. Note that :mod:`site` is not imported if the :option:`-S` option is passed - to the interpreter, in which case this function will remain available. - - .. function:: setdlopenflags(n) Set the flags used by the interpreter for :cfunc:`dlopen` calls, such as when diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index cd2f165..5fadb99 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -212,7 +212,6 @@ typedef PY_UNICODE_TYPE Py_UNICODE; # define PyUnicode_Replace PyUnicodeUCS2_Replace # define PyUnicode_Resize PyUnicodeUCS2_Resize # define PyUnicode_RichCompare PyUnicodeUCS2_RichCompare -# define PyUnicode_SetDefaultEncoding PyUnicodeUCS2_SetDefaultEncoding # define PyUnicode_Split PyUnicodeUCS2_Split # define PyUnicode_Splitlines PyUnicodeUCS2_Splitlines # define PyUnicode_Tailmatch PyUnicodeUCS2_Tailmatch @@ -295,7 +294,6 @@ typedef PY_UNICODE_TYPE Py_UNICODE; # define PyUnicode_Replace PyUnicodeUCS4_Replace # define PyUnicode_Resize PyUnicodeUCS4_Resize # define PyUnicode_RichCompare PyUnicodeUCS4_RichCompare -# define PyUnicode_SetDefaultEncoding PyUnicodeUCS4_SetDefaultEncoding # define PyUnicode_Split PyUnicodeUCS4_Split # define PyUnicode_Splitlines PyUnicodeUCS4_Splitlines # define PyUnicode_Tailmatch PyUnicodeUCS4_Tailmatch @@ -708,16 +706,6 @@ PyAPI_FUNC(char *) _PyUnicode_AsString(PyObject *unicode); PyAPI_FUNC(const char*) PyUnicode_GetDefaultEncoding(void); -/* Sets the currently active default encoding. - - Returns 0 on success, -1 in case of an error. - - */ - -PyAPI_FUNC(int) PyUnicode_SetDefaultEncoding( - const char *encoding /* Encoding name in standard form */ - ); - /* --- Generic Codecs ----------------------------------------------------- */ /* Create a Unicode object by decoding the encoded string s of the diff --git a/Lib/site.py b/Lib/site.py index f108432..51516aa 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -460,25 +460,6 @@ def aliasmbcs(): encodings._cache[enc] = encodings._unknown encodings.aliases.aliases[enc] = 'mbcs' -def setencoding(): - """Set the string encoding used by the Unicode implementation. The - default is 'ascii', but if you're willing to experiment, you can - change this.""" - encoding = "ascii" # Default value set by _PyUnicode_Init() - if 0: - # Enable to support locale aware default string encodings. - import locale - loc = locale.getdefaultlocale() - if loc[1]: - encoding = loc[1] - if 0: - # Enable to switch off string to Unicode coercion and implicit - # Unicode to string conversion. - encoding = "undefined" - if encoding != "ascii": - # On Non-Unicode builds this will raise an AttributeError... - sys.setdefaultencoding(encoding) # Needs Python Unicode build ! - def execsitecustomize(): """Run custom site specific code, if available.""" @@ -527,15 +508,9 @@ def main(): setcopyright() sethelper() aliasmbcs() - setencoding() execsitecustomize() if ENABLE_USER_SITE: execusercustomize() - # Remove sys.setdefaultencoding() so that users cannot change the - # encoding after initialization. The test for presence is needed when - # this module is run as a script, because this code is executed twice. - if hasattr(sys, "setdefaultencoding"): - del sys.setdefaultencoding main() diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index 013bfe1..8d03224 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -29,10 +29,6 @@ if not os.path.isdir(site.USER_SITE): class HelperFunctionsTests(unittest.TestCase): """Tests for helper functions. - - The setting of the encoding (set using sys.setdefaultencoding) used by - the Unicode implementation is not tested. - """ def setUp(self): @@ -333,10 +329,6 @@ class ImportSideEffectTests(unittest.TestCase): else: self.fail("did not alias mbcs") - def test_setdefaultencoding_removed(self): - # Make sure sys.setdefaultencoding is gone - self.assertTrue(not hasattr(sys, "setdefaultencoding")) - def test_sitecustomize_executed(self): # If sitecustomize is available, it should have been imported. if "sitecustomize" not in sys.modules: @@ -12,6 +12,10 @@ What's New in Python 3.2 Alpha 2? Core and Builtins ----------------- +- Issue #9549: sys.setdefaultencoding() and PyUnicode_SetDefaultEncoding() + are now removed, since their effect was inexistent in 3.x (the default + encoding is hardcoded to utf-8 and cannot be changed). + - Issue #7415: PyUnicode_FromEncodedObject() now uses the new buffer API properly. Patch by Stefan Behnel. diff --git a/Misc/cheatsheet b/Misc/cheatsheet index 8c5ddcb..ebbf1d4 100644 --- a/Misc/cheatsheet +++ b/Misc/cheatsheet @@ -1326,8 +1326,6 @@ setprofile(func) Sets a profile function for performance profiling. exc_info() traceback return value to a local variable in a function handling an exception will cause a circular reference. -setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII. -(encoding) getrecursionlimit Retrieve maximum recursion depth. () setrecursionlimit Set maximum recursion depth. (Defaults to 1000.) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 753b465..6012492 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1784,17 +1784,6 @@ const char *PyUnicode_GetDefaultEncoding(void) return unicode_default_encoding; } -int PyUnicode_SetDefaultEncoding(const char *encoding) -{ - if (strcmp(encoding, unicode_default_encoding) != 0) { - PyErr_Format(PyExc_ValueError, - "Can only set default encoding to %s", - unicode_default_encoding); - return -1; - } - return 0; -} - /* create or adjust a UnicodeDecodeError */ static void make_decode_exception(PyObject **exceptionObject, diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 013f5f1..90c165a 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -183,24 +183,6 @@ implementation." ); static PyObject * -sys_setdefaultencoding(PyObject *self, PyObject *args) -{ - char *encoding; - if (!PyArg_ParseTuple(args, "s:setdefaultencoding", &encoding)) - return NULL; - if (PyUnicode_SetDefaultEncoding(encoding)) - return NULL; - Py_INCREF(Py_None); - return Py_None; -} - -PyDoc_STRVAR(setdefaultencoding_doc, -"setdefaultencoding(encoding)\n\ -\n\ -Set the current default string encoding used by the Unicode implementation." -); - -static PyObject * sys_getfilesystemencoding(PyObject *self) { if (Py_FileSystemDefaultEncoding) @@ -1030,8 +1012,6 @@ static PyMethodDef sys_methods[] = { #ifdef USE_MALLOPT {"mdebug", sys_mdebug, METH_VARARGS}, #endif - {"setdefaultencoding", sys_setdefaultencoding, METH_VARARGS, - setdefaultencoding_doc}, {"setfilesystemencoding", sys_setfilesystemencoding, METH_VARARGS, setfilesystemencoding_doc}, {"setcheckinterval", sys_setcheckinterval, METH_VARARGS, |