summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/includes/sqlite3/adapter_datetime.py14
-rw-r--r--doc/includes/sqlite3/adapter_point_1.py16
-rw-r--r--doc/includes/sqlite3/adapter_point_2.py17
-rw-r--r--doc/includes/sqlite3/apsw_example.py12
-rw-r--r--doc/includes/sqlite3/authorizer.py26
-rw-r--r--doc/includes/sqlite3/collation_reverse.py15
-rw-r--r--doc/includes/sqlite3/complete_statement.py30
-rw-r--r--doc/includes/sqlite3/connect_db_1.py3
-rw-r--r--doc/includes/sqlite3/connect_db_2.py3
-rw-r--r--doc/includes/sqlite3/converter_point.py47
-rw-r--r--doc/includes/sqlite3/countcursors.py15
-rw-r--r--doc/includes/sqlite3/createdb.py28
-rw-r--r--doc/includes/sqlite3/ctx_manager.py19
-rw-r--r--doc/includes/sqlite3/execsql_fetchonerow.py17
-rw-r--r--doc/includes/sqlite3/execsql_printall_1.py13
-rw-r--r--doc/includes/sqlite3/execute_1.py11
-rw-r--r--doc/includes/sqlite3/execute_2.py12
-rw-r--r--doc/includes/sqlite3/execute_3.py12
-rw-r--r--doc/includes/sqlite3/executemany_1.py24
-rw-r--r--doc/includes/sqlite3/executemany_2.py15
-rw-r--r--doc/includes/sqlite3/executescript.py24
-rw-r--r--doc/includes/sqlite3/insert_more_people.py16
-rw-r--r--doc/includes/sqlite3/load_extension.py28
-rw-r--r--doc/includes/sqlite3/md5func.py11
-rw-r--r--doc/includes/sqlite3/mysumaggr.py20
-rw-r--r--doc/includes/sqlite3/parse_colnames.py8
-rw-r--r--doc/includes/sqlite3/progress.py29
-rw-r--r--doc/includes/sqlite3/pysqlite_datetime.py20
-rw-r--r--doc/includes/sqlite3/row_factory.py13
-rw-r--r--doc/includes/sqlite3/rowclass.py12
-rw-r--r--doc/includes/sqlite3/shared_cache.py6
-rw-r--r--doc/includes/sqlite3/shortcut_methods.py21
-rw-r--r--doc/includes/sqlite3/simple_tableprinter.py26
-rw-r--r--doc/includes/sqlite3/text_factory.py42
-rw-r--r--doc/install-source.txt147
-rw-r--r--doc/sphinx/conf.py8
-rw-r--r--doc/sphinx/index.rst4
-rw-r--r--doc/sphinx/sqlcipher.rst (renamed from doc/sphinx/sqlite3.rst)11
38 files changed, 12 insertions, 783 deletions
diff --git a/doc/includes/sqlite3/adapter_datetime.py b/doc/includes/sqlite3/adapter_datetime.py
deleted file mode 100644
index 5a43b02..0000000
--- a/doc/includes/sqlite3/adapter_datetime.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-import datetime, time
-
-def adapt_datetime(ts):
- return time.mktime(ts.timetuple())
-
-sqlite3.register_adapter(datetime.datetime, adapt_datetime)
-
-con = sqlite3.connect(":memory:")
-cur = con.cursor()
-
-now = datetime.datetime.now()
-cur.execute("select ?", (now,))
-print cur.fetchone()[0]
diff --git a/doc/includes/sqlite3/adapter_point_1.py b/doc/includes/sqlite3/adapter_point_1.py
deleted file mode 100644
index d9acb8d..0000000
--- a/doc/includes/sqlite3/adapter_point_1.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-class Point(object):
- def __init__(self, x, y):
- self.x, self.y = x, y
-
- def __conform__(self, protocol):
- if protocol is sqlite3.PrepareProtocol:
- return "%f;%f" % (self.x, self.y)
-
-con = sqlite3.connect(":memory:")
-cur = con.cursor()
-
-p = Point(4.0, -3.2)
-cur.execute("select ?", (p,))
-print cur.fetchone()[0]
diff --git a/doc/includes/sqlite3/adapter_point_2.py b/doc/includes/sqlite3/adapter_point_2.py
deleted file mode 100644
index 6ec58a8..0000000
--- a/doc/includes/sqlite3/adapter_point_2.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-class Point(object):
- def __init__(self, x, y):
- self.x, self.y = x, y
-
-def adapt_point(point):
- return "%f;%f" % (point.x, point.y)
-
-sqlite3.register_adapter(Point, adapt_point)
-
-con = sqlite3.connect(":memory:")
-cur = con.cursor()
-
-p = Point(4.0, -3.2)
-cur.execute("select ?", (p,))
-print cur.fetchone()[0]
diff --git a/doc/includes/sqlite3/apsw_example.py b/doc/includes/sqlite3/apsw_example.py
deleted file mode 100644
index bdca0c9..0000000
--- a/doc/includes/sqlite3/apsw_example.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-import apsw
-
-apsw_con = apsw.Connection(":memory:")
-apsw_con.createscalarfunction("times_two", lambda x: 2*x, 1)
-
-# Create pysqlite connection from APSW connection
-con = sqlite3.connect(apsw_con)
-result = con.execute("select times_two(15)").fetchone()[0]
-assert result == 30
-con.close()
-
diff --git a/doc/includes/sqlite3/authorizer.py b/doc/includes/sqlite3/authorizer.py
deleted file mode 100644
index 0176c6c..0000000
--- a/doc/includes/sqlite3/authorizer.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-def authorizer_callback(action, arg1, arg2, dbname, source):
- if action != sqlite3.SQLITE_SELECT:
- return sqlite3.SQLITE_DENY
- if arg1 == "private_table":
- return sqlite3.SQLITE_DENY
- return sqlite3.SQLITE_OK
-
-con = sqlite3.connect(":memory:")
-con.executescript("""
- create table public_table(c1, c2);
- create table private_table(c1, c2);
- """)
-con.set_authorizer(authorizer_callback)
-
-try:
- con.execute("select * from private_table")
-except sqlite3.DatabaseError, e:
- print "SELECT FROM private_table =>", e.args[0] # access ... prohibited
-
-try:
- con.execute("insert into public_table(c1, c2) values (1, 2)")
-except sqlite3.DatabaseError, e:
- print "DML command =>", e.args[0] # access ... prohibited
-
diff --git a/doc/includes/sqlite3/collation_reverse.py b/doc/includes/sqlite3/collation_reverse.py
deleted file mode 100644
index 100fac9..0000000
--- a/doc/includes/sqlite3/collation_reverse.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-def collate_reverse(string1, string2):
- return -cmp(string1, string2)
-
-con = sqlite3.connect(":memory:")
-con.create_collation("reverse", collate_reverse)
-
-cur = con.cursor()
-cur.execute("create table test(x)")
-cur.executemany("insert into test(x) values (?)", [("a",), ("b",)])
-cur.execute("select x from test order by x collate reverse")
-for row in cur:
- print row
-con.close()
diff --git a/doc/includes/sqlite3/complete_statement.py b/doc/includes/sqlite3/complete_statement.py
deleted file mode 100644
index 2bb49d4..0000000
--- a/doc/includes/sqlite3/complete_statement.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# A minimal SQLite shell for experiments
-
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect(":memory:")
-con.isolation_level = None
-cur = con.cursor()
-
-buffer = ""
-
-print "Enter your SQL commands to execute in SQLite."
-print "Enter a blank line to exit."
-
-while True:
- line = raw_input()
- if line == "":
- break
- buffer += line
- if sqlite3.complete_statement(buffer):
- try:
- buffer = buffer.strip()
- cur.execute(buffer)
-
- if buffer.lstrip().upper().startswith("SELECT"):
- print cur.fetchall()
- except sqlite3.Error, e:
- print "An error occurred:", e.args[0]
- buffer = ""
-
-con.close()
diff --git a/doc/includes/sqlite3/connect_db_1.py b/doc/includes/sqlite3/connect_db_1.py
deleted file mode 100644
index 360bf21..0000000
--- a/doc/includes/sqlite3/connect_db_1.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect("mydb")
diff --git a/doc/includes/sqlite3/connect_db_2.py b/doc/includes/sqlite3/connect_db_2.py
deleted file mode 100644
index 6899843..0000000
--- a/doc/includes/sqlite3/connect_db_2.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect(":memory:")
diff --git a/doc/includes/sqlite3/converter_point.py b/doc/includes/sqlite3/converter_point.py
deleted file mode 100644
index 4ba0df5..0000000
--- a/doc/includes/sqlite3/converter_point.py
+++ /dev/null
@@ -1,47 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-class Point(object):
- def __init__(self, x, y):
- self.x, self.y = x, y
-
- def __repr__(self):
- return "(%f;%f)" % (self.x, self.y)
-
-def adapt_point(point):
- return "%f;%f" % (point.x, point.y)
-
-def convert_point(s):
- x, y = map(float, s.split(";"))
- return Point(x, y)
-
-# Register the adapter
-sqlite3.register_adapter(Point, adapt_point)
-
-# Register the converter
-sqlite3.register_converter("point", convert_point)
-
-p = Point(4.0, -3.2)
-
-#########################
-# 1) Using declared types
-con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES)
-cur = con.cursor()
-cur.execute("create table test(p point)")
-
-cur.execute("insert into test(p) values (?)", (p,))
-cur.execute("select p from test")
-print "with declared types:", cur.fetchone()[0]
-cur.close()
-con.close()
-
-#######################
-# 1) Using column names
-con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_COLNAMES)
-cur = con.cursor()
-cur.execute("create table test(p)")
-
-cur.execute("insert into test(p) values (?)", (p,))
-cur.execute('select p as "p [point]" from test')
-print "with column names:", cur.fetchone()[0]
-cur.close()
-con.close()
diff --git a/doc/includes/sqlite3/countcursors.py b/doc/includes/sqlite3/countcursors.py
deleted file mode 100644
index 9ba7614..0000000
--- a/doc/includes/sqlite3/countcursors.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-class CountCursorsConnection(sqlite3.Connection):
- def __init__(self, *args, **kwargs):
- sqlite3.Connection.__init__(self, *args, **kwargs)
- self.numcursors = 0
-
- def cursor(self, *args, **kwargs):
- self.numcursors += 1
- return sqlite3.Connection.cursor(self, *args, **kwargs)
-
-con = sqlite3.connect(":memory:", factory=CountCursorsConnection)
-cur1 = con.cursor()
-cur2 = con.cursor()
-print con.numcursors
diff --git a/doc/includes/sqlite3/createdb.py b/doc/includes/sqlite3/createdb.py
deleted file mode 100644
index 28e9514..0000000
--- a/doc/includes/sqlite3/createdb.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# Not referenced from the documentation, but builds the database file the other
-# code snippets expect.
-
-from pysqlite2 import dbapi2 as sqlite3
-import os
-
-DB_FILE = "mydb"
-
-if os.path.exists(DB_FILE):
- os.remove(DB_FILE)
-
-con = sqlite3.connect(DB_FILE)
-cur = con.cursor()
-cur.execute("""
- create table people
- (
- name_last varchar(20),
- age integer
- )
- """)
-
-cur.execute("insert into people (name_last, age) values ('Yeltsin', 72)")
-cur.execute("insert into people (name_last, age) values ('Putin', 51)")
-
-con.commit()
-
-cur.close()
-con.close()
diff --git a/doc/includes/sqlite3/ctx_manager.py b/doc/includes/sqlite3/ctx_manager.py
deleted file mode 100644
index 2821e8f..0000000
--- a/doc/includes/sqlite3/ctx_manager.py
+++ /dev/null
@@ -1,19 +0,0 @@
-from __future__ import with_statement
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect(":memory:")
-con.execute("create table person (id integer primary key, firstname varchar unique)")
-
-# Successful, con.commit() is called automatically afterwards
-with con:
- con.execute("insert into person(firstname) values (?)", ("Joe",))
-
-# con.rollback() is called after the with block finishes with an exception, the
-# exception is still raised and must be catched
-try:
- with con:
- con.execute("insert into person(firstname) values (?)", ("Joe",))
-except sqlite3.IntegrityError:
- print "couldn't add Joe twice"
-
-
diff --git a/doc/includes/sqlite3/execsql_fetchonerow.py b/doc/includes/sqlite3/execsql_fetchonerow.py
deleted file mode 100644
index e3aa578..0000000
--- a/doc/includes/sqlite3/execsql_fetchonerow.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect("mydb")
-
-cur = con.cursor()
-SELECT = "select name_last, age from people order by age, name_last"
-
-# 1. Iterate over the rows available from the cursor, unpacking the
-# resulting sequences to yield their elements (name_last, age):
-cur.execute(SELECT)
-for (name_last, age) in cur:
- print '%s is %d years old.' % (name_last, age)
-
-# 2. Equivalently:
-cur.execute(SELECT)
-for row in cur:
- print '%s is %d years old.' % (row[0], row[1])
diff --git a/doc/includes/sqlite3/execsql_printall_1.py b/doc/includes/sqlite3/execsql_printall_1.py
deleted file mode 100644
index 62e48bd..0000000
--- a/doc/includes/sqlite3/execsql_printall_1.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-# Create a connection to the database file "mydb":
-con = sqlite3.connect("mydb")
-
-# Get a Cursor object that operates in the context of Connection con:
-cur = con.cursor()
-
-# Execute the SELECT statement:
-cur.execute("select * from people order by age")
-
-# Retrieve all rows as a sequence and print that sequence:
-print cur.fetchall()
diff --git a/doc/includes/sqlite3/execute_1.py b/doc/includes/sqlite3/execute_1.py
deleted file mode 100644
index 70967ea..0000000
--- a/doc/includes/sqlite3/execute_1.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect("mydb")
-
-cur = con.cursor()
-
-who = "Yeltsin"
-age = 72
-
-cur.execute("select name_last, age from people where name_last=? and age=?", (who, age))
-print cur.fetchone()
diff --git a/doc/includes/sqlite3/execute_2.py b/doc/includes/sqlite3/execute_2.py
deleted file mode 100644
index 416b116..0000000
--- a/doc/includes/sqlite3/execute_2.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect("mydb")
-
-cur = con.cursor()
-
-who = "Yeltsin"
-age = 72
-
-cur.execute("select name_last, age from people where name_last=:who and age=:age",
- {"who": who, "age": age})
-print cur.fetchone()
diff --git a/doc/includes/sqlite3/execute_3.py b/doc/includes/sqlite3/execute_3.py
deleted file mode 100644
index 868be99..0000000
--- a/doc/includes/sqlite3/execute_3.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect("mydb")
-
-cur = con.cursor()
-
-who = "Yeltsin"
-age = 72
-
-cur.execute("select name_last, age from people where name_last=:who and age=:age",
- locals())
-print cur.fetchone()
diff --git a/doc/includes/sqlite3/executemany_1.py b/doc/includes/sqlite3/executemany_1.py
deleted file mode 100644
index b076389..0000000
--- a/doc/includes/sqlite3/executemany_1.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-class IterChars:
- def __init__(self):
- self.count = ord('a')
-
- def __iter__(self):
- return self
-
- def next(self):
- if self.count > ord('z'):
- raise StopIteration
- self.count += 1
- return (chr(self.count - 1),) # this is a 1-tuple
-
-con = sqlite3.connect(":memory:")
-cur = con.cursor()
-cur.execute("create table characters(c)")
-
-theIter = IterChars()
-cur.executemany("insert into characters(c) values (?)", theIter)
-
-cur.execute("select c from characters")
-print cur.fetchall()
diff --git a/doc/includes/sqlite3/executemany_2.py b/doc/includes/sqlite3/executemany_2.py
deleted file mode 100644
index 9913909..0000000
--- a/doc/includes/sqlite3/executemany_2.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-def char_generator():
- import string
- for c in string.letters[:26]:
- yield (c,)
-
-con = sqlite3.connect(":memory:")
-cur = con.cursor()
-cur.execute("create table characters(c)")
-
-cur.executemany("insert into characters(c) values (?)", char_generator())
-
-cur.execute("select c from characters")
-print cur.fetchall()
diff --git a/doc/includes/sqlite3/executescript.py b/doc/includes/sqlite3/executescript.py
deleted file mode 100644
index 57c2613..0000000
--- a/doc/includes/sqlite3/executescript.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect(":memory:")
-cur = con.cursor()
-cur.executescript("""
- create table person(
- firstname,
- lastname,
- age
- );
-
- create table book(
- title,
- author,
- published
- );
-
- insert into book(title, author, published)
- values (
- 'Dirk Gently''s Holistic Detective Agency',
- 'Douglas Adams',
- 1987
- );
- """)
diff --git a/doc/includes/sqlite3/insert_more_people.py b/doc/includes/sqlite3/insert_more_people.py
deleted file mode 100644
index 40600dc..0000000
--- a/doc/includes/sqlite3/insert_more_people.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect("mydb")
-
-cur = con.cursor()
-
-newPeople = (
- ('Lebed' , 53),
- ('Zhirinovsky' , 57),
- )
-
-for person in newPeople:
- cur.execute("insert into people (name_last, age) values (?, ?)", person)
-
-# The changes will not be saved unless the transaction is committed explicitly:
-con.commit()
diff --git a/doc/includes/sqlite3/load_extension.py b/doc/includes/sqlite3/load_extension.py
deleted file mode 100644
index d8df90f..0000000
--- a/doc/includes/sqlite3/load_extension.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect(":memory:")
-
-# enable extension loading
-con.enable_load_extension(True)
-
-# Load the fulltext search extension
-con.execute("select load_extension('./fts3.so')")
-
-# alternatively you can load the extension using an API call:
-# con.load_extension("./fts3.so")
-
-# disable extension laoding again
-con.enable_load_extension(False)
-
-# example from SQLite wiki
-con.execute("create virtual table recipe using fts3(name, ingredients)")
-con.executescript("""
- insert into recipe (name, ingredients) values ('broccoli stew', 'broccoli peppers cheese tomatoes');
- insert into recipe (name, ingredients) values ('pumpkin stew', 'pumpkin onions garlic celery');
- insert into recipe (name, ingredients) values ('broccoli pie', 'broccoli cheese onions flour');
- insert into recipe (name, ingredients) values ('pumpkin pie', 'pumpkin sugar flour butter');
- """)
-for row in con.execute("select rowid, name, ingredients from recipe where name match 'pie'"):
- print row
-
-
diff --git a/doc/includes/sqlite3/md5func.py b/doc/includes/sqlite3/md5func.py
deleted file mode 100644
index 5b8b983..0000000
--- a/doc/includes/sqlite3/md5func.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-import md5
-
-def md5sum(t):
- return md5.md5(t).hexdigest()
-
-con = sqlite3.connect(":memory:")
-con.create_function("md5", 1, md5sum)
-cur = con.cursor()
-cur.execute("select md5(?)", ("foo",))
-print cur.fetchone()[0]
diff --git a/doc/includes/sqlite3/mysumaggr.py b/doc/includes/sqlite3/mysumaggr.py
deleted file mode 100644
index 4fbcad5..0000000
--- a/doc/includes/sqlite3/mysumaggr.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-class MySum:
- def __init__(self):
- self.count = 0
-
- def step(self, value):
- self.count += value
-
- def finalize(self):
- return self.count
-
-con = sqlite3.connect(":memory:")
-con.create_aggregate("mysum", 1, MySum)
-cur = con.cursor()
-cur.execute("create table test(i)")
-cur.execute("insert into test(i) values (1)")
-cur.execute("insert into test(i) values (2)")
-cur.execute("select mysum(i) from test")
-print cur.fetchone()[0]
diff --git a/doc/includes/sqlite3/parse_colnames.py b/doc/includes/sqlite3/parse_colnames.py
deleted file mode 100644
index 702fa8d..0000000
--- a/doc/includes/sqlite3/parse_colnames.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-import datetime
-
-con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_COLNAMES)
-cur = con.cursor()
-cur.execute('select ? as "x [timestamp]"', (datetime.datetime.now(),))
-dt = cur.fetchone()[0]
-print dt, type(dt)
diff --git a/doc/includes/sqlite3/progress.py b/doc/includes/sqlite3/progress.py
deleted file mode 100644
index b30941d..0000000
--- a/doc/includes/sqlite3/progress.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-def progress():
- print "Query still executing. Please wait ..."
-
-con = sqlite3.connect(":memory:")
-con.execute("create table test(x)")
-
-# Let's create some data
-con.executemany("insert into test(x) values (?)", [(x,) for x in xrange(300)])
-
-# A progress handler, executed every 10 million opcodes
-con.set_progress_handler(progress, 10000000)
-
-# A particularly long-running query
-killer_stament = """
- select count(*) from (
- select t1.x from test t1, test t2, test t3
- )
- """
-
-con.execute(killer_stament)
-print "-" * 50
-
-# Clear the progress handler
-con.set_progress_handler(None, 0)
-
-con.execute(killer_stament)
-
diff --git a/doc/includes/sqlite3/pysqlite_datetime.py b/doc/includes/sqlite3/pysqlite_datetime.py
deleted file mode 100644
index 9075b46..0000000
--- a/doc/includes/sqlite3/pysqlite_datetime.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-import datetime
-
-con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
-cur = con.cursor()
-cur.execute("create table test(d date, ts timestamp)")
-
-today = datetime.date.today()
-now = datetime.datetime.now()
-
-cur.execute("insert into test(d, ts) values (?, ?)", (today, now))
-cur.execute("select d, ts from test")
-row = cur.fetchone()
-print today, "=>", row[0], type(row[0])
-print now, "=>", row[1], type(row[1])
-
-cur.execute('select current_date as "d [date]", current_timestamp as "ts [timestamp]"')
-row = cur.fetchone()
-print "current_date", row[0], type(row[0])
-print "current_timestamp", row[1], type(row[1])
diff --git a/doc/includes/sqlite3/row_factory.py b/doc/includes/sqlite3/row_factory.py
deleted file mode 100644
index bfbc64d..0000000
--- a/doc/includes/sqlite3/row_factory.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-def dict_factory(cursor, row):
- d = {}
- for idx, col in enumerate(cursor.description):
- d[col[0]] = row[idx]
- return d
-
-con = sqlite3.connect(":memory:")
-con.row_factory = dict_factory
-cur = con.cursor()
-cur.execute("select 1 as a")
-print cur.fetchone()["a"]
diff --git a/doc/includes/sqlite3/rowclass.py b/doc/includes/sqlite3/rowclass.py
deleted file mode 100644
index e210ef2..0000000
--- a/doc/includes/sqlite3/rowclass.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect("mydb")
-con.row_factory = sqlite3.Row
-
-cur = con.cursor()
-cur.execute("select name_last, age from people")
-for row in cur:
- assert row[0] == row["name_last"]
- assert row["name_last"] == row["nAmE_lAsT"]
- assert row[1] == row["age"]
- assert row[1] == row["AgE"]
diff --git a/doc/includes/sqlite3/shared_cache.py b/doc/includes/sqlite3/shared_cache.py
deleted file mode 100644
index 98adf78..0000000
--- a/doc/includes/sqlite3/shared_cache.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-# The shared cache is only available in SQLite versions 3.3.3 or later
-# See the SQLite documentaton for details.
-
-sqlite3.enable_shared_cache(True)
diff --git a/doc/includes/sqlite3/shortcut_methods.py b/doc/includes/sqlite3/shortcut_methods.py
deleted file mode 100644
index fcfc631..0000000
--- a/doc/includes/sqlite3/shortcut_methods.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-persons = [
- ("Hugo", "Boss"),
- ("Calvin", "Klein")
- ]
-
-con = sqlite3.connect(":memory:")
-
-# Create the table
-con.execute("create table person(firstname, lastname)")
-
-# Fill the table
-con.executemany("insert into person(firstname, lastname) values (?, ?)", persons)
-
-# Print the table contents
-for row in con.execute("select firstname, lastname from person"):
- print row
-
-# Using a dummy WHERE clause to not let SQLite take the shortcut table deletes.
-print "I just deleted", con.execute("delete from person where 1=1").rowcount, "rows"
diff --git a/doc/includes/sqlite3/simple_tableprinter.py b/doc/includes/sqlite3/simple_tableprinter.py
deleted file mode 100644
index 2237dc5..0000000
--- a/doc/includes/sqlite3/simple_tableprinter.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-FIELD_MAX_WIDTH = 20
-TABLE_NAME = 'people'
-SELECT = 'select * from %s order by age, name_last' % TABLE_NAME
-
-con = sqlite3.connect("mydb")
-
-cur = con.cursor()
-cur.execute(SELECT)
-
-# Print a header.
-for fieldDesc in cur.description:
- print fieldDesc[0].ljust(FIELD_MAX_WIDTH) ,
-print # Finish the header with a newline.
-print '-' * 78
-
-# For each row, print the value of each field left-justified within
-# the maximum possible width of that field.
-fieldIndices = range(len(cur.description))
-for row in cur:
- for fieldIndex in fieldIndices:
- fieldValue = str(row[fieldIndex])
- print fieldValue.ljust(FIELD_MAX_WIDTH) ,
-
- print # Finish the row with a newline.
diff --git a/doc/includes/sqlite3/text_factory.py b/doc/includes/sqlite3/text_factory.py
deleted file mode 100644
index cb38d52..0000000
--- a/doc/includes/sqlite3/text_factory.py
+++ /dev/null
@@ -1,42 +0,0 @@
-from pysqlite2 import dbapi2 as sqlite3
-
-con = sqlite3.connect(":memory:")
-cur = con.cursor()
-
-# Create the table
-con.execute("create table person(lastname, firstname)")
-
-AUSTRIA = u"\xd6sterreich"
-
-# by default, rows are returned as Unicode
-cur.execute("select ?", (AUSTRIA,))
-row = cur.fetchone()
-assert row[0] == AUSTRIA
-
-# but we can make pysqlite always return bytestrings ...
-con.text_factory = str
-cur.execute("select ?", (AUSTRIA,))
-row = cur.fetchone()
-assert type(row[0]) == str
-# the bytestrings will be encoded in UTF-8, unless you stored garbage in the
-# database ...
-assert row[0] == AUSTRIA.encode("utf-8")
-
-# we can also implement a custom text_factory ...
-# here we implement one that will ignore Unicode characters that cannot be
-# decoded from UTF-8
-con.text_factory = lambda x: unicode(x, "utf-8", "ignore")
-cur.execute("select ?", ("this is latin1 and would normally create errors" + u"\xe4\xf6\xfc".encode("latin1"),))
-row = cur.fetchone()
-assert type(row[0]) == unicode
-
-# pysqlite offers a builtin optimized text_factory that will return bytestring
-# objects, if the data is in ASCII only, and otherwise return unicode objects
-con.text_factory = sqlite3.OptimizedUnicode
-cur.execute("select ?", (AUSTRIA,))
-row = cur.fetchone()
-assert type(row[0]) == unicode
-
-cur.execute("select ?", ("Germany",))
-row = cur.fetchone()
-assert type(row[0]) == str
diff --git a/doc/install-source.txt b/doc/install-source.txt
deleted file mode 100644
index 90a3ce7..0000000
--- a/doc/install-source.txt
+++ /dev/null
@@ -1,147 +0,0 @@
--------------------------------------------------
-pysqlite installation guide - source distribution
--------------------------------------------------
-
-\(c\) 2005 Gerhard Häring
-
-Note: For Windows users, it is recommended that you use the win32 binary
- distribution of pysqlite!
-
-Steps:
-
- - `Step 1: Satisfy the dependencies`_
- - `Step 2: Compile pysqlite`_
- - `Step 3: Install pysqlite`_
- - `Step 4: Test your pysqlite installation`_
-
-Step 1: Satisfy The Dependencies
-================================
-
-pysqlite requires a valid combination of the dependencies in the list below.
-
-Detailed instructions on how to install each dependency are beyond the scope of
-this document; consult the dependency distributor for installation
-instructions.
-
-Dependencies:
-
- 1. Operating System and C Compiler - one of:
-
- * Linux/FreeBSD/NetBSD/OpenBSD and GCC
-
- * Other POSIX-compliant operating system and a C compiler
-
- 2. SQLite:
-
- * SQLite version 3.0.8 or later (as of pysqlite 2.2.0). This means we need
- the SQLite library installed - either statically or dynamically linked -
- and the SQLite header files. On Linux, the chances are very high that
- your distribution offers packages for SQLite 3. Be sure to verify the
- package is recent enough (version 3.0.8 or higher) and that you're
- installing the development package as well, which will be need for
- building pysqlite. On Debian and derivatives, the package to look for is
- called libsqlite3-dev.
-
- 3. Python:
-
- * Python 2.3 or later
-
-Step 2: Compile pysqlite
-========================
-
-Once you have successfully installed the dependencies, you may proceed with the
-installation of pysqlite itself.
-
-pysqlite has full support for the distutils_, the standard facility for Python
-package distribution and installation. Full instructions for using the
-distutils are available in `this section of the Python documentation`_, but you
-can skip them unless you have an otherwise insoluble problem.
-
-Open a command prompt, change to the directory where you decompressed the
-pysqlite source distribution, and type::
-
- python setup.py build
-
-The installation script, setup.py, will attempt to automatically detect the
-information needed by the C compiler; then it will invoke the distutils to
-perform the actual compilation. If you installed automatic distributions of the
-dependencies that place themselves in standard locations (on UNIX-style
-operating systems), the compilation should proceed without incident.
-
-Otherwise you will have to customize the build process. That's what the file
-*setup.cfg* is meant for. It's contains a few lines that you can customize so
-your C compiler will find the library and header files and you can also do a
-few other tweaks, like build pysqlite in debug mode.
-
-After you've customized *setup.cfg* appropriately, try invoking ``python
-setup.py build`` again.
-
-If setup.py raises no errors and its output concludes with something like
-"Creating library...", then you are ready to proceed to the next step.
-
-If you receive an error message from the compiler, then try to look at the
-first error it reports. Other errors will most likely be aftereffects from the
-first error (like not finding the sqlite3.h header file).
-
-
-Step 3: Install pysqlite
-========================
-
-During this step, the setup script moves the *pysqlite2* package (including the
-newly compiled C extension) to the standard package directory of your Python
-installation so that Python will be able to import pysqlite2.dbapi2 and
-pysqlite2.test.
-
-In addition to the Python code and shared library files actually used by the
-Python interpreter, the setup script typically installs some supporting files,
-such as documentation. Depending on your system configuration, these supporting
-files may be placed in the same directory or a different directory from the
-files used by the Python interpreter.
-
-Run the following command::
-
- python setup.py install
-
-The setup script will install pysqlite, listing each file it installs.
-
-Errors during this step are rare because compilation (the finicky part of this
-process) has already taken place; installation is really just a matter of
-copying files. However, there will be file system permission errors if the
-Python installation directory is not writable by the user running the setup
-script. If you encounter such an error, try one of the following:
-
-- Log in as a user who has the required file system permissions and repeat the
- installation step.
-- Manually copy the directory build/lib.platform-pyver/pysqlite2 (which
- contains the Python modules and compiled library files created during the
- compilation step) to a directory in your PYTHONPATH. This approach will not
- install the supporting files, but they are for the benefit of the programmer
- rather than the Python interpreter anyway.
-
-Step 4: Test Your pysqlite Installation
-=======================================
-
-Switch to a directory other than the temporary directory into which you
-decompressed the source distribution (to avoid conflict between the copy of
-pysqlite in that directory and the copy placed under the standard Python
-site-packages directory), then run the pysqlite test suite by starting a Python
-interpreter for the Python version you installed pysqlite for and entering the
-following::
-
- >>> from pysqlite2 import test
- >>> test.test()
- .....................................................................................................
- ----------------------------------------------------------------------
- Ran 101 tests in 0.182s
-
-If the test suite runs without any errors, you are finished.
-
-You should not encounter any errors at this stage since you have already
-completed the compilation and installation steps successfully. If you do,
-please report them to the `pysqlite bug tracker`_ or the `pysqlite mailing
-list`_.
-
-.. _distutils: http://www.python.org/sigs/distutils-sig/
-.. _this section of the Python documentation: http://www.python.org/doc/current/inst/inst.html
-.. _pysqlite bug tracker: http://pysqlite.googlecode.com/
-.. _pysqlite mailing list: http://itsystementwicklung.de/cgi-bin/mailman/listinfo/list-pysqlite
diff --git a/doc/sphinx/conf.py b/doc/sphinx/conf.py
index 6528513..8aee750 100644
--- a/doc/sphinx/conf.py
+++ b/doc/sphinx/conf.py
@@ -33,8 +33,8 @@ source_suffix = '.rst'
master_doc = 'index'
# General substitutions.
-project = 'pysqlite'
-copyright = u'2008-2009, Gerhard Häring'
+project = 'pysqlcipher'
+copyright = u'2008-2009, Gerhard Häring; 2013, Kali Kaneko'
# The default replacements for |version| and |release|, also used in various
# other places throughout the built documents.
@@ -42,7 +42,7 @@ copyright = u'2008-2009, Gerhard Häring'
# The short X.Y version.
version = '2.6'
# The full version, including alpha/beta/rc tags.
-release = '2.6.0'
+release = '2.6.0.dev1'
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
@@ -106,7 +106,7 @@ html_last_updated_fmt = '%b %d, %Y'
#html_copy_source = True
# Output file base name for HTML help builder.
-htmlhelp_basename = 'pysqlitedoc'
+htmlhelp_basename = 'pysqlcipherdoc'
# Options for LaTeX output
diff --git a/doc/sphinx/index.rst b/doc/sphinx/index.rst
index 522f986..b48000d 100644
--- a/doc/sphinx/index.rst
+++ b/doc/sphinx/index.rst
@@ -2,8 +2,8 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
-Welcome to pysqlite's documentation!
-====================================
+Welcome to pysqlcipher's documentation!
+=======================================
Contents:
diff --git a/doc/sphinx/sqlite3.rst b/doc/sphinx/sqlcipher.rst
index a0d5de8..7785aeb 100644
--- a/doc/sphinx/sqlite3.rst
+++ b/doc/sphinx/sqlcipher.rst
@@ -1,10 +1,12 @@
-:mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases
-============================================================
+:mod:`sqlcipher` --- DB-API 2.0 interface for SQCipher databases
+==============================================================
-.. module:: sqlite3
- :synopsis: A DB-API 2.0 implementation using SQLite 3.x.
+.. module:: sqlcipher
+ :synopsis: A DB-API 2.0 implementation using SQCipher 3.x.
.. sectionauthor:: Gerhard Häring <gh@ghaering.de>
+.. sectionauthor:: Kali Kaneko <kali@leap.se>
+.. note:: This documentation has to be adapted to the use of SQLCipher
SQLite is a C library that provides a lightweight disk-based database that
doesn't require a separate server process and allows accessing the database
@@ -20,7 +22,6 @@ To use the module, you must first create a :class:`Connection` object that
represents the database. Here the data will be stored in the
:file:`/tmp/example` file::
- conn = sqlite3.connect('/tmp/example')
You can also supply the special name ``:memory:`` to create a database in RAM.