mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
bpo-42264: Deprecate sqlite3.OptimizedUnicode (GH-23163)
This commit is contained in:
parent
296a796951
commit
a1f401a58b
5 changed files with 26 additions and 12 deletions
|
|
@ -21,3 +21,17 @@
|
|||
# 3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
from sqlite3.dbapi2 import *
|
||||
|
||||
|
||||
# bpo-42264: OptimizedUnicode was deprecated in Python 3.10. It's scheduled
|
||||
# for removal in Python 3.12.
|
||||
def __getattr__(name):
|
||||
if name == "OptimizedUnicode":
|
||||
import warnings
|
||||
msg = ("""
|
||||
OptimizedUnicode is deprecated and will be removed in Python 3.12.
|
||||
Since Python 3.3 it has simply been an alias for 'str'.
|
||||
""")
|
||||
warnings.warn(msg, DeprecationWarning, stacklevel=2)
|
||||
return str
|
||||
raise AttributeError(f"module 'sqlite3' has no attribute '{name}'")
|
||||
|
|
|
|||
|
|
@ -254,9 +254,10 @@ class TextFactoryTests(unittest.TestCase):
|
|||
self.assertTrue(row[0].endswith("reich"), "column must contain original data")
|
||||
|
||||
def CheckOptimizedUnicode(self):
|
||||
# In py3k, str objects are always returned when text_factory
|
||||
# is OptimizedUnicode
|
||||
self.con.text_factory = sqlite.OptimizedUnicode
|
||||
# OptimizedUnicode is deprecated as of Python 3.10
|
||||
with self.assertWarns(DeprecationWarning) as cm:
|
||||
self.con.text_factory = sqlite.OptimizedUnicode
|
||||
self.assertIn("factory.py", cm.filename)
|
||||
austria = "Österreich"
|
||||
germany = "Deutchland"
|
||||
a_row = self.con.execute("select ?", (austria,)).fetchone()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue