gh-92536: PEP 623: Remove wstr from unicode#92537
Conversation
390915a to
eda0fb0
Compare
eda0fb0 to
d5a14c2
Compare
| .. versionadded:: 3.3 | ||
|
|
||
| .. deprecated:: 3.10 | ||
| This API do nothing since Python 3.12. Please remove code using this function. |
There was a problem hiding this comment.
Huge number of code using this API.
https://github.com/hpyproject/top4000-pypi-packages/search?q=PyUnicode_READY
There was a problem hiding this comment.
This API does nothing..., and I think the 'Please remove ...' can be omitted
Co-authored-by: Oleg Iarygin <dralife@yandex.ru>
|
I added @serhiy-storchaka to reviewer because he is author of USE_UNICODE_WCHAR_CACHE. |
ericsnowcurrently
left a comment
There was a problem hiding this comment.
Nothing wrong stood out after a quick scan on my phone. The change seems mostly mechanical and limited to removals. Is that right?
Also, should the PEP be mentioned more prominently in the Misc/NEWS entry and whats_new?
|
What if merge #12409 first and set HAVE_UNICODE_WCHAR_CACHE to 0? It will have an effect of removing wstr, but keep possibility to return it in custom builds. |
|
Argument Clinic How-To also needs an update: diff --git a/Doc/howto/clinic.rst b/Doc/howto/clinic.rst
index 04b1a2cac0..b969dc8f42 100644
--- a/Doc/howto/clinic.rst
+++ b/Doc/howto/clinic.rst
@@ -848,15 +848,11 @@ on the right is the text you'd replace it with.
``'s#'`` ``str(zeroes=True)``
``'s*'`` ``Py_buffer(accept={buffer, str})``
``'U'`` ``unicode``
-``'u'`` ``Py_UNICODE``
-``'u#'`` ``Py_UNICODE(zeroes=True)``
``'w*'`` ``Py_buffer(accept={rwbuffer})``
``'Y'`` ``PyByteArrayObject``
``'y'`` ``str(accept={bytes})``
``'y#'`` ``str(accept={robuffer}, zeroes=True)``
``'y*'`` ``Py_buffer``
-``'Z'`` ``Py_UNICODE(accept={str, NoneType})``
-``'Z#'`` ``Py_UNICODE(accept={str, NoneType}, zeroes=True)``
``'z'`` ``str(accept={str, NoneType})``
``'z#'`` ``str(accept={str, NoneType}, zeroes=True)``
``'z*'`` ``Py_buffer(accept={buffer, str, NoneType})`` |
I think it is very difficult to maintain both of HAVE_UNICODE_WCHAR_CACHE is 0 and 1.
AC supports u and Z even after removing wstr. I will replace Py_UNICODE with wchar_t in the clinic howto. |
Implemented in python/cpython#92537
slateny
left a comment
There was a problem hiding this comment.
some optional grammar changes if you revisit some of these files later down the line
| encoding passed in as parameter. | ||
|
|
||
| .. versionchanged:: 3.12 | ||
| ``u``, ``u#``, ``Z``, and ``Z#`` are removed because they used legacy ``Py_UNICODE*`` |
There was a problem hiding this comment.
... because they used a/the legacy ...
| .. versionadded:: 3.3 | ||
|
|
||
| .. deprecated:: 3.10 | ||
| This API do nothing since Python 3.12. Please remove code using this function. |
There was a problem hiding this comment.
This API does nothing..., and I think the 'Please remove ...' can be omitted
|
Congratulations for finally managing to remove this legacy API. A big thank you! I hated this API since Python 3.3, having to call "PyUnicode_Ready()" was super annoying. Thanks for you tenacity to remove it! |
* PEP 623: Mark it final Implemented in python/cpython#92537 * Add Discussions-To and Resolution header * Fix Discussions-To link
I'm sorry but I am considering to un-deprecate |
gh-92536