1 # pysqlite2/__init__.py: the pysqlite2 package.
2 #
3 # Copyright (C) 2005 Gerhard Häring <gh@ghaering.de>
4 #
5 # This file is part of pysqlite.
6 #
7 # This software is provided 'as-is', without any express or implied
8 # warranty. In no event will the authors be held liable for any damages
9 # arising from the use of this software.
10 #
11 # Permission is granted to anyone to use this software for any purpose,
12 # including commercial applications, and to alter it and redistribute it
13 # freely, subject to the following restrictions:
14 #
15 # 1. The origin of this software must not be misrepresented; you must not
16 # claim that you wrote the original software. If you use this software
17 # in a product, an acknowledgment in the product documentation would be
18 # appreciated but is not required.
19 # 2. Altered source versions must be plainly marked as such, and must not be
20 # misrepresented as being the original software.
21 # 3. This notice may not be removed or altered from any source distribution.
22
23 """
24 The sqlite3 extension module provides a DB-API 2.0 (PEP 249) compliant
25 interface to the SQLite library, and requires SQLite 3.7.15 or newer.
26
27 To use the module, start by creating a database Connection object:
28
29 import sqlite3
30 cx = sqlite3.connect("test.db") # test.db will be created or opened
31
32 The special path name ":memory:" can be provided to connect to a transient
33 in-memory database:
34
35 cx = sqlite3.connect(":memory:") # connect to a database in RAM
36
37 Once a connection has been established, create a Cursor object and call
38 its execute() method to perform SQL queries:
39
40 cu = cx.cursor()
41
42 # create a table
43 cu.execute("create table lang(name, first_appeared)")
44
45 # insert values into a table
46 cu.execute("insert into lang values (?, ?)", ("C", 1972))
47
48 # execute a query and iterate over the result
49 for row in cu.execute("select * from lang"):
50 print(row)
51
52 cx.close()
53
54 The sqlite3 module is written by Gerhard Häring <gh@ghaering.de>.
55 """
56
57 from sqlite3.dbapi2 import *
58
59
60 # bpo-42264: OptimizedUnicode was deprecated in Python 3.10. It's scheduled
61 # for removal in Python 3.12.
62 def __getattr__(name):
63 if name == "OptimizedUnicode":
64 import warnings
65 msg = ("""
66 OptimizedUnicode is deprecated and will be removed in Python 3.12.
67 Since Python 3.3 it has simply been an alias for 'str'.
68 """)
69 warnings.warn(msg, DeprecationWarning, stacklevel=2)
70 return str
71 raise AttributeError(f"module 'sqlite3' has no attribute '{name}'")