]> granicus.if.org Git - python/commitdiff
sqlite3: Port relevant documentation changes from 3.2
authorPetri Lehtinen <petri@digip.org>
Thu, 1 Mar 2012 19:28:00 +0000 (21:28 +0200)
committerPetri Lehtinen <petri@digip.org>
Thu, 1 Mar 2012 19:48:30 +0000 (21:48 +0200)
Initial patch by Johannes Vogel. Issue #13491.

Doc/includes/sqlite3/execute_1.py
Doc/includes/sqlite3/execute_2.py [deleted file]
Doc/includes/sqlite3/executemany_2.py
Doc/includes/sqlite3/rowclass.py
Doc/includes/sqlite3/text_factory.py
Doc/library/sqlite3.rst
Misc/ACKS
Misc/NEWS

index fb3784ffb3bacc5aa9d13e5ffef4290af4ebc63f..763167cb7c78dbad1672ab219f7e53ef8ff3d2aa 100644 (file)
@@ -1,11 +1,16 @@
 import sqlite3
 
-con = sqlite3.connect("mydb")
-
+con = sqlite3.connect(":memory:")
 cur = con.cursor()
+cur.execute("create table people (name_last, age)")
 
 who = "Yeltsin"
 age = 72
 
-cur.execute("select name_last, age from people where name_last=? and age=?", (who, age))
+# This is the qmark style:
+cur.execute("insert into people values (?, ?)", (who, age))
+
+# And this is the named style:
+cur.execute("select * from people where name_last=:who and age=:age", {"who": who, "age": age})
+
 print cur.fetchone()
diff --git a/Doc/includes/sqlite3/execute_2.py b/Doc/includes/sqlite3/execute_2.py
deleted file mode 100644 (file)
index df6c894..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-import 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()
index 05857c0bde63c02a44d5fdec5c4f4d8b2b99bf8b..0b126889d6c5797026e5c5298a8dc94b4415ac3c 100644 (file)
@@ -1,8 +1,8 @@
 import sqlite3
+import string
 
 def char_generator():
-    import string
-    for c in string.letters[:26]:
+    for c in string.lowercase:
         yield (c,)
 
 con = sqlite3.connect(":memory:")
index 3fa0b873890da1fd00f423d313a8aa3e213bf3b1..92b5ad60cb5791908227b7d217bf8c7936b58a5b 100644 (file)
@@ -1,12 +1,12 @@
 import sqlite3
 
-con = sqlite3.connect("mydb")
+con = sqlite3.connect(":memory:")
 con.row_factory = sqlite3.Row
 
 cur = con.cursor()
-cur.execute("select name_last, age from people")
+cur.execute("select 'John' as name, 42 as age")
 for row in cur:
-    assert row[0] == row["name_last"]
-    assert row["name_last"] == row["nAmE_lAsT"]
+    assert row[0] == row["name"]
+    assert row["name"] == row["nAmE"]
     assert row[1] == row["age"]
     assert row[1] == row["AgE"]
index 195949866f46a2ef340e567004b8157e333be69e..577378f819d44f2b06076b1fe624acbe48a96566 100644 (file)
@@ -3,9 +3,6 @@ import 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
@@ -17,7 +14,7 @@ assert row[0] == AUSTRIA
 con.text_factory = str
 cur.execute("select ?", (AUSTRIA,))
 row = cur.fetchone()
-assert type(row[0]) == str
+assert type(row[0]) is str
 # the bytestrings will be encoded in UTF-8, unless you stored garbage in the
 # database ...
 assert row[0] == AUSTRIA.encode("utf-8")
@@ -29,15 +26,15 @@ 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
+assert type(row[0]) is unicode
 
 # sqlite3 offers a built-in 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
+assert type(row[0]) is unicode
 
 cur.execute("select ?", ("Germany",))
 row = cur.fetchone()
-assert type(row[0]) == str
+assert type(row[0]) is str
index 80803aa3518dfb69dd66e83ab5f2fd826938d66b..0745cefe37e1c8cd9e07da40d5fc3c2ac4a2cd56 100644 (file)
@@ -3,7 +3,7 @@
 
 .. module:: sqlite3
    :synopsis: A DB-API 2.0 implementation using SQLite 3.x.
