* Remove :class:`!typing.ByteString`. It had previously raised a
:exc:`DeprecationWarning` since Python 3.12.
+urllib
+------
+
+* Remove deprecated :class:`!Quoter` class from :mod:`urllib.parse`.
+ It had previously raised a :exc:`DeprecationWarning` since Python 3.11.
+ (Contributed by Nikita Sobolev in :gh:`118827`.)
+
Others
------
class DeprecationTest(unittest.TestCase):
-
- def test_Quoter_deprecation(self):
- with self.assertWarns(DeprecationWarning) as cm:
- old_class = urllib.parse.Quoter
- self.assertIs(old_class, urllib.parse._Quoter)
- self.assertIn('Quoter will be removed', str(cm.warning))
-
def test_splittype_deprecation(self):
with self.assertWarns(DeprecationWarning) as cm:
urllib.parse.splittype('')
b'_.-~')
_ALWAYS_SAFE_BYTES = bytes(_ALWAYS_SAFE)
-def __getattr__(name):
- if name == 'Quoter':
- warnings.warn('Deprecated in 3.11. '
- 'urllib.parse.Quoter will be removed in Python 3.14. '
- 'It was not intended to be a public API.',
- DeprecationWarning, stacklevel=2)
- return _Quoter
- raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
class _Quoter(dict):
"""A mapping from bytes numbers (in range(0,256)) to strings.
--- /dev/null
+Remove deprecated :class:`!Quoter` class from :mod:`urllib.parse`. It had
+previously raised a :exc:`DeprecationWarning` since Python 3.11.
+Patch by Nikita Sobolev.