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""" 24The sqlite3 extension module provides a DB-API 2.0 (PEP 249) compilant 25interface to the SQLite library, and requires SQLite 3.7.15 or newer. 26 27To 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 32The special path name ":memory:" can be provided to connect to a transient 33in-memory database: 34 35 cx = sqlite3.connect(":memory:") # connect to a database in RAM 36 37Once a connection has been established, create a Cursor object and call 38its 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 54The sqlite3 module is written by Gerhard Häring <gh@ghaering.de>. 55""" 56 57from 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. 62def __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}'") 72