Serhiy Storchaka added the comment:

Proposed patch marks most deprecated functions. Code is rewritten for using 
non-deprecated functions if possible. Unfortunately some deprecated function 
still are used in the code and can't be easier replaced. They are left not 
marked.

* PyEval_ReleaseLock() is used in Python/pystate.c. It can't be replaced with 
PyEval_ReleaseThread() since the latter don't accept NULL.

* Py_UNICODE (currently an alias of wchar_t) is used in a number of deprecated 
functions and bridges between deprecated and new APIs. Maybe it can be just 
replaced with wchar_t.

* Macros PyUnicode_GET_SIZE, PyUnicode_GET_DATA_SIZE, PyUnicode_AS_UNICODE, 
PyUnicode_AS_DATA, functions PyUnicode_AsUnicode and PyUnicode_AsUnicodeAndSize 
are used in a number of places. They can't be easily replaced with wchar-based 
functions since they return a borrowed reference to cached representation.

* PyUnicode_FromUnicode, PyUnicode_EncodeDecimal and 
PyUnicode_TransformDecimalToASCII are used only in Modules/_testcapimodule.c. I 
think we should write tests for modern APIs and eliminate tests for deprecated 
APIs. Or temporary silence compiler warning in test functions.

* _PyUnicode_ToLowercase, _PyUnicode_ToUppercase and corresponding public 
macros Py_UNICODE_TOLOWER and Py_UNICODE_TOUPPER are used in Modules/_sre.c 
(this is a bug in regex implementation). The problem is that more modern 
functions _PyUnicode_ToLowerFull and _PyUnicode_ToUpperFull is a private API.

All these cases needs separate issues.

----------
keywords: +patch
stage: needs patch -> patch review
Added file: http://bugs.python.org/file45365/mark-deprecated-functions.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19569>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to