-.. sectionauthor:: Gerhard HÃ\83¤ring <gh@ghaering.de>
+.. sectionauthor:: Gerhard Häring <gh@ghaering.de>
 
 
 .. versionadded:: 2.5
@@ -82,7 +82,7 @@ This example uses the iterator form::
    >>> c = conn.cursor()
    >>> c.execute('select * from stocks order by price')
    >>> for row in c:
-   ...    print row
+   ...     print row
    ...
    (u'2006-01-05', u'BUY', u'RHAT', 100, 35.14)
    (u'2006-03-28', u'BUY', u'IBM', 1000, 45.0)
@@ -237,7 +237,6 @@ Connection Objects
    supplied, this must be a custom cursor class that extends
    :class:`sqlite3.Cursor`.
 
-
 .. method:: Connection.commit()
 
    This method commits the current transaction. If you don't call this method,
@@ -357,8 +356,6 @@ Connection Objects
 
 .. method:: Connection.set_progress_handler(handler, n)
 
-   .. versionadded:: 2.6
-
    This routine registers a callback. The callback is invoked for every *n*
    instructions of the SQLite virtual machine. This is useful if you want to
    get called from SQLite during long-running operations, for example to update
@@ -367,29 +364,31 @@ Connection Objects
    If you want to clear any previously installed progress handler, call the
    method with :const:`None` for *handler*.
 
+   .. versionadded:: 2.6
 
-.. method:: Connection.enable_load_extension(enabled)
 
-   .. versionadded:: 2.7
+.. method:: Connection.enable_load_extension(enabled)
 
    This routine allows/disallows the SQLite engine to load SQLite extensions
    from shared libraries.  SQLite extensions can define new functions,
    aggregates or whole new virtual table implementations.  One well-known
    extension is the fulltext-search extension distributed with SQLite.
 
-   .. literalinclude:: ../includes/sqlite3/load_extension.py
+   Loadable extensions are disabled by default. See [#f1]_.
 
-   Loadable extensions are disabled by default. See [#f1]_
+   .. versionadded:: 2.7
 
-.. method:: Connection.load_extension(path)
+   .. literalinclude:: ../includes/sqlite3/load_extension.py
 
-   .. versionadded:: 2.7
+.. method:: Connection.load_extension(path)
 
    This routine loads a SQLite extension from a shared library.  You have to
    enable extension loading with :meth:`enable_load_extension` before you can
    use this routine.
 
-   Loadable extensions are disabled by default. See [#f1]_
+   Loadable extensions are disabled by default. See [#f1]_.
+
+   .. versionadded:: 2.7
 
 .. attribute:: Connection.row_factory
 
@@ -473,14 +472,10 @@ Cursor Objects
    kinds of placeholders: question marks (qmark style) and named placeholders
    (named style).
 
-   This example shows how to use parameters with qmark style:
+   Here's an example of both styles:
 
    .. literalinclude:: ../includes/sqlite3/execute_1.py
 
-   This example shows how to use the named style:
-
-   .. literalinclude:: ../includes/sqlite3/execute_2.py
-
    :meth:`execute` will only execute a single SQL statement. If you try to execute
    more than one statement with it, it will raise a Warning. Use
    :meth:`executescript` if you want to execute multiple SQL statements with one
@@ -633,7 +628,8 @@ Now we plug :class:`Row` in::
    ['date', 'trans', 'symbol', 'qty', 'price']
    >>> r['qty']
    100.0
-   >>> for member in r: print member
+   >>> for member in r:
+   ...     print member
    ...
    2006-01-05
    BUY
index c7c3979c507b2d8934dff698b362d9a4e26722f1..b51de26d225eaa0b6c459d0481cd8526748bc3b0 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -879,6 +879,7 @@ Kannan Vijayan
 Kurt Vile
 Norman Vine
 Frank Visser
+Johannes Vogel
 Niki W. Waibel
 Wojtek Walczak
 Charles Waldman
index 6b3fbc2ab4568131309e9eeeb6d5dbe0296d05d4..bea3571c0585e18a6f8be612f9088842077ddd4d 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -613,7 +613,8 @@ Tests
 Documentation
 -------------
 
-- Issue #13995: Fix errors in sqlite3's Cursor.rowcount documentation
+- Issues #13491 and #13995: Fix many errors in sqlite3 documentation.
+  Initial patch for #13491 by Johannes Vogel.
 
 - Issue #13402: Document absoluteness of sys.executable.