drop support for psycopg2 and pycurl
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 27 May 2008 12:50:05 +0000 (12:50 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 27 May 2008 12:50:05 +0000 (12:50 +0000)
269 files changed:
Makefile
PLCAPI.spec
psycopg2/AUTHORS [deleted file]
psycopg2/ChangeLog [deleted file]
psycopg2/INSTALL [deleted file]
psycopg2/LICENSE [deleted file]
psycopg2/MANIFEST [deleted file]
psycopg2/MANIFEST.in [deleted file]
psycopg2/PKG-INFO [deleted file]
psycopg2/README [deleted file]
psycopg2/ZPsycopgDA/DA.py [deleted file]
psycopg2/ZPsycopgDA/__init__.py [deleted file]
psycopg2/ZPsycopgDA/db.py [deleted file]
psycopg2/ZPsycopgDA/dtml/add.dtml [deleted file]
psycopg2/ZPsycopgDA/dtml/browse.dtml [deleted file]
psycopg2/ZPsycopgDA/dtml/edit.dtml [deleted file]
psycopg2/ZPsycopgDA/dtml/table_info.dtml [deleted file]
psycopg2/ZPsycopgDA/icons/bin.gif [deleted file]
psycopg2/ZPsycopgDA/icons/date.gif [deleted file]
psycopg2/ZPsycopgDA/icons/datetime.gif [deleted file]
psycopg2/ZPsycopgDA/icons/field.gif [deleted file]
psycopg2/ZPsycopgDA/icons/float.gif [deleted file]
psycopg2/ZPsycopgDA/icons/int.gif [deleted file]
psycopg2/ZPsycopgDA/icons/stable.gif [deleted file]
psycopg2/ZPsycopgDA/icons/table.gif [deleted file]
psycopg2/ZPsycopgDA/icons/text.gif [deleted file]
psycopg2/ZPsycopgDA/icons/time.gif [deleted file]
psycopg2/ZPsycopgDA/icons/view.gif [deleted file]
psycopg2/ZPsycopgDA/icons/what.gif [deleted file]
psycopg2/ZPsycopgDA/pool.py [deleted file]
psycopg2/debian/changelog [deleted file]
psycopg2/debian/control [deleted file]
psycopg2/debian/copyright [deleted file]
psycopg2/debian/rules [deleted file]
psycopg2/doc/ChangeLog-1.x [deleted file]
psycopg2/doc/HACKING [deleted file]
psycopg2/doc/SUCCESS [deleted file]
psycopg2/doc/TODO [deleted file]
psycopg2/doc/api-screen.css [deleted file]
psycopg2/doc/api/epydoc.css [deleted file]
psycopg2/doc/api/index.html [deleted file]
psycopg2/doc/api/private/__builtin__.list-class.html [deleted file]
psycopg2/doc/api/private/__builtin__.object-class.html [deleted file]
psycopg2/doc/api/private/__builtin__.type-class.html [deleted file]
psycopg2/doc/api/private/datetime.tzinfo-class.html [deleted file]
psycopg2/doc/api/private/epydoc.css [deleted file]
psycopg2/doc/api/private/exceptions.Exception-class.html [deleted file]
psycopg2/doc/api/private/exceptions.StandardError-class.html [deleted file]
psycopg2/doc/api/private/frames.html [deleted file]
psycopg2/doc/api/private/help.html [deleted file]
psycopg2/doc/api/private/index.html [deleted file]
psycopg2/doc/api/private/indices.html [deleted file]
psycopg2/doc/api/private/psycopg2-module.html [deleted file]
psycopg2/doc/api/private/psycopg2.DataError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.DatabaseError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.Error-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.IntegrityError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.InterfaceError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.InternalError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.NotSupportedError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.OperationalError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.ProgrammingError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.Warning-class.html [deleted file]
psycopg2/doc/api/private/psycopg2._psycopg-module.html [deleted file]
psycopg2/doc/api/private/psycopg2._psycopg.ISQLQuote-class.html [deleted file]
psycopg2/doc/api/private/psycopg2._psycopg.connection-class.html [deleted file]
psycopg2/doc/api/private/psycopg2._psycopg.cursor-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.extensions-module.html [deleted file]
psycopg2/doc/api/private/psycopg2.extras-module.html [deleted file]
psycopg2/doc/api/private/psycopg2.extras.DictConnection-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.extras.DictCursor-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.extras.DictRow-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.extras.SQL_IN-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.pool-module.html [deleted file]
psycopg2/doc/api/private/psycopg2.pool.AbstractConnectionPool-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.pool.PersistentConnectionPool-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.pool.PoolError-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.pool.SimpleConnectionPool-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.pool.ThreadedConnectionPool-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.psycopg1-module.html [deleted file]
psycopg2/doc/api/private/psycopg2.psycopg1.connection-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.psycopg1.cursor-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.tz-module.html [deleted file]
psycopg2/doc/api/private/psycopg2.tz.FixedOffsetTimezone-class.html [deleted file]
psycopg2/doc/api/private/psycopg2.tz.LocalTimezone-class.html [deleted file]
psycopg2/doc/api/private/toc-everything.html [deleted file]
psycopg2/doc/api/private/toc-psycopg2-module.html [deleted file]
psycopg2/doc/api/private/toc-psycopg2._psycopg-module.html [deleted file]
psycopg2/doc/api/private/toc-psycopg2.extensions-module.html [deleted file]
psycopg2/doc/api/private/toc-psycopg2.extras-module.html [deleted file]
psycopg2/doc/api/private/toc-psycopg2.pool-module.html [deleted file]
psycopg2/doc/api/private/toc-psycopg2.psycopg1-module.html [deleted file]
psycopg2/doc/api/private/toc-psycopg2.tz-module.html [deleted file]
psycopg2/doc/api/private/toc.html [deleted file]
psycopg2/doc/api/private/trees.html [deleted file]
psycopg2/doc/api/public/__builtin__.list-class.html [deleted file]
psycopg2/doc/api/public/__builtin__.object-class.html [deleted file]
psycopg2/doc/api/public/__builtin__.type-class.html [deleted file]
psycopg2/doc/api/public/datetime.tzinfo-class.html [deleted file]
psycopg2/doc/api/public/epydoc.css [deleted file]
psycopg2/doc/api/public/exceptions.Exception-class.html [deleted file]
psycopg2/doc/api/public/exceptions.StandardError-class.html [deleted file]
psycopg2/doc/api/public/frames.html [deleted file]
psycopg2/doc/api/public/help.html [deleted file]
psycopg2/doc/api/public/index.html [deleted file]
psycopg2/doc/api/public/indices.html [deleted file]
psycopg2/doc/api/public/psycopg2-module.html [deleted file]
psycopg2/doc/api/public/psycopg2.DataError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.DatabaseError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.Error-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.IntegrityError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.InterfaceError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.InternalError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.NotSupportedError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.OperationalError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.ProgrammingError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.Warning-class.html [deleted file]
psycopg2/doc/api/public/psycopg2._psycopg-module.html [deleted file]
psycopg2/doc/api/public/psycopg2.extensions-module.html [deleted file]
psycopg2/doc/api/public/psycopg2.extras-module.html [deleted file]
psycopg2/doc/api/public/psycopg2.extras.DictConnection-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.extras.DictCursor-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.extras.DictRow-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.extras.SQL_IN-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.pool-module.html [deleted file]
psycopg2/doc/api/public/psycopg2.pool.AbstractConnectionPool-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.pool.PersistentConnectionPool-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.pool.PoolError-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.pool.SimpleConnectionPool-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.pool.ThreadedConnectionPool-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.psycopg1-module.html [deleted file]
psycopg2/doc/api/public/psycopg2.psycopg1.connection-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.psycopg1.cursor-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.tz-module.html [deleted file]
psycopg2/doc/api/public/psycopg2.tz.FixedOffsetTimezone-class.html [deleted file]
psycopg2/doc/api/public/psycopg2.tz.LocalTimezone-class.html [deleted file]
psycopg2/doc/api/public/toc-everything.html [deleted file]
psycopg2/doc/api/public/toc-psycopg2-module.html [deleted file]
psycopg2/doc/api/public/toc-psycopg2._psycopg-module.html [deleted file]
psycopg2/doc/api/public/toc-psycopg2.extensions-module.html [deleted file]
psycopg2/doc/api/public/toc-psycopg2.extras-module.html [deleted file]
psycopg2/doc/api/public/toc-psycopg2.pool-module.html [deleted file]
psycopg2/doc/api/public/toc-psycopg2.psycopg1-module.html [deleted file]
psycopg2/doc/api/public/toc-psycopg2.tz-module.html [deleted file]
psycopg2/doc/api/public/toc.html [deleted file]
psycopg2/doc/api/public/trees.html [deleted file]
psycopg2/doc/async.txt [deleted file]
psycopg2/doc/extensions.html [deleted file]
psycopg2/doc/extensions.rst [deleted file]
psycopg2/examples/binary.py [deleted file]
psycopg2/examples/copy_from.py [deleted file]
psycopg2/examples/copy_to.py [deleted file]
psycopg2/examples/cursor.py [deleted file]
psycopg2/examples/dialtone.py [deleted file]
psycopg2/examples/dict.py [deleted file]
psycopg2/examples/dt.py [deleted file]
psycopg2/examples/encoding.py [deleted file]
psycopg2/examples/fetch.py [deleted file]
psycopg2/examples/lastrowid.py [deleted file]
psycopg2/examples/mogrify.py [deleted file]
psycopg2/examples/myfirstrecipe.py [deleted file]
psycopg2/examples/notify.py [deleted file]
psycopg2/examples/simple.py [deleted file]
psycopg2/examples/somehackers.jpg [deleted file]
psycopg2/examples/threads.py [deleted file]
psycopg2/examples/tz.py [deleted file]
psycopg2/examples/usercast.py [deleted file]
psycopg2/examples/whereareyou.jpg [deleted file]
psycopg2/lib/__init__.py [deleted file]
psycopg2/lib/extensions.py [deleted file]
psycopg2/lib/extras.py [deleted file]
psycopg2/lib/pool.py [deleted file]
psycopg2/lib/psycopg1.py [deleted file]
psycopg2/lib/tz.py [deleted file]
psycopg2/psycopg/adapter_asis.c [deleted file]
psycopg2/psycopg/adapter_asis.h [deleted file]
psycopg2/psycopg/adapter_binary.c [deleted file]
psycopg2/psycopg/adapter_binary.h [deleted file]
psycopg2/psycopg/adapter_datetime.c [deleted file]
psycopg2/psycopg/adapter_datetime.h [deleted file]
psycopg2/psycopg/adapter_list.c [deleted file]
psycopg2/psycopg/adapter_list.h [deleted file]
psycopg2/psycopg/adapter_mxdatetime.c [deleted file]
psycopg2/psycopg/adapter_mxdatetime.h [deleted file]
psycopg2/psycopg/adapter_pboolean.c [deleted file]
psycopg2/psycopg/adapter_pboolean.h [deleted file]
psycopg2/psycopg/adapter_qstring.c [deleted file]
psycopg2/psycopg/adapter_qstring.h [deleted file]
psycopg2/psycopg/config.h [deleted file]
psycopg2/psycopg/connection.h [deleted file]
psycopg2/psycopg/connection_int.c [deleted file]
psycopg2/psycopg/connection_type.c [deleted file]
psycopg2/psycopg/cursor.h [deleted file]
psycopg2/psycopg/cursor_int.c [deleted file]
psycopg2/psycopg/cursor_type.c [deleted file]
psycopg2/psycopg/microprotocols.c [deleted file]
psycopg2/psycopg/microprotocols.h [deleted file]
psycopg2/psycopg/microprotocols_proto.c [deleted file]
psycopg2/psycopg/microprotocols_proto.h [deleted file]
psycopg2/psycopg/pgtypes.h [deleted file]
psycopg2/psycopg/pgversion.h [deleted file]
psycopg2/psycopg/pqpath.c [deleted file]
psycopg2/psycopg/pqpath.h [deleted file]
psycopg2/psycopg/psycopg.h [deleted file]
psycopg2/psycopg/psycopgmodule.c [deleted file]
psycopg2/psycopg/python.h [deleted file]
psycopg2/psycopg/typecast.c [deleted file]
psycopg2/psycopg/typecast.h [deleted file]
psycopg2/psycopg/typecast_array.c [deleted file]
psycopg2/psycopg/typecast_basic.c [deleted file]
psycopg2/psycopg/typecast_binary.c [deleted file]
psycopg2/psycopg/typecast_binary.h [deleted file]
psycopg2/psycopg/typecast_builtins.c [deleted file]
psycopg2/psycopg/typecast_datetime.c [deleted file]
psycopg2/psycopg/typecast_mxdatetime.c [deleted file]
psycopg2/scripts/buildtypes.py [deleted file]
psycopg2/scripts/ext2html.py [deleted file]
psycopg2/scripts/makedocs.py [deleted file]
psycopg2/scripts/maketypes.sh [deleted file]
psycopg2/setup.cfg [deleted file]
psycopg2/setup.py [deleted file]
psycopg2/tests/dbapi20.py [deleted file]
psycopg2/tests/extras_dictcursor.py [deleted file]
psycopg2/tests/test_psycopg2_dbapi20.py [deleted file]
psycopg2/tests/types_basic.py [deleted file]
pycurl/COPYING [deleted file]
pycurl/ChangeLog [deleted file]
pycurl/INSTALL [deleted file]
pycurl/MANIFEST.in [deleted file]
pycurl/Makefile [deleted file]
pycurl/PKG-INFO [deleted file]
pycurl/README [deleted file]
pycurl/TODO [deleted file]
pycurl/doc/callbacks.html [deleted file]
pycurl/doc/curlmultiobject.html [deleted file]
pycurl/doc/curlobject.html [deleted file]
pycurl/doc/pycurl.html [deleted file]
pycurl/examples/basicfirst.py [deleted file]
pycurl/examples/file_upload.py [deleted file]
pycurl/examples/linksys.py [deleted file]
pycurl/examples/retriever-multi.py [deleted file]
pycurl/examples/retriever.py [deleted file]
pycurl/examples/sfquery.py [deleted file]
pycurl/examples/xmlrpc_curl.py [deleted file]
pycurl/python/curl/__init__.py [deleted file]
pycurl/setup.py [deleted file]
pycurl/setup_win32_ssl.py [deleted file]
pycurl/src/Makefile [deleted file]
pycurl/src/pycurl.c [deleted file]
pycurl/tests/test.py [deleted file]
pycurl/tests/test_cb.py [deleted file]
pycurl/tests/test_debug.py [deleted file]
pycurl/tests/test_getinfo.py [deleted file]
pycurl/tests/test_gtk.py [deleted file]
pycurl/tests/test_internals.py [deleted file]
pycurl/tests/test_memleak.py [deleted file]
pycurl/tests/test_multi.py [deleted file]
pycurl/tests/test_multi2.py [deleted file]
pycurl/tests/test_multi3.py [deleted file]
pycurl/tests/test_multi4.py [deleted file]
pycurl/tests/test_multi5.py [deleted file]
pycurl/tests/test_multi6.py [deleted file]
pycurl/tests/test_multi_vs_thread.py [deleted file]
pycurl/tests/test_post.py [deleted file]
pycurl/tests/test_post2.py [deleted file]
pycurl/tests/test_post3.py [deleted file]
pycurl/tests/test_stringio.py [deleted file]
pycurl/tests/test_xmlrpc.py [deleted file]
pycurl/tests/util.py [deleted file]

index 4d12508..276cc05 100644 (file)
--- a/Makefile
+++ b/Makefile
 # Metafiles
 init := PLC/__init__.py PLC/Methods/__init__.py
 
-# Python modules
-# see PLCAPI.spec for the settings of modules
-# default is : no extra module get built
-
-## Temporarily until we can kill the Fedora Core 2 build
-#curl_vernum := $(shell printf %d 0x$(shell curl-config --vernum))
-#pycurl_vernum := $(shell printf %d 0x070d01) # 7.13.1
-#pycurl_incompatnum := $(shell printf %d 0x071000) # 7.16.0
-#ifeq ($(shell test $(curl_vernum) -ge $(pycurl_vernum) && echo 1),1)
-#ifeq ($(shell test $(curl_vernum) -ge $(pycurl_incompatnum) && echo 0),1)
-#modules += pycurl
-#endif
-#endif
-
-modules-install := $(foreach module, $(modules), $(module)-install)
-modules-clean := $(foreach module, $(modules), $(module)-clean)
-
-# Other stuff
-subdirs := doc php php/xmlrpc
+# python-pycurl and python-psycopg2 avail. from fedora 5
+# we used to ship our own version of psycopg2 and pycurl, for fedora4
+# starting with 5.0, support for these two modules is taken out
+
+# Other stuff - doc not implicit, it's redone by myplc-docs
+subdirs := php php/xmlrpc
 
 # autoconf compatible variables
-DESTDIR := /plc/root
+DESTDIR := /
 datadir := /usr/share
 bindir := /usr/bin
 
 PWD := $(shell pwd)
 
-all: $(init) $(subdirs) $(modules)
+all: $(init) $(subdirs) 
        python setup.py build
 
-install: $(modules-install)
+install: 
        python setup.py install \
            --install-purelib=$(DESTDIR)/$(datadir)/plc_api \
            --install-scripts=$(DESTDIR)/$(datadir)/plc_api \
@@ -48,25 +35,12 @@ install: $(modules-install)
        install -D -m 755 php/xmlrpc/xmlrpc.so $(DESTDIR)/$(shell php-config --extension-dir)/xmlrpc.so
        install -D -m 755 refresh-peer.py $(DESTDIR)/$(bindir)/refresh-peer.py
 
-$(subdirs): $(init) $(modules)
+$(subdirs): $(init)
 
 $(subdirs): %:
        $(MAKE) -C $@
 
-$(modules):
-        # Install in the current directory so that we can import it while developing
-       cd $@ && \
-           python setup.py build && \
-           python setup.py install_lib --install-dir=$(PWD)
-
-$(modules-install): %-install:
-       cd $* && \
-           python setup.py install_lib --install-dir=$(DESTDIR)/$(datadir)/plc_api
-
-$(modules-clean): %-clean:
-       cd $* && python setup.py clean && rm -rf build
-
-clean: $(modules-clean)
+clean: 
        find . -name '*.pyc' | xargs rm -f
        rm -f $(INIT)
        for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir clean ; done
@@ -77,30 +51,6 @@ index: $(init)
 index-clean:
        rm $(init)
 
-tags:
-       find . '(' -name '*.py' -o -name '*.sql' -o -name '*.php' -o -name Makefile ')' | xargs etags
-
-########## make sync PLCHOST=hostname
-ifdef PLCHOST
-ifdef VSERVER
-PLCSSH:=root@$(PLCHOST):/vservers/$(VSERVER)
-endif
-endif
-
-LOCAL_RSYNC_EXCLUDES   := --exclude '*.pyc' 
-RSYNC_EXCLUDES         := --exclude .svn --exclude CVS --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
-RSYNC_COND_DRY_RUN     := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
-RSYNC                  := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
-
-sync:
-ifeq (,$(PLCSSH))
-       echo "sync: You must define PLCHOST and VSERVER on the command line"
-       echo " e.g. make sync PLCHOST=private.one-lab.org VSERVER=myplc01" ; exit 1
-else
-       +$(RSYNC) PLC planetlab5.sql migrations $(PLCSSH)/usr/share/plc_api/
-       ssh root@$(PLCHOST) vserver $(VSERVER) exec apachectl graceful
-endif
-
 ####################
 # All .py files in PLC/
 
@@ -131,7 +81,32 @@ PLC/Methods/__init__.py:
 
 force:
 
-.PHONY: all install force clean index tags $(subdirs) $(modules)
+.PHONY: all install force clean index tags $(subdirs)
+
+#################### devel tools
+tags:
+       find . '(' -name '*.py' -o -name '*.sql' -o -name '*.php' -o -name Makefile ')' | xargs etags
+
+########## make sync PLCHOST=hostname
+ifdef PLCHOST
+ifdef VSERVER
+PLCSSH:=root@$(PLCHOST):/vservers/$(VSERVER)
+endif
+endif
+
+LOCAL_RSYNC_EXCLUDES   := --exclude '*.pyc' 
+RSYNC_EXCLUDES         := --exclude .svn --exclude CVS --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
+RSYNC_COND_DRY_RUN     := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
+RSYNC                  := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
+
+sync:
+ifeq (,$(PLCSSH))
+       echo "sync: You must define PLCHOST and VSERVER on the command line"
+       echo " e.g. make sync PLCHOST=private.one-lab.org VSERVER=myplc01" ; exit 1
+else
+       +$(RSYNC) PLC planetlab5.sql migrations $(PLCSSH)/usr/share/plc_api/
+       ssh root@$(PLCHOST) vserver $(VSERVER) exec apachectl graceful
+endif
 
 #################### convenience, for debugging only
 # make +foo : prints the value of $(foo)
index 57b064c..95317d7 100644 (file)
@@ -55,23 +55,15 @@ through Apache mod_python.
 
 %build
 # python-pycurl and python-psycopg2 avail. from fedora 5
-# make sure to check build/<pldistro>/plc.pkgs
-if [ "%{distrorelease}" -le 4 ] ; then
-    modules="psycopg2 pycurl"
-else
-    modules=""
-fi
+# we used to ship our own version of psycopg2 and pycurl, for fedora4
+# starting with 5.0, support for these two modules is taken out
+# 
 # Build __init__.py metafiles and PHP API. 
-%{__make} %{?_smp_mflags} subdirs="php php/xmlrpc" modules="$modules"
+%{__make} %{?_smp_mflags}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-if [ "%{distrorelease}" -le 4 ] ; then
-    modules="psycopg2 pycurl"
-else
-    modules=""
-fi
-%{__make} %{?_smp_mflags} install DESTDIR="$RPM_BUILD_ROOT" datadir="%{_datadir}" bindir="%{_bindir}" modules="$modules"
+%{__make} %{?_smp_mflags} install DESTDIR="$RPM_BUILD_ROOT" datadir="%{_datadir}" bindir="%{_bindir}"
 
 # Install shell symlink
 mkdir -p $RPM_BUILD_ROOT/%{_bindir}
diff --git a/psycopg2/AUTHORS b/psycopg2/AUTHORS
deleted file mode 100644 (file)
index 44c77fc..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-Main authors:
-  Federico Di Gregorio <fog@debian.org>
-
-For the win32 port:
-  Jason Erickson <jerickso@indian.com> (most of his changes are still in 2.0)
-
-Additional Help:
-  
diff --git a/psycopg2/ChangeLog b/psycopg2/ChangeLog
deleted file mode 100644 (file)
index b273e20..0000000
+++ /dev/null
@@ -1,1219 +0,0 @@
-2006-09-02  Federico Di Gregorio  <fog@initd.org>
-
-       * Release 2.0.5.1.
-
-       * psycopg/cursor_type.c: applied patch from Jason Erickson to
-       build on MSVC and older gcc.
-
-2006-09-01  Federico Di Gregorio  <fog@initd.org>
-
-       * Release 2.0.5.
-
-       * Fixed patch from #119, see tracker for details.
-
-       * Preparing release 2.0.5.
-
-       * psycopg/psycopgmodule.c: fixed filling of connection errors
-       to include OperationalError.
-
-       * setup.py: removed pydatetime option from initialize_options
-       to make sure that the value in setup.cfg is used.
-
-       * psycopg/psycopgmodule.c: applied patch from jdahlin (#120)
-       to have .connect() accept either a string or int as the port
-       parameter.
-
-       * psycopg/adapter_binary.c: applied patch from jdahlin (#119)
-       to fix the segfault on empty binary buffers.
-
-       * psycopg/connection_type.c: added .status attribute to expose
-       the internal status.
-
-       * psycopg/pqpath.c: applied patch from intgr (#117) to fix
-       segfault on null queries.
-
-       * psycopg/cursor_type.c: applied patch from intgr (#116) to
-       fix bad keyword naming and segfault in .executemany().
-
-       * ZPsycopgDA/DA.py: applied ImageFile patch from Charlie
-       Clark.
-
-       * lib/pool.py: applied logging patch from Charlie Clark.
-       It will probably get a makeup and be moved to the top-level
-       module later.
-
-2006-08-02  Federico Di Gregorio  <fog@initd.org>
-
-       * Release 2.0.4.
-
-       * Fixed bug in float conversion (check for NULL string was
-       erroneously removed in 2.0.3!)
-
-2006-07-31  Federico Di Gregorio  <fog@initd.org>
-
-       * Release 2.0.3.
-
-       * psycopg/cursor_type.c: applied patch from jbellis (#113) to
-       allow column selection in .copy_from().
-
-       * psycopg/psycopgmodule.c: fixed memory leak in custom exceptions
-       (applied patch from #114).
-
-2006-07-26  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/adapter_datetime.c (pydatetime_str): fixed error
-       in conversion of microseconds for intervals and better algo
-       (thanks to Mario Frasca.)
-
-2006-06-18  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/adapter_binary.c: same as below.
-
-        * psycopg/adapter_qstring.c: does not segfault anymore if 
-       .getquoted() is called without preparing the qstring with 
-       the connection.
-
-2006-06-15  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/typecast_basic.c: fixed problem with bogus
-       conversion when importing gtk (that was crazy, I didn't
-       understand why it happened but the new code just fixes it.)
-
-       * ZPsycopgDA/db.py: better type analisys, using an hash
-       instead of a series of if (variation on patch from Charlie
-       Clark.)
-
-2006-06-11  Federico Di Gregorio  <fog@initd.org>
-
-       * Release 2.0.2.
-
-       * psycopg/typecast_array.c (typecast_array_cleanup): fixed a
-       problem with typecast_array_cleanup always returning the new
-       string length shorter by 1 (Closes: #93).
-
-       * psycopg/adapter_binary.c: as below.
-
-       * psycopg/adapter_qstring.c: wrapped #warning in #ifdef __GCC__
-       because other compilers don't have it and it will just break
-       compilation (patch from jason, our great win32 builder).
-
-       * psycopg/adapter_list.c: applied patch to adapt an empty list
-       into an empty array and not to NULL (from iGGy, closes: #108).
-
-       * psycopg/cursor_type.c: applied patch from wkv to avoid
-       under-allocating query space when the parameters are not of the
-       right type (Closes: #110).
-
-       * psycopg/connection_int.c: applied patch from wkv to avoid off 
-       by one allocation of connection encoding string (Closes: #109).
-
-2006-06-09  Federico Di Gregorio  <fog@initd.org>
-
-        * Release 2.0.1.
-
-       * Fixed some buglets in ZPsycopgDA (was unable to load due
-       to shorter version number in psycopg module.)
-
-2006-06-08  Federico Di Gregorio  <fog@initd.org>
-       
-       * Release 2.0.
-
-       * ZPsycopgDA/DA.py: removed Browse table for 2.0 release; we'll
-       add it back later.
-
-2006-05-26  Federico Di Gregorio  <fog@initd.org>
-
-       * Applied better PostgreSQL patch from AA.
-
-2006-05-24  Federico Di Gregorio  <fog@initd.org>
-
-       * Enabled 8.1.4 security fix only when the version is >= 8.1.4, fall
-       back to old code otherwise.
-       
-       * psycopg/adapter_qstring.c: now quote using PQescapeStringConn if
-       available. 
-
-       * psycopg/adapter_binary.c: now quote using PQescapeByteaConn if
-       available. 
-
-2006-04-38  Federico Di Gregorio  <fog@initd.org>
-
-       * setup.py: fixed little problem with mx_include_dir as suggested
-       by kvc (this closes #102).
-
-2006-04-24  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/adapter_pboolean.c: added the possibility to format boolean
-       values as "true" and "false" instead of "'t'" and "'f'".
-
-2006-03-08  Federico Di Gregorio  <fog@initd.org>
-
-       * lib/extras.py: added .next() to DictCursot to support iteration.
-
-2006-03-02  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/typecast_array.c (typecast_array_tokenize): removed cast
-       to build without warnings on 64 bit arches.
-
-2006-02-11  Federico Di Gregorio  <fog@initd.org>
-
-       * Release 2.0 beta 8.
-
-       * psycopg/config.h: applied patch from Jason to fix handle leak on
-       win32, as documented in #92.
-
-2006-02-11  Federico Di Gregorio  <fog@initd.org>
-
-       * Release 2.0 beta 7.
-
-       * psycopg/psycopgmodule.c: applied fix for memory overflow in
-       connect() (reported by solt, #91.)
-
-       * setup.py: applied patch from lbruno.
-
-2006-01-11  Federico Di Gregorio  <fog@initd.org>
-
-       * setup.py: does not report an error in pg_config unless the pg_config
-       was explicitly set (allows for building with old options.) 
-
-2006-01-06  Daniele Varrazzo  <daniele.varrazzo@gmail.com>
-
-       * setup.py: libpq.dll not used anymore. win32 setup uses pg_config too.
-
-2006-01-05  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/psycopgmodule.c (psyco_set_error): added function to set extra
-       parameters on ProgrammingError instances. Also modified all occurances of
-       PyErr_SetString(ProgrammingError,...) to psycopg_set_error(). 
-
-       * setup.{cfg,py}: we now use pg_config to locate PostgreSQL libraries
-       and headers (modified patch from lbruno, see #70.)
-
-2006-01-01  Federico Di Gregorio  <fog@initd.org>
-
-       * Preparing release 2 beta 7.
-
-       * MANIFEST.in: we now distrbute pre-built documentation (still need
-       to add to setup.py the code necessary to build docs as part of the
-       build process.)
-
-       * psycopg/connection_int.c: PostgreSQL encoding names are now force
-       uppercase (after all PostgreSQL documentation reports them this way.)
-
-2005-12-11 Federico Di Gregorio <fog@initd.org>
-
-       * psycopg/typecast_array.c (typecast_array_cleanup): added functio
-       to cleanup the "[...]=" part of an array result. This probably will
-       need some more work for nested arrays but it fixed every test I was
-       able to write. (Closes: #80)
-
-2005-12-11  Federico Di Gregorio  <fog@initd.org>
-
-       * setup.py: half-applied patch from Tavis to specify mx_include_dir
-       in setup.cfg.
-
-       * psycopg/typecast.c (typecast_parse_time): cz limit in the while
-       loop is 6, not 5. This solve the problem with "fractionary" time zones
-       and fixes #78. 
-
-2005-12-06  Federico Di Gregorio  <fog@initd.org>
-
-       * lib/extras.py: added .callproc() to DictCursor as suggested
-       by Philip Semanchuk.
-
-2005-11-29  Federico Di Gregorio  <fog@initd.org>
-
-       * MANIFEST.in: added docs/async.txt. (Closes: #75)
-
-2005-11-26  Daniele Varrazzo  <daniele.varrazzo@gmail.com>
-
-       * psycopg/psycopgmodule.c: fixed exceptions refcount.
-
-       * Fixed lots of doctrings and added Epydoc-generated docs support.
-
-2005-11-24  Federico Di Gregorio  <fog@initd.org>
-
-       * sandbox: added all the test and creash-me files to the repository.
-
-       * psycopg/typecast.c (typecast_dealloc): now directly calls
-       PyObject_Del to avoid to segfault.
-
-2005-11-20  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/typecast.c: fixed problem with microseconds conversion by
-       applying slightly modified patch from Ronnie Mackay.
-
-2005-11-19  Federico Di Gregorio  <fog@initd.org>
-
-       * lib/extensions.py: COMMITED -> COMMITTED. (Closes: #73)
-
-       * doc/extensions.rst: included Daniele's work after minor cosmetic changes
-       like using the new constants instead of numbers for transaction isolation
-       levels.
-
-2005-11-17  Federico Di Gregorio  <fog@initd.org>
-
-       * ZPsycopgDA/pool.py: fixed connections leak by using the new name
-       (PersistentConnectionPool) for the old connection pool class.
-
-2005-11-16  Federico Di Gregorio  <fog@initd.org>
-
-       * Preparing release 2.0 beta 6.
-       
-       * psycopg/adapter_mxdatetime.c: fixed all problems with mx conversions.
-       
-       * psycopg/typecast.c: now the timezone is set correctly even if there
-       are no microseconds and/or the offset is 0;
-
-       * examples/encoding.py: fixed example by using python utf8 encoding for
-       the whole file.
-
-       * lib/__init__.py: very nice hack from Harald Armin Massa to allow
-       py2exe and similar tools to do their work without problems.
-
-2005-11-15  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/psycopgmodule.c: now bails out with correct exception when one
-       of the needed modules can't be imported (should fix #32.)
-
-2005-11-14  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/typecast.c: added typecast_parse_date and typecast_parse_time
-       functions to do locale-safe date/time parsing. This would probably also
-       speed-up psycopg a little bit.
-
-2005-11-07  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/pqpath.c: fixed problem with uninitialized value (all this was
-       started by replacing calloc() calls with PyMem_Malloc().)
-
-2005-11-04  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/typecast.c: a lot of changes:
-         - made typecast a new-style type
-         - removed coerce code and implemented the richcompare protocol that
-           allows to compare objects of different types
-         - much better __cmp__ method that allows to compare two typecast
-           objects and returns True if any two of the mapped oids match
-         - any object that can be used as an int works as right-hand operand
-           in __cmp__ operations 
-
-       * psycopg/typecast_datetime.c: now typecast_PYINTERVAL_cast limit the
-       scan to 'len' characters in the string (should fix #65.)
-
-2005-11-03  Federico Di Gregorio  <fog@initd.org>
-
-       * Applied patch from Daniele Varazzo to enable Decimal on Python
-       2.3 when the module is available (run-time check, nice.)
-       
-2005-10-26  Federico Di Gregorio  <fog@initd.org>
-
-       * setup.cfg: added include_dirs line for SUSE 9.3.
-
-2005-10-22  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/cursor_type.c: added support for named cursors:
-         - .fetchXXX() methods now execute a FETCH if the cursor is named
-         - .execute() executes a DECLARE if the cursor is named
-         - .execute() fails if a named cursor is used in autocommit
-         - .executemany() can't be called on named cursors
-         - .scroll() executes a MOVE if the cursor is named
-         - .close() executes a CLOSE if the cursor is named
-         Also, a "transaction mark" was added to both the connection and the
-         cursor and an exception is raised when using a named cursor unless the
-         two marks correspond.
-
-       * psycopg/connection_int.c: snprintf->PyOS_snprintf.
-
-       * psycopg/psycopgmodule.c: snprintf->PyOS_snprintf.
-
-       * psycopg/cursor_type.c: changed self->query type from C string to
-       PyObject* to better manage queries in named cursors.
-
-       * psycopg/psycopgmodule.c: cleaned up exception names (now the errors
-       is printed as psycopg2.Error and not as the confusing
-       psycopg2._psycopg.Error.)
-
-2005-10-20  Federico Di Gregorio  <fog@initd.org>
-
-       * lib/pool.py: renamed ThreadedConnectionPool to PersistentConnectionPool
-       and added a connection pool that allows multiple connections per thread
-       as ThreadedConnectionPool (courtesy of Daniele Varrazzo.)
-
-2005-10-19  Federico Di Gregorio  <fog@initd.org>
-
-       * Releasing 2.0 beta 5.
-       
-       * psycopg/adapter_mxdatetime.c: reverted to old strftime method to format
-       mx.DateTime objects; the new method didn't worked in some corner-cases.
-       This makes impossible to have more than 2 decimal places for seconds but
-       at least we get the time right every time.
-
-2005-10-18  Federico Di Gregorio  <fog@initd.org>
-
-       * NOTIFY is back end working.
-
-       * psycopg/connection_type.c: fixed problem with initialization of
-       notifies list (also fixed small memory leak in connection dealloc.)
-
-       * examples/notify.py: added NOTIFY example.
-
-       * psycopg/cursor_type.c: added per-cursor type-casters dictionaries.
-
-2005-10-18  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/typecast.c: temporary fix to typecasting objects to return
-       False for any comparaison except an integer in self.values (i.e., we
-       don't raise an exception anymore on a coerce error.) Epydoc is now
-       happy.
-
-       * psycopg/config.h: ZETA config.h patch from Charlie Clark.
-
-       * examples/threads.py: fixed small typo: psycopg -> psycopg2.
-
-       * Big cleanup of unsigned chars to tame gcc 4.
-
-       * Big cleanup of module names (i.e., psycopg2._psycopg everywhere.)
-       
-       * psycopg/config.h: added fake localtime_r for platforms missing it
-
-       * psycopg/cursor_type.c: cursors now have a FixedOffsetTimezone
-       tzinfo_factory by default.
-
-       * psycopg/adapter_datetime.c: added tzinfo argument to psycopg2.Time and
-       psycopg2.Timestamp. Also now TimestampFromTicks sets the tzinfo object
-       to psycopg2.tz.LOCAL.
-
-2005-10-17  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/adapter_datetime.c: we now use localtime() instead of gmtime()
-       to accound for the local time-zone in timestamps.
-
-       * psycopg/connection_type.c: fixed docstring for .cursor().
-
-       * psycopg/psycopgmodule.c: added useful docstring for .connect().
-
-2005-10-08  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/connection_type.c: isolation level upper bound set to 2.
-
-       * lib/psycopg1.py: explicitly set isolation level to 2 on .connect()
-       to mimic psycopg 1 behaviour.
-
-       * psycopg/connection_int.c: now set isolation level from
-       default_transaction_isolation backend environment value.
-
-       * psycopg/pqpath.c: removed serialization level 3: now everybody
-       (except me) has to use the mnemonics defined in psycopg2.extensions.
-
-       * lib/extensions.py: Added mnemonics for serialization levels.
-
-2005-10-02  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (psyco_curs_callproc): applied callproc
-       patch from Matt Goodall (added a check on _psyco_curs_execute
-       return value and substituted malloc/free with PyMem versions.) 
-
-2005-10-01  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/connection_int.c: fixed segfault by moving PyErr_Format
-       after GIL acquisition (closes: #50).
-
-       * psycopg/connection_type.c: applied patch from Matt Goodall to
-       fix some doc strings.
-
-2005-09-23  Federico Di Gregorio  <fog@debian.org>
-
-       * lib/pool.py: applied patch from piro to avoid the scan of the
-       whole connection array on getconn().
-
-2005-09-12  Federico Di Gregorio  <fog@initd.org>
-
-       * lib/pool.py: Applied psycopg->psycopg2 patch to from bug #35.
-
-       * ZpsycopgDA/db.py: fixed problem with OperationalError that
-       resulted in cryptic message to Zope users ("'OperationalError' is
-       not defined".)
-       
-2005-08-23  Federico Di Gregorio  <fog@debian.org>
-
-       * setup.py: applied patch from Daniele Varrazzo to avoid segfaults
-       when compiling with migw for Python 2.4.x.
-
-       * psycopg/adapter_mxdatetime.c (mxdatetime_str): ported code from 1.1.x
-       to convert mxDateTime object preserving the precision of fractional
-       seconds.
-
-2005-08-22  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/*.py: psycopg -> psycopg2. 
-
-       * setup.py: modified to install the module components under
-       psycopg2 on windows too (thanks to Daniele Varrazzo.)
-
-2005-08-07  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/config.h: added __sun__ to the symbols checked for round()
-
-2005-07-21  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/adapter_datetime.c (psyco_XXXFromTicks): fixed the 1900
-       years offset reported by Jeroen van Dongen (see ticket #33). 
-
-2005-07-17  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 2.0 beta 4.
-
-       * lib/extras.py (DictConnection.cursor): added DictConnection to
-       make easier to retrieve data in DictRows.
-
-2005-06-24  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/typecast_datetime.c (typecast_PYINTERVAL_cast): applied patch
-       from Geert Jansen to fix interval bug due to overflow.
-
-2005-06-18  Federico Di Gregorio  <fog@initd.org>
-
-       * setup.cfg: some clarifications and include_dirs example for Mandrake.
-       
-       * ZPsycopgDA/DA.py: DTMLFile -> HTMLFile everywhere to fix zope
-       cut&paste problems.
-       
-       * MANIFEST.in: added missing files to do bdist_rpm.
-       
-       * lib/psycopg1.py: fixed .dictfetchrow() to return None if fetchone()
-       returns None instead of raising an exception.
-       
-       * ZPsycopgDA/icons: replaced corrupted icons with good ones. 
-
-2005-06-13  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/psycopgmodule.c (psyco_connect): changed the port keyword
-       parameter type to int (instead of string); this should fix #23.
-       
-       * psycopg/cursor_type.c (_psyco_curs_execute): now checks for
-       empty queries and raise a ProgrammingError if appropriate (closes:
-       #24).
-       
-       * setup.py: psycopg module renamed to psycopg2.
-
-2005-06-02  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (_psyco_curs_execute): fixed segfault when
-       not passing string or unicode to .execute().
-
-2005-06-01  Federico Di Gregorio  <fog@debian.org>
-
-       * examples/fetch.py: added example about using DECLARE CURSOR.
-
-       * psycopg/adapter_datetime.c (psyco_TimestampFromTicks): "Hmmm,
-       looks like someone forgot that C expects months to start counting
-       from 0, but the Python date routines start counting from 1." That
-       was me: fixed.
-
-2005-05-31  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (_psyco_curs_execute): if a
-       UnicodeEncodeError is raised during the converion of a unicode
-       query we let it propagate insead of segfaulting.
-       
-2005-5-27  Federico Di Gregorio,  <fog@lana.initd.org>
-
-       * tests/types_basic.py: fixed float and binary tests.
-
-2005-05-26  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 2.0b3.
-
-       * ZPsycopgDA/db.py (DB.convert_description): isolated description
-       conversion (and fixed the conversion as per #18).
-
-       * ZPsycopgDA/DA.py: fixed again; this time Zope should work for
-       real. :/  Also fixed the type-casters (psycopg 2 added the extra
-       cursor parameter) as reported in #18.
-
-       * psycopg/psycopgmodule.c (init_psycopg): fixed Python 2.2 build. 
-
-2005-05-19  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 2.0b2.
-       
-       * lib/extras.py (DictRow): Some extra methods for DictRow.
-
-       * psycopg/cursor_type.c (_psyco_curs_execute): added explict check
-       to avoid using None as bound variables (very importand for cursor
-       subclasses calling cursor.execute(self, query, None).
-
-2005-05-18  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py (ALLOWED_PSYCOPG_VERSIONS): updated to work
-       with 2.0b2 only (will support only the exact version untill final
-       2.0 release.)
-
-       * setup.py: Applied combined patch from Daniele Varrazzo and Jason
-       Erickson to build on win32 using MSVC or mingw.
-
-2005-05-15  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/microprotocols.c (microprotocols_adapt): fixed memory
-       leak on None as suggested by gh (closes: #16).
-
-2005-05-10  Federico Di Gregorio  <fog@debian.org>
-
-       * lib/extras.py (DictRow): we now save a reference to the index
-       itself and not to the cursor to avoid problems while accessing
-       DictRow objects after reusing the cursor for a different query
-       (using  Kevin Jacobs db_row would be much better but DictRow is
-       just an example, right?)
-
-2005-05-09  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 2.0 beta 1.
-
-       * psycopg/typecast_datetime.c (typecast_PYDATETIME_cast): fixed a
-       typo (pyDateTimeModuleP->pyDateTimeTypeP) that was causing errors
-       with infinite datetime values.
-
-       * psycopg/adapter_binary.c (binary_str): Py_XINCREF on the buffer
-       that can be NULL on error.
-
-       * psycopg/typecast_binary.*: applied slightly modified
-       chunk/buffer object patch to allow round-trip of buffer objects
-       (BYTEA columns.) 
-
-       * psycopg/cursor_type.c (psyco_curs_executemany): applied slightly
-       fixed patch from wrobell to allow iterators in .executemany().
-
-2005-04-18  Federico Di Gregorio  <fog@debian.org>
-
-       * MANIFEST.in: included debian directory.
-
-2005-04-10  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/adapter_list.*: added list adapter. 
-
-       * psycopg/microprotocols.c (microprotocol_getquoted): moved
-       _mogrify_getquoted into utility function in the microprotocols
-       library.
-
-       * setup.py: Added extensive error message on missing datetime
-       headers.
-
-       * Applied mingw patch from Daniele Varazzo. 
-
-2005-04-03  Federico Di Gregorio  <fog@debian.org>
-
-       * lib/psycopg1.py (connection.autocommit): added compatibility
-       .autocommit() method.
-
-       * psycopg/psycopgmodule.c (psyco_connect): factory ->
-       connection_factory.
-
-       * lib/psycopg1.py: added psycopg 1.1.x compatibility module.
-
-2005-03-29  Federico Di Gregorio  <fog@debian.org>
-
-       * Applied patch to fix tuple count.
-       
-       * psycopg/pqpath.c (pq_is_busy): Staring from bug report from
-       Jason Erickson fixed segfaults due to calling Python function
-       without holding the GIL.
-2005-03-24  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/adapter_binary.c (binary_escape): propagated Andrea's
-       fix to binary adapter.
-
-       * psycopg/adapter_qstring.c (qstring_quote): applied patch from
-       Andrea Arcangeli to fix allocation failures (>4Gb) on 64 bit
-       arches.
-
-       * psycopg/typecast_array.c (typecast_array_tokenize): much better
-       tokenization code.
-
-2005-03-23  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_basic.c: all the basic casters now respect the
-       passed string length.
-
-       * psycopg/typecast.c (typecast_cast): set curs->caster to self
-       during the type-casting.
-
-       * psycopg/cursor_type.c: added "typecaster" attribute to the
-       cursor (this is safe, cursors can't be shared among threads and
-       the attribute is RO.)
-
-2005-03-22  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_array.c: added some more structure to implement
-       array typecasting.
-
-       * scripts/buildtypes.py: new version to include array data.
-
-2005-03-15  Federico Di Gregorio  <fog@debian.org>
-
-       * lib/extensions.py: Added AsIs import.
-
-2005-03-12  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor.h: removed "qattr", not used anymore and added
-       "cast", holding the typecaster currently in use.
-
-       * Release 1.99.13.
-
-       * psycopg/cursor_type.c (psyco_curs_executemany): implemented as a
-       wrapper to extract python arguments and then call
-       _psyco_curs_execute().
-
-       * psycopg/cursor_type.c (_psyco_curs_execute): splitted away
-       python argument parsing from the real execute code, to later allow
-       for .executemany().
-
-       * psycopg/cursor_type.c (_psyco_curs_buildrow_fill): modified to
-       call typecast_cast().
-       
-       * psycopg/typecast.c (typecast_call/typecast_cast): modified
-       typecast_call to use the new typecast_cast that avoids one string
-       conversion on every cast.
-
-2005-03-04  Federico Di Gregorio  <fog@initd.org>
-
-       * Release 1.99.12.1.
-
-       * psycopg/adapter_asis.c (asis_str): changed call to PyObject_Repr
-       to PyObject_Str to avoid problems with long integers.
-
-2005-03-03  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast.h: added array casting functions.
-
-       * scripts/maketypes.sh: does not generate pgversion.h anymore. 
-
-       * Updated all examples for the release.
-
-2005-03-02  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.99.12.
-       
-       * psycopg/adapter_*.c: added __conform__ to all adapters.
-       
-       * psycopg/adapter_qstring.c (qstring_quote): we now use
-       PyString_AsStringAndSize() instead of strlen() that would stop at
-       the first embedded \0 (but note that libpq quoting function will
-       truncate the string anyway!)
-       
-       * COPY TO implemented using both old and new (v3) protocol.
-
-       * psycopg/pqpath.c (_pq_copy_out_v3): implemented and working.
-
-       * psycopg/cursor_type.c (psyco_curs_copy_to): added cursor object
-       interface for copy_to.
-
-       * COPY FROM implemented using both old and new (v3) protocol.
-
-       * psycopg/config.h (Dprintf): declaration for asprintf is gone.
-
-       * psycopg/pqpath.c (_pq_copy_in_v3): implemented.
-
-2005-03-01  Federico Di Gregorio  <fog@debian.org>
-
-       * setup.py: now we generate a slighly more verbose version string
-       that embeds some of the compile options, to facilitate users' bug
-       reports.
-
-       * psycopg/cursor_type.c (psyco_curs_copy_from): we now use
-       PyOS_snprintf instead of asprintf. On some platforms this can be
-       bad (win32).. if that's your case, get a better platform. :/
-
-       * psycopg/microprotocols.c (microprotocols_adapt): fixed small
-       typo that made adaptation using __conform__ impossible.
-
-2005-02-28  Federico Di Gregorio  <fog@debian.org>
-
-       * lib/extras.py: removed AsIs adapter (now a built-in); also
-       removed prepare() method from the adapters that don't use it to
-       avoid an extra method call at mogrification time.
-
-       * psycopg/psycopgmodule.c (psyco_adapters_init): added
-       initialization of the AsIs adapter (adapts int, long, float and
-       *wonder* None!)
-
-       * psycopg/cursor_type.c (_mogrify_getquoted): reorganized the code
-       to adapt and then call .getquoted() to obtain the quoted data into
-       this new function.
-
-2005-2-27  Federico Di Gregorio  <fog@initd.org>
-
-       * examples/myfirstrecipe.py: fixed adapter registration. 
-
-2005-2-7  Federico Di Gregorio  <fog@initd.org>
-
-       * setup.py: added patch by Valentino Volonghi to build on MacOS X.
-
-2005-01-29  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/pqpath.c (_pq_fetch_tuples): fixed scale-related
-       segfault (*fourth* mail from Andrea. Another couple like this and
-       psycopg 2 will exit alpha at warp speed.)
-       
-       * psycopg/pqpath.c (pq_fetch): _pq_copy_out_3 -> _pq_copy_out_v3
-       (second and third mail from Andrea. :/)
-
-       * psycopg/cursor_type.c (_psyco_curs_has_write_check): added check
-       on .write() attribute, fixed compilation problems (first mail from
-       Andrea Arcangeli.)
-
-2005-01-20  Federico Di Gregorio  <fog@debian.org>
-
-       * lib/extensions.py (register_adapter): added register_adapter
-       function, exported ISQLQuote in psycopg.extensions.
-
-2005-01-18  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/pqpath.c (_pq_fetch_tuples): ported scale/precision fix
-       from psycopg 1.1.
-
-       * LICENSE: detailed licensing information. Re-licensed some parts
-       under BSD-like to allow integration is pysqlite.
-
-2005-01-13  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py (DB.query
-       ): ported ZPsycopgDA connection fix
-       from psycopg 1.1.
-
-       * lib/*.py: added pydoc-friendly messages.
-
-2005-01-12  Federico Di Gregorio  <fog@debian.org>
-
-       * Added debian directory (thanks to W. Borgert who sent initial
-       patch based on cdbs.)
-
-2004-12-20  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/pqpath.c (pq_execute): removed multiple calls to
-       pq_fetch in syncronous DBAPI compatibility mode to solve rowcount
-       problem.
-
-2004-12-14  Federico Di Gregorio  <fog@debian.org>
-
-       * Mm.. release 1.99.11.
-
-       * psycopg/cursor_type.c (_psyco_curs_prefetch): fixed bug in
-       interaction between the .isready() method and
-       _psyco_curs_prefetch: isready now store away the pgres but leave
-       prefetch do its work.
-
-       * psycopg/*.c: changed the names of most of the psycopg's built-in
-       types to replect their position in the psycopg._psycopg module.
-
-2004-12-10  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c: now *all* write or async accesses to the
-       connection object are arbitrated using the connection lock.
-       
-       * psycopg/cursor_type.c (psyco_curs_isready): now we reset the
-       current async cursor if it is ready, to allow other cursors to
-       .execute() without raising the "transaction in progress" error.
-
-       * psycopg/pqpath.c (pq_is_busy): gained status of high-level
-       function with its own blocking and locking.
-
-       * psycopg/cursor.h (EXC_IF_CURS_CLOSED): also checks the
-       connection (a closed connection implies a closed cursor.)
-
-       * psycopg/cursor_type.c: cursor's connection is correctly
-       INCREFfed and DECREFfed.
-
-       * psycopg/connection_type.c: removed the cursors list from the
-       connection object. It is not necessary anymore for the connection
-       to know about the cursors and the reference counting will keep the
-       connection alive (but possibly closed) until all cursors are
-       garbage collected.
-
-2004-11-20  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/cursor_type.c (_mogrify): ported %% fix from 1.1.15. 
-
-2004-11-20  Federico Di Gregorio  <fog@initd.org>
-
-       * psycopg/cursor_type.c (psyco_curs_execute): added check to raise an
-       exception if a cursor tries to .execute() while an async query is
-       already in execution froma  different cursor. 
-
-2004-11-20  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/connection_type.c (psyco_conn_cursor): renamed 'cursor'
-       argument to 'cursor_factory'.
-
-2004-11-19  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (_psyco_curs_buildrow_fill): now standard
-       tuples are filled using PyTuple_SET_ITEM while extended types
-       (created via row_factory) are filled using PySequence_SetItem.
-       
-       * psycopg/cursor_type.c: changed cursor attribute name from
-       tuple_factory to row_factory.
-
-2004-10-14  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (_psyco_curs_buildrow_fill): now we use
-       PySequence_SetItem to avoid problems with containers created from
-       cursor's .tuple_factory attribute.
-
-       * lib/extras.py (DictCursor.execute): fixed stupid bug with cursor
-       setting self.tuplefactory instead of self.tuple_factory.
-
-2004-10-02  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.99.10.
-       
-       * psycopg/cursor_type.c (_psyco_curs_buildrow_*): unified normal
-       and factory code into the _psyco_curs_buildrow_fill function; no
-       more memory leaks here. 
-
-       * psycopg/config.h (round): added check for __FreeBSD__ (that
-       should be defined when compiling with gcc, I hope.)
-
-       * setup.py: removed a lot of code now in setup.cfg.
-
-2004-09-24  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (cursor_dealloc): fixed small memory leak
-       due to missing disposal of self->pgres.
-
-2004-9-14  Federico Di Gregorio  <fog@initd.org>
-
-       *  examples/dialtone.py: Added adapt() example by Valentino
-       Volonghi.
-
-2004-09-14  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/microprotocols.c (microprotocols_adapt): lots of changes
-       to the microprotocols layer (it is not micro anymore);
-       implementing almost all the PEP 246. The adapter registry is now
-       indexed by (type, protocol) and not by type alone.
-
-2004-09-13  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (_mogrify): and qattr is gone.
-
-2004-09-05  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.99.9 (or, the "twisting by the pool" release).
-
-       * psycopg/pqpath.c (_pq_fetch_tuples): changed to "static void"
-       instead of "static int", no ways for this function to fail.
-
-2004-09-04  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/pqpath.c (_pq_fetch_tuples): ported rowcount fix from
-       1.1.15.
-
-       * ZPsycopgDA/*: ZPsycopgDA back in action, using the new pooling
-       code.
-
-2004-08-29  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_basic.c (typecast_DECIMAL_cast): added DECIMAL
-       typecaster; it even works :).
-
-       * scripts/buildtypes.py (basic_types): added DECIMAL typecaster
-       for the NUMERIC oid.
-
-       * examples/threads.py: updated threads example to use pooling code. 
-
-       * lib/pool.py: added very simple and thread-safe connection
-       pooling class.
-
-       * psycopg/cursor_type.c (psyco_curs_fetchmany): fixed problem with
-       .fetchall() and .fetchmany() returning None instead of [] on empty
-       result sets.
-
-       * Release 1.99.8.
-
-2004-08-28  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (psyco_curs_execute): added processing of
-       unicode queries.
-
-       * examples/encoding.py: much better encoding example, also using
-       the new UNICODE typecaster.
-
-       * psycopg/typecast_basic.c (typecast_UNICODE_cast): added UNICODE
-       typecaster.
-
-       * lib/extensions.py: the encodings dictionary is not available by
-       default but can be accessed from the psycopg.extensions module.
-
-       * psycopg/adapter_qstring.h: remove encoding information from
-       qstring adapter and moved it into psycopg module.
-
-2004-08-26  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (_psyco_curs_prefetch): added check for
-       asynchronous fetch by wrong cursor.
-
-       * psycopg/pqpath.c (pq_fetch): fixed backend status message (bug
-       reported by Daniele Varrazzo.)
-
-2004-07-29  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_basic.c (typecast_BINARY_cast): reverted to
-       using strings instead of buffers when converting postgresql binary
-       objects (should *temporarily* fix corruption bug reported on
-       win32.)
-
-2004-07-21  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c: removed __iter__ and next methods from
-       object methods and moved them where they do belong (tp_iter and
-       tp_iternext.) Bug reported by Daniele Varrazzo (again!)
-
-2004-07-19  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_datetime.c (typecast_PYINTERVAL_cast): replaced
-       round() with micro() when rounding seconds (fixes bugs reported by
-       Daniele Varrazzo.)
-
-2004-07-16  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/pqpath.c (pq_set_critical): allow for a custom message
-       insted of the one from PQerrorMessage.
-       (pq_resolve_critical): added argument to specify if connection is
-       to be closed (used to not close it during COPY FROM/TO criticals.)
-
-       * psycopg/cursor_type.c (psyco_curs_fileno, psyco_curs_isready):
-       added extension methods related to async queries. 
-
-2004-07-15  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.99.7.
-
-       * examples/tz.py: added example about time zones.
-
-       * psycopg/typecast_datetime.c (typecast_PYDATETIME_cast): create
-       FixedOffsetTimezone for postgresql "timestamp with time zone"
-       types.
-
-       * lib/tz.py: added (even more than) needed tzinfo classes.
-
-       * psycopg/typecast.c (typecast_call): changed typecast call code
-       to take the additional cursor parameter, needed for
-       cursor-dependent type casting (tzinfo & friends.)
-
-       * psycopg/cursor_type.c (_psyco_curs_buildrow_with_factory): added
-       use of tuple factories to fetcXXX methods.
-
-       * lib/extras.py: little extra goodies for psycopg.
-
-2004-07-14  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.99.6. 
-       
-       * psycopg/connection_type.c: added .dsn attribute to connection
-       objects.
-
-       * psycopg/cursor_type.c (psyco_curs_mogrify): added .mogrify()
-       method.
-
-       * psycopg/adapter_qstring.c: copy the connection encoding only if
-       wrapped object is unicode and added table of encodings.
-
-2004-07-13  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/cursor_type.c (_mogrify): moved Dprintf statement to
-       avoid dereferencing empty pointer (from 1.1.x)
-       (psyco_curs_execute): now we save the query in self->query instead
-       of freeing the memory ASAP.
-       (cursorObject_members): and we finally export the saved query
-       through the cursor members interface. that's all folks.
-
-       * lib/extensions.py: added extensions module to clearly separate
-       psycopg own extensions from DBAPI-2.0
-
-2004-07-10  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_datetime.c: ported interval fix from 1.1.x.
-
-2004-05-16  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_datetime.c (typecast_*_cast): fixed Value error
-       when seconds > 59 by setting minutes += 1 and seconds -= 60
-       (reported by Marcel Gsteiger.) 
-
-2004-04-24  Federico Di Gregorio  <fog@debian.org>
-
-       * ported time interval patch by Ross Cohen from 1.1.12.
-
-2004-04-19  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_datetime.c (typecast_PYDATE_cast): applied
-       patch from Jason Erickson: min and max taken from datetime.Date
-       type.
-       
-2004-04-18  Federico Di Gregorio  <fog@debian.org>
-
-       * Applied changes from Jason Erickson to build on win32; see his
-       (slightly edited) entry below. (Still builds on Linux :)
-
-       * psycopg/*.c: removed inclusion of pthread.h from all files
-       except psycopg/config.h to build on win32 without faking the file.
-
-2004-04-15  Jason Erickson <jerickso@stickpeople.com>
-        * setup.py: Various changes. The critical ones: 
-         - Make an empty pthread.h file so all the code doing an 
-           #include <pthread.h> will find something.
-         - Appended the winsock2 library and the PostgreSQL library to 
-           the library path.
-         - Setup the include path.
-         - Have the PSYCOPG_VERSION macro be included with quotes.
-        * config.h: Added/Cleaned up Win32 includes, defines, stub functions.
-        * typecast.h: Removed ';' after PyObject_HEAD in the
-       typecastObject structure since Microsoft Visual Studio does not
-       like it.
-
-2004-04-15  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.99.5 (bug-fixing and reorganization)
-
-       * setup.py et al.: moved psycopg to psycopg._psycopg to make
-       easier to provide high level python-only utilities (like the
-       promised pooling code). psycopg/__init__.py imports _psycopg and
-       make all the default DBAPI-2.0 stuff available. 
-
-2004-04-14  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/psycopgmodule.c (initpsycopg): wrapped initialization of
-       date/time adapters in #ifdefs to have psycopg compile without mx
-       or builtin datetime.
-
-2004-04-10  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.99.4.
-
-2004-04-09  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/typecast_builtins.c: changed DATE to not include
-       DATETIME types anymore.
-
-       * psycopg/adapter_datetime.c (pydatetime_str): switched from
-       strftime to isoformat to preserve fractional seconds.
-
-2004-04-08  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/psycopgmodule.c (psyco_connect): ported sslmode
-       parameter from 1.1 branch.
-
-       * psycopg/adapter_datetime.*: added python built-in datetime
-       adapters. also added the datetime typecasters (still using mx as
-       default).
-
-       * psycopg/typecast.h: removed aliases, they now live in the right
-       typecast_xxx.c file.
-
-2004-03-08  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.99.3 (alpha 4).
-
-       * examples/lastrowid.py: and the .lastrowid example is in. 
-
-       * psycopg/cursor_type.c (_mogrify): added call to .prepare()
-       method in both dict and sequence path.
-
-       * psycopg/connection_int.c (conn_set_client_encoding): added
-       encoding-change code.
-
-       * psycopg/adapter_qstring.c (qstring_quote): added hard-coded
-       support for utf8 and latin1 encodings.
-
-2004-03-01  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/connection_int.c (conn_close): does not use libpq
-       functions on NULL pgconn (this can happen when conn_close is
-       called after a failed PQconnect.)
-
-2004-02-29  Federico Di Gregorio  <fog@debian.org> 
-
-       * Release 1.99.2 (alpha 3).
-       
-       * psycopg/cursor_type.c: added .rownumber and .connection
-       attributes. Also added .scroll(), .next() and .__iter__() methods
-       (see DBAPI2-.0 extensions on PEP.)
-
-       * psycopg/connection_type.c (psyco_conn_set_isolation_level):
-       added connection method .set_isolation_level(). Also added all
-       error objects to the connection (see DBAPI2-.0 extensions on PEP.)
-
-       * psycopg/connection_int.c (conn_switch_isolation_level): added
-       isolation level switching code.
-
-       * setup.py: removed all references to PSYCOPG_NEWSTYLE: support
-       for python < 2.2 has been dropped.
-
-       * typecast_basic.c (typecast_BINARY_cast): now binary objects are
-       returned as true buffers.
-
-       * adapter_binary.*: added adapter for buffers and binary (bytea)
-       objects.
-
-       * Release 1.99.1 (alpha 2).
-
-       * adapter_mxdatetime.*: added adapters for all mx.DateTime types.
-
-2004-02-28  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor_type.c (_mogrify): complete rework of the mogrification
-       code to use the microprotocols_adapt function.
-
-       * typecast_basic.c (typecast_BOOLEAN_cast): we now return real
-       Py_True and Py_False values.
-
-       * microprotocols.h: added very simple microprotocols
-       implementation to allow for python->postgresql types registry.
-
-2004-01-05  Federico Di Gregorio  <fog@debian.org>
-
-       * connection_int.c (conn_commit/conn_rollback): added code to
-       commit/rollback and connection methods. 
-
-2004-01-04  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor_type.c (psyco_curs_fetchone): added fetchone method.
-
-2004-01-03  Federico Di Gregorio  <fog@debian.org>
-
-       * added (empty) INSTALL file.
-
-       * cursor_type.c (cursor_dealloc): added qattr for custom object
-       quoting using a callable attribute.
-       (_mogrify): ported new, fixed mogrification code from 1.1.12.
-
-2003-08-01  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor_type.c (_mogrify_sequence): added sequence mogrification,
-       can be done better, on the dict model.
-
-2003-07-28  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj_qstring.c: added quoted strings (can use both own code,
-       like psycopg 1.x or PQescapeString from lipq.)
-
-2003-07-21  Federico Di Gregorio  <fog@debian.org>
-
-       * connection_type.c (psyco_conn_close): added .close()
-       method. wow.
-
-       * cursor_*.c: added basic cursor interface (new-style.)
-
-2003-07-20  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg/*: beginning of new source layout. if you think this
-       changelog is somewhat empty, you're right. look at
-       doc/ChangeLog-1.x for psycopg 1.x changelog just before the
-       branch.
-
-
diff --git a/psycopg2/INSTALL b/psycopg2/INSTALL
deleted file mode 100644 (file)
index 873dbfa..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-Compiling and installing psycopg
-********************************
-
-** Important note: if you plan to use psyopg2 in a multithreaed application
-   make sure that your libpq has been compiled with the --with-thread-safety
-   option. psycopg2 will work correctly even with a non-thread-safe libpq but
-   libpq will leak memory.
-
-While psycopg 1.x used autoconf for its build process psycopg 2 switched to
-the more pythoning setup.py. Currently both psycopg's author and distutils
-have some limitations so the file setup.cfg is almost unused and most build
-options are hidden in setup.py. Before building psycopg look at setup.cfg file
-and change any settings to follow your system (or taste); then:
-
-    python setup.py build
-
-to build in the local directory; and:
-
-    python setup.py install
-    
-to install system-wide.
-
-
-Using setuptools and EasyInstall
-================================
-
-If setuptools are installed on your system you can easily create an egg for
-psycopg and install it. Download the source distribution (if you're reading
-this file you probably already have) and then edit setup.cfg to your taste
-and build from the source distribution top-level directory using:
-
-    easy_install .
-
-
-Compiling under Windows with mingw32
-====================================
-
-You can compile psycopg under Windows platform with mingw32
-(http://www.mingw.org/) compiler. MinGW is also shipped with IDEs such as
-Dev-C++ (http://www.bloodshed.net/devcpp.html) and Code::Blocks
-(http://www.codeblocks.org). gcc binaries should be in your PATH.
-
-You need a PostgreSQL with include and libary files installed. At least v8.0 is required.
-
-First you need to create a libpython2X.a as described in 
-http://starship.python.net/crew/kernr/mingw32/Notes.html. Then run:
-
-    python setup.py build_ext --compiler=mingw32 install
diff --git a/psycopg2/LICENSE b/psycopg2/LICENSE
deleted file mode 100644 (file)
index b20b282..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-psycopg and the GPL
-===================
-
-psycopg is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version. See file COPYING for details.
-
-As a special exception, specific permission is granted for the GPLed
-code in this distribition to be linked to OpenSSL and PostgreSQL libpq
-without invoking GPL clause 2(b).
-
-Note that the GPL was chosen to avoid proprietary adapters based on
-psycopg code. Using psycopg in a proprietary product (even bundling
-psycopg with the proprietary product) is fine as long as:
-
- 1. psycopg is called from Python only using only the provided API
-    (i.e., no linking with C code and no C modules based on it); and
-
- 2. all the other points of the GPL are respected (you offer a copy
-    of psycopg's source code, and so on.)
-
-Alternative licenses
-====================
-
-If you prefer you can use the Zope Database Adapter ZPsycopgDA (i.e.,
-every file inside the ZPsycopgDA directory) user the ZPL license as
-published on the Zope web site, http://www.zope.org/Resources/ZPL.
-
-Also, the following BSD-like license applies (at your option) to the
-files following the pattern psycopg/adapter*.{h,c} and
-psycopg/microprotocol*.{h,c}:
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
-    claim that you wrote the original software. If you use this
-    software in a product, an acknowledgment in the product documentation
-    would be appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not
-    be misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
-psycopg is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-Proprietary licenses
-====================
-
-A non-exclusive license is available for companies that want to include
-psycopg in their proprietary products without respecting the spirit of the
-GPL. The price of the license is one day of development done by the author,
-at the consulting fee he applies to his usual customers at the day of the
-request.
diff --git a/psycopg2/MANIFEST b/psycopg2/MANIFEST
deleted file mode 100644 (file)
index c8538ea..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-AUTHORS
-ChangeLog
-INSTALL
-LICENSE
-MANIFEST
-MANIFEST.in
-README
-setup.cfg
-setup.py
-ZPsycopgDA/DA.py
-ZPsycopgDA/__init__.py
-ZPsycopgDA/db.py
-ZPsycopgDA/pool.py
-ZPsycopgDA/dtml/add.dtml
-ZPsycopgDA/dtml/browse.dtml
-ZPsycopgDA/dtml/edit.dtml
-ZPsycopgDA/dtml/table_info.dtml
-ZPsycopgDA/icons/bin.gif
-ZPsycopgDA/icons/date.gif
-ZPsycopgDA/icons/datetime.gif
-ZPsycopgDA/icons/field.gif
-ZPsycopgDA/icons/float.gif
-ZPsycopgDA/icons/int.gif
-ZPsycopgDA/icons/stable.gif
-ZPsycopgDA/icons/table.gif
-ZPsycopgDA/icons/text.gif
-ZPsycopgDA/icons/time.gif
-ZPsycopgDA/icons/view.gif
-ZPsycopgDA/icons/what.gif
-debian/changelog
-debian/control
-debian/copyright
-debian/rules
-doc/ChangeLog-1.x
-doc/HACKING
-doc/SUCCESS
-doc/TODO
-doc/api-screen.css
-doc/async.txt
-doc/extensions.html
-doc/extensions.rst
-doc/api/epydoc.css
-doc/api/index.html
-doc/api/private/__builtin__.list-class.html
-doc/api/private/__builtin__.object-class.html
-doc/api/private/__builtin__.type-class.html
-doc/api/private/datetime.tzinfo-class.html
-doc/api/private/epydoc.css
-doc/api/private/exceptions.Exception-class.html
-doc/api/private/exceptions.StandardError-class.html
-doc/api/private/frames.html
-doc/api/private/help.html
-doc/api/private/index.html
-doc/api/private/indices.html
-doc/api/private/psycopg2-module.html
-doc/api/private/psycopg2.DataError-class.html
-doc/api/private/psycopg2.DatabaseError-class.html
-doc/api/private/psycopg2.Error-class.html
-doc/api/private/psycopg2.IntegrityError-class.html
-doc/api/private/psycopg2.InterfaceError-class.html
-doc/api/private/psycopg2.InternalError-class.html
-doc/api/private/psycopg2.NotSupportedError-class.html
-doc/api/private/psycopg2.OperationalError-class.html
-doc/api/private/psycopg2.ProgrammingError-class.html
-doc/api/private/psycopg2.Warning-class.html
-doc/api/private/psycopg2._psycopg-module.html
-doc/api/private/psycopg2._psycopg.ISQLQuote-class.html
-doc/api/private/psycopg2._psycopg.connection-class.html
-doc/api/private/psycopg2._psycopg.cursor-class.html
-doc/api/private/psycopg2.extensions-module.html
-doc/api/private/psycopg2.extras-module.html
-doc/api/private/psycopg2.extras.DictConnection-class.html
-doc/api/private/psycopg2.extras.DictCursor-class.html
-doc/api/private/psycopg2.extras.DictRow-class.html
-doc/api/private/psycopg2.extras.SQL_IN-class.html
-doc/api/private/psycopg2.pool-module.html
-doc/api/private/psycopg2.pool.AbstractConnectionPool-class.html
-doc/api/private/psycopg2.pool.PersistentConnectionPool-class.html
-doc/api/private/psycopg2.pool.PoolError-class.html
-doc/api/private/psycopg2.pool.SimpleConnectionPool-class.html
-doc/api/private/psycopg2.pool.ThreadedConnectionPool-class.html
-doc/api/private/psycopg2.psycopg1-module.html
-doc/api/private/psycopg2.psycopg1.connection-class.html
-doc/api/private/psycopg2.psycopg1.cursor-class.html
-doc/api/private/psycopg2.tz-module.html
-doc/api/private/psycopg2.tz.FixedOffsetTimezone-class.html
-doc/api/private/psycopg2.tz.LocalTimezone-class.html
-doc/api/private/toc-everything.html
-doc/api/private/toc-psycopg2-module.html
-doc/api/private/toc-psycopg2._psycopg-module.html
-doc/api/private/toc-psycopg2.extensions-module.html
-doc/api/private/toc-psycopg2.extras-module.html
-doc/api/private/toc-psycopg2.pool-module.html
-doc/api/private/toc-psycopg2.psycopg1-module.html
-doc/api/private/toc-psycopg2.tz-module.html
-doc/api/private/toc.html
-doc/api/private/trees.html
-doc/api/public/__builtin__.list-class.html
-doc/api/public/__builtin__.object-class.html
-doc/api/public/__builtin__.type-class.html
-doc/api/public/datetime.tzinfo-class.html
-doc/api/public/epydoc.css
-doc/api/public/exceptions.Exception-class.html
-doc/api/public/exceptions.StandardError-class.html
-doc/api/public/frames.html
-doc/api/public/help.html
-doc/api/public/index.html
-doc/api/public/indices.html
-doc/api/public/psycopg2-module.html
-doc/api/public/psycopg2.DataError-class.html
-doc/api/public/psycopg2.DatabaseError-class.html
-doc/api/public/psycopg2.Error-class.html
-doc/api/public/psycopg2.IntegrityError-class.html
-doc/api/public/psycopg2.InterfaceError-class.html
-doc/api/public/psycopg2.InternalError-class.html
-doc/api/public/psycopg2.NotSupportedError-class.html
-doc/api/public/psycopg2.OperationalError-class.html
-doc/api/public/psycopg2.ProgrammingError-class.html
-doc/api/public/psycopg2.Warning-class.html
-doc/api/public/psycopg2._psycopg-module.html
-doc/api/public/psycopg2.extensions-module.html
-doc/api/public/psycopg2.extras-module.html
-doc/api/public/psycopg2.extras.DictConnection-class.html
-doc/api/public/psycopg2.extras.DictCursor-class.html
-doc/api/public/psycopg2.extras.DictRow-class.html
-doc/api/public/psycopg2.extras.SQL_IN-class.html
-doc/api/public/psycopg2.pool-module.html
-doc/api/public/psycopg2.pool.AbstractConnectionPool-class.html
-doc/api/public/psycopg2.pool.PersistentConnectionPool-class.html
-doc/api/public/psycopg2.pool.PoolError-class.html
-doc/api/public/psycopg2.pool.SimpleConnectionPool-class.html
-doc/api/public/psycopg2.pool.ThreadedConnectionPool-class.html
-doc/api/public/psycopg2.psycopg1-module.html
-doc/api/public/psycopg2.psycopg1.connection-class.html
-doc/api/public/psycopg2.psycopg1.cursor-class.html
-doc/api/public/psycopg2.tz-module.html
-doc/api/public/psycopg2.tz.FixedOffsetTimezone-class.html
-doc/api/public/psycopg2.tz.LocalTimezone-class.html
-doc/api/public/toc-everything.html
-doc/api/public/toc-psycopg2-module.html
-doc/api/public/toc-psycopg2._psycopg-module.html
-doc/api/public/toc-psycopg2.extensions-module.html
-doc/api/public/toc-psycopg2.extras-module.html
-doc/api/public/toc-psycopg2.pool-module.html
-doc/api/public/toc-psycopg2.psycopg1-module.html
-doc/api/public/toc-psycopg2.tz-module.html
-doc/api/public/toc.html
-doc/api/public/trees.html
-examples/binary.py
-examples/copy_from.py
-examples/copy_to.py
-examples/cursor.py
-examples/dialtone.py
-examples/dict.py
-examples/dt.py
-examples/encoding.py
-examples/fetch.py
-examples/lastrowid.py
-examples/mogrify.py
-examples/myfirstrecipe.py
-examples/notify.py
-examples/simple.py
-examples/somehackers.jpg
-examples/threads.py
-examples/tz.py
-examples/usercast.py
-examples/whereareyou.jpg
-lib/__init__.py
-lib/extensions.py
-lib/extras.py
-lib/pool.py
-lib/psycopg1.py
-lib/tz.py
-psycopg/adapter_asis.c
-psycopg/adapter_asis.h
-psycopg/adapter_binary.c
-psycopg/adapter_binary.h
-psycopg/adapter_datetime.c
-psycopg/adapter_datetime.h
-psycopg/adapter_list.c
-psycopg/adapter_list.h
-psycopg/adapter_mxdatetime.c
-psycopg/adapter_mxdatetime.h
-psycopg/adapter_pboolean.c
-psycopg/adapter_pboolean.h
-psycopg/adapter_qstring.c
-psycopg/adapter_qstring.h
-psycopg/config.h
-psycopg/connection.h
-psycopg/connection_int.c
-psycopg/connection_type.c
-psycopg/cursor.h
-psycopg/cursor_int.c
-psycopg/cursor_type.c
-psycopg/microprotocols.c
-psycopg/microprotocols.h
-psycopg/microprotocols_proto.c
-psycopg/microprotocols_proto.h
-psycopg/pgtypes.h
-psycopg/pgversion.h
-psycopg/pqpath.c
-psycopg/pqpath.h
-psycopg/psycopg.h
-psycopg/psycopgmodule.c
-psycopg/python.h
-psycopg/typecast.c
-psycopg/typecast.h
-psycopg/typecast_array.c
-psycopg/typecast_basic.c
-psycopg/typecast_binary.c
-psycopg/typecast_binary.h
-psycopg/typecast_builtins.c
-psycopg/typecast_datetime.c
-psycopg/typecast_mxdatetime.c
-scripts/buildtypes.py
-scripts/ext2html.py
-scripts/makedocs.py
-scripts/maketypes.sh
-tests/dbapi20.py
-tests/extras_dictcursor.py
-tests/test_psycopg2_dbapi20.py
-tests/types_basic.py
diff --git a/psycopg2/MANIFEST.in b/psycopg2/MANIFEST.in
deleted file mode 100644 (file)
index 457004c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-recursive-include psycopg *.c *.h
-recursive-include lib *.py
-recursive-include tests *.py
-recursive-include ZPsycopgDA *.py *.gif *.dtml
-recursive-include examples *.py somehackers.jpg whereareyou.jpg
-recursive-include debian *
-recursive-include doc TODO HACKING SUCCESS ChangeLog-1.x async.txt
-recursive-include scripts *.py *.sh
-include scripts/maketypes.sh scripts/buildtypes.py
-include AUTHORS README INSTALL LICENSE ChangeLog 
-include PKG-INFO MANIFEST.in MANIFEST setup.py setup.cfg
-recursive-include doc *.rst *.css *.html
diff --git a/psycopg2/PKG-INFO b/psycopg2/PKG-INFO
deleted file mode 100644 (file)
index 2fab953..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-Metadata-Version: 1.0
-Name: psycopg2
-Version: 2.0.5.1
-Summary: Python-PostgreSQL Database Adapter
-Home-page: http://initd.org/tracker/psycopg
-Author: Federico Di Gregorio
-Author-email: fog@initd.org
-License: GPL with exceptions or ZPL
-Download-URL: http://initd.org/pub/software/psycopg2
-Description: psycopg is a PostgreSQL database adapter for the Python programming
-        language. This is version 2, a complete rewrite of the original code to
-        provide new-style classes for connection and cursor objects and other sweet
-        candies. Like the original, psycopg 2 was written with the aim of being
-        very small and fast, and stable as a rock.
-        
-        psycopg is different from the other database adapter because it was
-        designed for heavily multi-threaded applications that create and destroy
-        lots of cursors and make a conspicuous number of concurrent INSERTs or
-        UPDATEs. psycopg 2 also provide full asycronous operations for the really
-        brave programmer.
-        
-Platform: any
-Classifier: Development Status :: 4 - Beta
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: GNU General Public License (GPL)
-Classifier: License :: OSI Approved :: Zope Public License
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: C
-Classifier: Programming Language :: SQL
-Classifier: Topic :: Database
-Classifier: Topic :: Database :: Front-Ends
-Classifier: Topic :: Software Development
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Operating System :: Microsoft :: Windows
-Classifier: Operating System :: Unix
diff --git a/psycopg2/README b/psycopg2/README
deleted file mode 100644 (file)
index 4e4a0e9..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-psycopg - Python-PostgreSQL Database Adapter
-********************************************
-
-psycopg is a PostgreSQL database adapter for the Python programming
-language. This is version 2, a complete rewrite of the original code to
-provide new-style classes for connection and cursor objects and other
-sweet candies. Like the original, psycopg 2 was written with the aim of
-being very small and fast, and stable as a rock.
-
-psycopg is different from the other database adapter because it was
-designed for heavily multi-threaded applications that create and destroy
-lots of cursors and make a conspicuous number of concurrent INSERTs or
-UPDATEs. psycopg 2 also provide full asycronous operations for the really
-brave programmer.
-
-There are confirmed reports of psycopg 1.x compiling and running on Linux
-and FreeBSD on i386, Solaris, MacOS X and win32 architectures. psycopg 2
-does not introduce build-wise incompatible changes so it should be able to
-compile on all architectures just as its predecessor did.
-
-Now go read the INSTALL file. More information about psycopg extensions to
-the DBAPI-2.0 is available in the files located in the doc/ direcory.
-
-psycopg is free software ("free as in freedom" but I like beer too.)
-Licensing information is available in the LICENSE file.
-
-
-Contributors
-------------
-
-A short list of contributors to psycopg2 follows (if you feel you belong
-to this list and you can't find yourself here just drop me a mail):
-
- * Kudos to piro for all the documentation work.
-
- * Peter Fein contributed a logging connection/cursor class that even if it
-   was not used directly heavily influenced the implementation currently in
-   psycopg2.extras.
-   
diff --git a/psycopg2/ZPsycopgDA/DA.py b/psycopg2/ZPsycopgDA/DA.py
deleted file mode 100644 (file)
index 2a0f4dd..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-# ZPsycopgDA/DA.py - ZPsycopgDA Zope product: Database Connection
-#
-# Copyright (C) 2004 Federico Di Gregorio <fog@initd.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# Or, at your option this program (ZPsycopgDA) can be distributed under the
-# Zope Public License (ZPL) Version 1.0, as published on the Zope web site,
-# http://www.zope.org/Resources/ZPL.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.
-#
-# See the LICENSE file for details.
-
-
-ALLOWED_PSYCOPG_VERSIONS = ('2.0.1', '2.0.2', '2.0.3', '2.0.4', '2.0.5')
-
-import sys
-import time
-import db
-import re
-
-import Acquisition
-import Shared.DC.ZRDB.Connection
-
-from db import DB
-from Globals import HTMLFile
-from ExtensionClass import Base
-from App.Dialogs import MessageDialog
-from DateTime import DateTime
-
-# Build Zope version in a float for later cheks
-import App
-zope_version = App.version_txt.getZopeVersion()
-zope_version = float("%s.%s" %(zope_version[:2]))
-
-# ImageFile is deprecated in Zope >= 2.9
-if zope_version < 2.9:
-     from ImageFile import ImageFile
-else:
-     from App.ImageFile import ImageFile 
-
-# import psycopg and functions/singletons needed for date/time conversions
-
-import psycopg2
-from psycopg2 import NUMBER, STRING, ROWID, DATETIME
-from psycopg2.extensions import INTEGER, LONGINTEGER, FLOAT, BOOLEAN, DATE
-from psycopg2.extensions import TIME, INTERVAL
-from psycopg2.extensions import new_type, register_type
-
-
-# add a new connection to a folder
-
-manage_addZPsycopgConnectionForm = HTMLFile('dtml/add',globals())
-
-def manage_addZPsycopgConnection(self, id, title, connection_string,
-                                 zdatetime=None, tilevel=2,
-                                 check=None, REQUEST=None):
-    """Add a DB connection to a folder."""
-    self._setObject(id, Connection(id, title, connection_string,
-                                   zdatetime, check, tilevel))
-    if REQUEST is not None: return self.manage_main(self, REQUEST)
-
-
-# the connection object
-
-class Connection(Shared.DC.ZRDB.Connection.Connection):
-    """ZPsycopg Connection."""
-    _isAnSQLConnection = 1
-    
-    id                = 'Psycopg2_database_connection' 
-    database_type     = 'Psycopg2'
-    meta_type = title = 'Z Psycopg 2 Database Connection'
-    icon              = 'misc_/conn'
-
-    def __init__(self, id, title, connection_string,
-                 zdatetime, check=None, tilevel=2, encoding=''):
-        self.zdatetime = zdatetime
-        self.id = str(id)
-        self.edit(title, connection_string, zdatetime,
-                  check=check, tilevel=tilevel, encoding=encoding)
-        
-    def factory(self):
-        return DB
-
-    ## connection parameters editing ##
-    
-    def edit(self, title, connection_string,
-             zdatetime, check=None, tilevel=2, encoding=''):
-        self.title = title
-        self.connection_string = connection_string
-        self.zdatetime = zdatetime
-        self.tilevel = tilevel
-        self.encoding = encoding
-
-        self.set_type_casts()
-        
-        if check: self.connect(self.connection_string)
-
-    manage_properties = HTMLFile('dtml/edit', globals())
-
-    def manage_edit(self, title, connection_string,
-                    zdatetime=None, check=None, tilevel=2, encoding='UTF-8',
-                    REQUEST=None):
-        """Edit the DB connection."""
-        self.edit(title, connection_string, zdatetime,
-                  check=check, tilevel=tilevel, encoding=encoding)
-        if REQUEST is not None:
-            msg = "Connection edited."
-            return self.manage_main(self,REQUEST,manage_tabs_message=msg)
-
-    def connect(self, s):
-        try:
-            self._v_database_connection.close()
-        except:
-            pass
-
-        # check psycopg version and raise exception if does not match
-        if psycopg2.__version__[:5] not in ALLOWED_PSYCOPG_VERSIONS:
-            raise ImportError("psycopg version mismatch (imported %s)" %
-                              psycopg2.__version__)
-
-        self.set_type_casts()
-        self._v_connected = ''
-        dbf = self.factory()
-        
-        # TODO: let the psycopg exception propagate, or not?
-        self._v_database_connection = dbf(
-            self.connection_string, self.tilevel, self.encoding)
-        self._v_database_connection.open()
-        self._v_connected = DateTime()
-
-        return self
-
-    def set_type_casts(self):
-        # note that in both cases order *is* important
-        if self.zdatetime:
-            # use zope internal datetime routines
-            register_type(ZDATETIME)
-            register_type(ZDATE)
-            register_type(ZTIME)
-        else:
-            # use the standard
-            register_type(DATETIME)
-            register_type(DATE)
-            register_type(TIME)
-
-    ## browsing and table/column management ##
-
-    manage_options = Shared.DC.ZRDB.Connection.Connection.manage_options
-    # + (
-    #    {'label': 'Browse', 'action':'manage_browse'},)
-
-    #manage_tables = HTMLFile('dtml/tables', globals())
-    #manage_browse = HTMLFile('dtml/browse', globals())
-
-    info = None
-    
-    def table_info(self):
-        return self._v_database_connection.table_info()
-
-
-    def __getitem__(self, name):
-        if name == 'tableNamed':
-            if not hasattr(self, '_v_tables'): self.tpValues()
-            return self._v_tables.__of__(self)
-        raise KeyError, name
-
-    def tpValues(self):
-        res = []
-        conn = self._v_database_connection
-        for d in conn.tables(rdb=0):
-            try:
-                name = d['TABLE_NAME']
-                b = TableBrowser()
-                b.__name__ = name
-                b._d = d
-                b._c = c
-                try:
-                    b.icon = table_icons[d['TABLE_TYPE']]
-                except:
-                    pass
-                r.append(b)
-            except:
-                pass
-        return res
-
-
-## database connection registration data ##
-
-classes = (Connection,)
-
-meta_types = ({'name':'Z Psycopg 2 Database Connection',
-               'action':'manage_addZPsycopgConnectionForm'},)
-
-folder_methods = {
-    'manage_addZPsycopgConnection': manage_addZPsycopgConnection,
-    'manage_addZPsycopgConnectionForm': manage_addZPsycopgConnectionForm}
-
-__ac_permissions__ = (
-    ('Add Z Psycopg Database Connections',
-     ('manage_addZPsycopgConnectionForm', 'manage_addZPsycopgConnection')),)
-
-# add icons
-
-misc_={'conn': ImageFile('Shared/DC/ZRDB/www/DBAdapterFolder_icon.gif')}
-
-for icon in ('table', 'view', 'stable', 'what', 'field', 'text', 'bin',
-             'int', 'float', 'date', 'time', 'datetime'):
-    misc_[icon] = ImageFile('icons/%s.gif' % icon, globals())
-
-
-## zope-specific psycopg typecasters ##
-
-# convert an ISO timestamp string from postgres to a Zope DateTime object
-def _cast_DateTime(iso, curs):
-    if iso:
-        return DateTime(re.split("GMT\+?|GMT-?", iso)[0])
-       
-    # this will split us into [date, time, GMT/AM/PM(if there)]
-    #    dt = str.split(' ')
-    #    if len(dt) > 1:
-    #        # we now should split out any timezone info
-    #        dt[1] = dt[1].split('-')[0]
-    #        dt[1] = dt[1].split('+')[0]
-    #        return DateTime(' '.join(dt[:2]))
-    #    else:
-    #        return DateTime(dt[0])
-
-# convert an ISO date string from postgres to a Zope DateTime object
-def _cast_Date(iso, curs):
-    if iso:
-        return DateTime(iso)
-
-# Convert a time string from postgres to a Zope DateTime object.
-# NOTE: we set the day as today before feeding to DateTime so
-# that it has the same DST settings.
-def _cast_Time(iso, curs):
-    if iso:
-        return DateTime(time.strftime('%Y-%m-%d %H:%M:%S',
-                                      time.localtime(time.time())[:3]+
-                                      time.strptime(iso[:8], "%H:%M:%S")[3:]))
-
-# NOTE: we don't cast intervals anymore because they are passed
-# untouched to Zope.
-def _cast_Interval(iso, curs):
-    return iso
-
-ZDATETIME = new_type((1184, 1114), "ZDATETIME", _cast_DateTime)
-ZINTERVAL = new_type((1186,), "ZINTERVAL", _cast_Interval)
-ZDATE = new_type((1082,), "ZDATE", _cast_Date)
-ZTIME = new_type((1083,), "ZTIME", _cast_Time)
-
-
-## table browsing helpers ##
-
-class TableBrowserCollection(Acquisition.Implicit):
-    pass
-
-class Browser(Base):
-    def __getattr__(self, name):
-        try:
-            return self._d[name]
-        except KeyError:
-            raise AttributeError, name
-
-class values:
-    def len(self):
-        return 1
-
-    def __getitem__(self, i):
-        try:
-            return self._d[i]
-        except AttributeError:
-            pass
-        self._d = self._f()
-        return self._d[i]
-
-class TableBrowser(Browser, Acquisition.Implicit):
-    icon = 'what'
-    Description = check = ''
-    info = HTMLFile('table_info', globals())
-    menu = HTMLFile('table_menu', globals())
-
-    def tpValues(self):
-        v = values()
-        v._f = self.tpValues_
-        return v
-
-    def tpValues_(self):
-        r=[]
-        tname=self.__name__
-        for d in self._c.columns(tname):
-            b=ColumnBrowser()
-            b._d=d
-            try: b.icon=field_icons[d['Type']]
-            except: pass
-            b.TABLE_NAME=tname
-            r.append(b)
-        return r
-            
-    def tpId(self): return self._d['TABLE_NAME']
-    def tpURL(self): return "Table/%s" % self._d['TABLE_NAME']
-    def Name(self): return self._d['TABLE_NAME']
-    def Type(self): return self._d['TABLE_TYPE']
-
-    manage_designInput=HTMLFile('designInput',globals())
-    def manage_buildInput(self, id, source, default, REQUEST=None):
-        "Create a database method for an input form"
-        args=[]
-        values=[]
-        names=[]
-        columns=self._columns
-        for i in range(len(source)):
-            s=source[i]
-            if s=='Null': continue
-            c=columns[i]
-            d=default[i]
-            t=c['Type']
-            n=c['Name']
-            names.append(n)
-            if s=='Argument':
-                values.append("<dtml-sqlvar %s type=%s>'" %
-                              (n, vartype(t)))
-                a='%s%s' % (n, boboType(t))
-                if d: a="%s=%s" % (a,d)
-                args.append(a)
-            elif s=='Property':
-                values.append("<dtml-sqlvar %s type=%s>'" %
-                              (n, vartype(t)))
-            else:
-                if isStringType(t):
-                    if find(d,"\'") >= 0: d=join(split(d,"\'"),"''")
-                    values.append("'%s'" % d)
-                elif d:
-                    values.append(str(d))
-                else:
-                    raise ValueError, (
-                        'no default was given for <em>%s</em>' % n)
-
-class ColumnBrowser(Browser):
-    icon='field'
-
-    def check(self):
-        return ('\t<input type=checkbox name="%s.%s">' %
-                (self.TABLE_NAME, self._d['Name']))
-    def tpId(self): return self._d['Name']
-    def tpURL(self): return "Column/%s" % self._d['Name']
-    def Description(self):
-        d=self._d
-        if d['Scale']:
-            return " %(Type)s(%(Precision)s,%(Scale)s) %(Nullable)s" % d
-        else:
-            return " %(Type)s(%(Precision)s) %(Nullable)s" % d
-
-table_icons={
-    'TABLE': 'table',
-    'VIEW':'view',
-    'SYSTEM_TABLE': 'stable',
-    }
-
-field_icons={
-    NUMBER.name: 'i',
-    STRING.name: 'text',
-    DATETIME.name: 'date',
-    INTEGER.name: 'int',
-    FLOAT.name: 'float',
-    BOOLEAN.name: 'bin',
-    ROWID.name: 'int'
-    }
diff --git a/psycopg2/ZPsycopgDA/__init__.py b/psycopg2/ZPsycopgDA/__init__.py
deleted file mode 100644 (file)
index 0af0ceb..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# ZPsycopgDA/__init__.py - ZPsycopgDA Zope product
-#
-# Copyright (C) 2004 Federico Di Gregorio <fog@initd.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# Or, at your option this program (ZPsycopgDA) can be distributed under the
-# Zope Public License (ZPL) Version 1.0, as published on the Zope web site,
-# http://www.zope.org/Resources/ZPL.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.
-#
-# See the LICENSE file for details.
-
-__doc__ = "ZPsycopg Database Adapter Registration." 
-__version__ = '2.0'
-
-import DA
-
-def initialize(context):
-    context.registerClass(
-        DA.Connection,
-        permission = 'Add Z Psycopg 2 Database Connections',
-        constructors = (DA.manage_addZPsycopgConnectionForm,
-                        DA.manage_addZPsycopgConnection),
-        icon = SOFTWARE_HOME + '/Shared/DC/ZRDB/www/DBAdapterFolder_icon.gif')
diff --git a/psycopg2/ZPsycopgDA/db.py b/psycopg2/ZPsycopgDA/db.py
deleted file mode 100644 (file)
index 9a0b4b0..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-# ZPsycopgDA/db.py - query execution
-#
-# Copyright (C) 2004 Federico Di Gregorio <fog@initd.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# Or, at your option this program (ZPsycopgDA) can be distributed under the
-# Zope Public License (ZPL) Version 1.0, as published on the Zope web site,
-# http://www.zope.org/Resources/ZPL.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.
-#
-# See the LICENSE file for details.
-
-from Shared.DC.ZRDB.TM import TM
-from Shared.DC.ZRDB import dbi_db
-
-from ZODB.POSException import ConflictError
-
-import site
-import pool
-
-import psycopg2
-from psycopg2.extensions import INTEGER, LONGINTEGER, FLOAT, BOOLEAN, DATE, TIME
-from psycopg2 import NUMBER, STRING, ROWID, DATETIME 
-
-
-# the DB object, managing all the real query work
-
-class DB(TM, dbi_db.DB):
-    
-    _p_oid = _p_changed = _registered = None
-
-    def __init__(self, dsn, tilevel, enc='utf-8'):
-        self.dsn = dsn
-        self.tilevel = tilevel
-        self.encoding = enc
-        self.failures = 0
-        self.calls = 0
-        self.make_mappings()
-
-    def getconn(self, create=True):
-        conn = pool.getconn(self.dsn)
-        conn.set_isolation_level(int(self.tilevel))
-        return conn
-
-    def putconn(self, close=False):
-        try:
-            conn = pool.getconn(self.dsn, False)
-        except AttributeError:
-            pass
-        pool.putconn(self.dsn, conn, close)
-        
-    def getcursor(self):
-        conn = self.getconn()
-        return conn.cursor()
-
-    def _finish(self, *ignored):
-        try:
-            conn = self.getconn(False)
-            conn.commit()
-            self.putconn()
-        except AttributeError:
-            pass
-            
-    def _abort(self, *ignored):
-        try:
-            conn = self.getconn(False)
-            conn.rollback()
-            self.putconn()
-        except AttributeError:
-            pass
-
-    def open(self):
-        # this will create a new pool for our DSN if not already existing,
-        # then get and immediately release a connection
-        self.getconn()
-        self.putconn()
-        
-    def close(self):
-        # FIXME: if this connection is closed we flush all the pool associated
-        # with the current DSN; does this makes sense?
-        pool.flushpool(self.dsn)
-
-    def sortKey(self):
-        return 1
-
-    def make_mappings(self):
-        """Generate the mappings used later by self.convert_description()."""
-        self.type_mappings = {}
-       for t, s in [(INTEGER,'i'), (LONGINTEGER, 'i'), (NUMBER, 'n'),  
-                    (BOOLEAN,'n'), (ROWID, 'i'),
-                    (DATETIME, 'd'), (DATE, 'd'), (TIME, 'd')]:
-            for v in t.values:
-               self.type_mappings[v] = (t, s)
-
-    def convert_description(self, desc, use_psycopg_types=False):
-        """Convert DBAPI-2.0 description field to Zope format."""
-        items = []
-        for name, typ, width, ds, p, scale, null_ok in desc:
-           m = self.type_mappings.get(typ, (STRING, 's'))
-            items.append({
-                'name': name,
-                'type': use_psycopg_types and m[0] or m[1],
-                'width': width,
-                'precision': p,
-                'scale': scale,
-                'null': null_ok,
-                })
-        return items
-
-    ## tables and rows ##
-
-    def tables(self, rdb=0, _care=('TABLE', 'VIEW')):
-        self._register()
-        c = self.getcursor()
-        c.execute(
-            "SELECT t.tablename AS NAME, 'TABLE' AS TYPE "
-            "  FROM pg_tables t WHERE tableowner <> 'postgres' "
-            "UNION SELECT v.viewname AS NAME, 'VIEW' AS TYPE "
-            "  FROM pg_views v WHERE viewowner <> 'postgres' "
-            "UNION SELECT t.tablename AS NAME, 'SYSTEM_TABLE\' AS TYPE "
-            "  FROM pg_tables t WHERE tableowner = 'postgres' "
-            "UNION SELECT v.viewname AS NAME, 'SYSTEM_TABLE' AS TYPE "
-            "FROM pg_views v WHERE viewowner = 'postgres'")
-        res = []
-        for name, typ in c.fetchall():
-            if typ in _care:
-                res.append({'TABLE_NAME': name, 'TABLE_TYPE': typ})
-        self.putconn()
-        return res
-
-    def columns(self, table_name):
-        self._register()
-        c = self.getcursor()
-        try:
-            r = c.execute('SELECT * FROM "%s" WHERE 1=0' % table_name)
-        except:
-            return ()
-        self.putconn()
-        return self.convert_description(c.description, True)
-    
-    ## query execution ##
-
-    def query(self, query_string, max_rows=None, query_data=None):
-        self._register()
-        self.calls = self.calls+1
-
-        desc = ()
-        res = []
-        nselects = 0
-
-        c = self.getcursor()
-
-        try:
-            for qs in [x for x in query_string.split('\0') if x]:
-                if type(qs) == unicode:
-                    if self.encoding:
-                        qs = qs.encode(self.encoding)
-                try:
-                    if query_data:
-                        c.execute(qs, query_data)
-                    else:
-                        c.execute(qs)
-                except psycopg2.OperationalError, e:
-                    try:
-                        self.close()
-                    except:
-                        pass
-                    self.open()
-                    try:
-                        if   query_data:
-                            c.execute(qs, query_data)
-                        else:
-                            c.execute(qs)
-                    except (psycopg2.ProgrammingError,
-                            psycopg2.IntegrityError), e:
-                        if e.args[0].find("concurrent update") > -1:
-                            raise ConflictError
-                        raise e
-                except (psycopg2.ProgrammingError, psycopg2.IntegrityError), e:
-                    if e.args[0].find("concurrent update") > -1:
-                        raise ConflictError
-                    raise e
-                if c.description is not None:
-                    nselects += 1
-                    if c.description != desc and nselects > 1:
-                        raise psycopg2.ProgrammingError(
-                            'multiple selects in single query not allowed')
-                    if max_rows:
-                        res = c.fetchmany(max_rows)
-                    else:
-                        res = c.fetchall()
-                    desc = c.description
-            self.failures = 0
-
-        except StandardError, err:
-            self._abort()
-            raise err
-        
-        return self.convert_description(desc), res
diff --git a/psycopg2/ZPsycopgDA/dtml/add.dtml b/psycopg2/ZPsycopgDA/dtml/add.dtml
deleted file mode 100644 (file)
index c718ded..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-<dtml-var manage_page_header>
-
-<dtml-var "manage_form_title(this(), _,
-           form_title='Add Z Psycopg 2 Database Connection',
-           help_product='ZPsycopgDA',
-           help_topic='ZPsycopgDA-Method-Add.stx'
-           )">
-
-<p class="form-help">
-A Zope Psycopg 2 Database Connection is used to connect and execute
-queries on a PostgreSQL database.
-</p>
-
-<p class="form-help"> 
-In the form below <em>Connection String</em> (also called the Data Source Name
-or DSN for short) is a string... (TODO: finish docs)
-</p>
-
-<form action="manage_addZPsycopgConnection" method="POST">
-<table cellspacing="0" cellpadding="2" border="0">
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-label">
-    Id
-    </div>
-    </td>
-    <td align="left" valign="top">
-    <input type="text" name="id" size="40"
-           value="Psycopg2_database_connection" />
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-optional">
-    Title
-    </div>
-    </td>
-    <td align="left" valign="top">
-    <input type="text" name="title" size="40"
-        value="Z Psycopg 2 Database Connection"/>
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-label">
-    Connection string
-    </div>
-    </td>
-    <td align="left" valign="top">
-    <input type="text" name="connection_string" size="40" value="" />
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-label">
-    Connect immediately
-    </div>
-    </td>
-    <td align="left" valign="top">
-    <input type="checkbox" name="check" value="YES" checked="YES" />
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-label">
-    Use Zope's internal DateTime
-    </div>
-    </td>
-    <td align="left" valign="top">
-    <input type="checkbox" name="zdatetime" value="YES" checked="YES" />
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-label">
-    Transaction isolation level
-    </div>
-    </td>
-    <td align="left" valign="top">
-      <select name="tilevel:int">
-        <option value="1">Read committed</option>
-        <option value="2" selected="YES">Serializable</option>
-      </select>
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top" colspan="2">
-    <div class="form-element">
-    <input class="form-element" type="submit" name="submit" value=" Add " />
-    </div>
-    </td>
-  </tr>
-</table>
-</form>
-
-<dtml-var manage_page_footer>
diff --git a/psycopg2/ZPsycopgDA/dtml/browse.dtml b/psycopg2/ZPsycopgDA/dtml/browse.dtml
deleted file mode 100644 (file)
index deffd0a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-  <head><title><dtml-var title_or_id >tables</title></head>
-  <body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
-    <dtml-var manage_tabs>
-    <dtml-tree header="info">
-      <IMG SRC="<dtml-var SCRIPT_NAME >/misc_/ZPsycopgDA/<dtml-var icon>"
-       ALT="<dtml-var Type>" BORDER="0">
-      <dtml-var Name><dtml-var Description>
-    </dtml-tree>
-  </body>
-</html>
diff --git a/psycopg2/ZPsycopgDA/dtml/edit.dtml b/psycopg2/ZPsycopgDA/dtml/edit.dtml
deleted file mode 100644 (file)
index 7cb371f..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<dtml-var manage_page_header>
-<dtml-var manage_tabs>
-
-<form action="manage_edit" method="POST">
-<table cellspacing="0" cellpadding="2" border="0">
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-optional">
-    Title
-    </div>
-    </td>
-    <td align="left" valign="top">
-    <input type="text" name="title" size="40"
-        value="&dtml-title;"/>
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-label">
-    Connection string
-    </div>
-    </td>
-    <td align="left" valign="top">
-    <input type="text" name="connection_string" size="40"
-           value="&dtml-connection_string;" />
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-label">
-    Use Zope's internal DateTime
-    </div>
-    </td>
-    <td align="left" valign="top">
-    <input type="checkbox" name="zdatetime" value="YES"
-      <dtml-if expr="zdatetime">checked="YES"</dtml-if> />
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top">
-    <div class="form-label">
-    Transaction isolation level
-    </div>
-    </td>
-    <td align="left" valign="top">
-      <select name="tilevel:int">
-        <option value="1"
-                <dtml-if expr="tilevel==1">selected="YES"</dtml-if>>
-        Read committed</option>
-        <option value="2"
-                <dtml-if expr="tilevel==2">selected="YES"</dtml-if>>
-        Serializable</option>
-      </select>
-    </td>
-  </tr>
-  <tr>
-    <td align="left" valign="top" colspan="2">
-    <div class="form-element">
-    <input class="form-element" type="submit" name="submit"
-     value=" Save Changes " />
-    </div>
-    </td>
-  </tr>
-</table>
-</form>
-
-<dtml-var manage_page_footer>
diff --git a/psycopg2/ZPsycopgDA/dtml/table_info.dtml b/psycopg2/ZPsycopgDA/dtml/table_info.dtml
deleted file mode 100644 (file)
index 639c23f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<dtml-var standard_html_header>
-
-<dtml-var TABLE_TYPE><dtml-if TABLE_OWNER>
- owned by <dtml-var TABLE_OWNER></dtml-if>
-<dtml-if REMARKS><br><dtml-var REMARKS></dtml-if>
-
-<dtml-var standard_html_footer>
diff --git a/psycopg2/ZPsycopgDA/icons/bin.gif b/psycopg2/ZPsycopgDA/icons/bin.gif
deleted file mode 100644 (file)
index e469126..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/bin.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/date.gif b/psycopg2/ZPsycopgDA/icons/date.gif
deleted file mode 100644 (file)
index 0d88a57..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/date.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/datetime.gif b/psycopg2/ZPsycopgDA/icons/datetime.gif
deleted file mode 100644 (file)
index faa540b..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/datetime.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/field.gif b/psycopg2/ZPsycopgDA/icons/field.gif
deleted file mode 100644 (file)
index 9bf8692..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/field.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/float.gif b/psycopg2/ZPsycopgDA/icons/float.gif
deleted file mode 100644 (file)
index dd42729..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/float.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/int.gif b/psycopg2/ZPsycopgDA/icons/int.gif
deleted file mode 100644 (file)
index ef2c5e3..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/int.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/stable.gif b/psycopg2/ZPsycopgDA/icons/stable.gif
deleted file mode 100644 (file)
index acdd37d..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/stable.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/table.gif b/psycopg2/ZPsycopgDA/icons/table.gif
deleted file mode 100644 (file)
index cce83be..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/table.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/text.gif b/psycopg2/ZPsycopgDA/icons/text.gif
deleted file mode 100644 (file)
index a2e5aab..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/text.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/time.gif b/psycopg2/ZPsycopgDA/icons/time.gif
deleted file mode 100644 (file)
index 6d08915..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/time.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/view.gif b/psycopg2/ZPsycopgDA/icons/view.gif
deleted file mode 100644 (file)
index 71b30de..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/view.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/icons/what.gif b/psycopg2/ZPsycopgDA/icons/what.gif
deleted file mode 100644 (file)
index 8b5516e..0000000
Binary files a/psycopg2/ZPsycopgDA/icons/what.gif and /dev/null differ
diff --git a/psycopg2/ZPsycopgDA/pool.py b/psycopg2/ZPsycopgDA/pool.py
deleted file mode 100644 (file)
index 05af0a5..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# ZPsycopgDA/pool.py - ZPsycopgDA Zope product: connection pooling
-#
-# Copyright (C) 2004 Federico Di Gregorio <fog@initd.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# Or, at your option this program (ZPsycopgDA) can be distributed under the
-# Zope Public License (ZPL) Version 1.0, as published on the Zope web site,
-# http://www.zope.org/Resources/ZPL.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.
-#
-# See the LICENSE file for details.
-
-# all the connections are held in a pool of pools, directly accessible by the
-# ZPsycopgDA code in db.py
-
-import threading
-import psycopg2.pool
-
-_connections_pool = {}
-_connections_lock = threading.Lock()
-
-def getpool(dsn, create=True):
-    _connections_lock.acquire()
-    try:
-        if not _connections_pool.has_key(dsn) and create:
-            _connections_pool[dsn] = \
-                psycopg2.pool.PersistentConnectionPool(4, 200, dsn)
-    finally:
-        _connections_lock.release()
-    return _connections_pool[dsn]
-
-def flushpool(dsn):
-    _connections_lock.acquire()
-    try:
-        _connections_pool[dsn].closeall()
-        del _connections_pool[dsn]
-    finally:
-        _connections_lock.release()
-        
-def getconn(dsn, create=True):
-    return getpool(dsn, create=create).getconn()
-
-def putconn(dsn, conn, close=False):
-    getpool(dsn).putconn(conn, close=close)
diff --git a/psycopg2/debian/changelog b/psycopg2/debian/changelog
deleted file mode 100644 (file)
index 44d83dc..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-psycopg2 (1.99.12.1-1) experimental; urgency=low
-
-  * Adapted from patches sent by W. Borgert.
-  * Renamed source package to psycopg2.
-
- -- Federico Di Gregorio <fog@debian.org>  Fri,  4 Mar 2005 13:11:43 +0100
-
-psycopg2 (1.99.11-0.1) unstable; urgency=low
-  
-  * Experimental package.
-
- -- W. Borgert <debacle@debian.org>  Sun, 09 Jan 2005 10:14:09 +0000
diff --git a/psycopg2/debian/control b/psycopg2/debian/control
deleted file mode 100644 (file)
index 9c63676..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-Source: psycopg2
-Section: python
-Priority: optional
-Build-depends: postgresql-dev, debhelper (>> 3), python2.3-dev, cdbs
-Maintainer: Federico Di Gregorio <fog@debian.org>
-Standards-Version: 3.6.1.1
-
-Package: python-psycopg2
-Architecture: any
-Section: python
-Depends: python (>= 2.3), python (<< 2.4), python2.3-psycopg2
-Description: Python module for PostgreSQL [dummy package]
- psycopg is a PostgreSQL database adapter for the Python programming
- language. It was written from scratch with the aim of being very small
- and fast, and stable as a rock. The main advantages of psycopg are that
- it supports the full Python DBAPI-2.0 and being thread safe at level 2.
- .
- psycopg 2 is the next generation psycopg, implementing a much better
- type system and even more DBAPI extensions:
- .
- * support for Python datetime and Decimal types;
- * complete implementation of adapt() from PEP 246 to convert Python
-   types to PostgreSQL ones;
- * COPY FROM/COPY TO support;
- * inehritable connection and cursor objects and support for connection
-   and cursor factories;
- * automatic encoding conversion and support for unicode queries.
- .
- This dummy package just depends on the right, default version of Python 
- and psycopg 2.
-
-Package: python2.3-psycopg2
-Architecture: any
-Section: python
-Depends: ${shlibs:Depends}, python2.3
-Description: Python 2.3 module for PostgreSQL
- psycopg is a PostgreSQL database adapter for the Python programming
- language. It was written from scratch with the aim of being very small
- and fast, and stable as a rock. The main advantages of psycopg are that
- it supports the full Python DBAPI-2.0 and being thread safe at level 2.
- .
- psycopg 2 is the next generation psycopg, implementing a much better
- type system and even more DBAPI extensions:
- .
- * support for Python datetime and Decimal types;
- * complete implementation of adapt() from PEP 246 to convert Python
-   types to PostgreSQL ones;
- * COPY FROM/COPY TO support;
- * inehritable connection and cursor objects and support for connection
-   and cursor factories;
- * automatic encoding conversion and support for unicode queries.
diff --git a/psycopg2/debian/copyright b/psycopg2/debian/copyright
deleted file mode 100644 (file)
index c631915..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-psycopg 2 can be downloaded from:
-
-    http://initd.org/pub/software/psycopg/ALPHA/
-
-Copyright (c) 2001-2005 Federico Di Gregorio <fog@debian.org>
-
-This program is distributed under the GNU GPL.
-On Debian GNU/Linux systems, the complete text of the GNU General
-Public License can be found in '/usr/share/common-licenses/GPL'.
diff --git a/psycopg2/debian/rules b/psycopg2/debian/rules
deleted file mode 100755 (executable)
index 98ad46f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/make -f
-
-include /usr/share/cdbs/1/rules/debhelper.mk
-include /usr/share/cdbs/1/class/python-distutils.mk
diff --git a/psycopg2/doc/ChangeLog-1.x b/psycopg2/doc/ChangeLog-1.x
deleted file mode 100644 (file)
index dadfc1b..0000000
+++ /dev/null
@@ -1,1744 +0,0 @@
-2003-07-26  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.1.7.
-
-       * ZPsycopgDA/db.py: added _cursor method that checks for self.db
-       before returning a new cursor. Should fix problem reported with
-       Zope 2.7.  
-
-2003-07-23  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c: applied notify and fileno patch from Vsevolod Lobko.
-
-2003-07-20  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_mogrify_dict): applied (slightly modofied) patch from
-       Tobias Sargeant: now .execute() accept not only dictionaries but
-       every type that has a __getitem__ method.
-
-2003-07-13  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.1.6.
-
-       * cursor.c (psyco_curs_scroll): added scroll method, patch from
-       Jason D.Hildebrand.
-
-       * typemod.c (new_psyco_quotedstringobject): discard NUL characters
-       (\0) in quoted strings (fix problem reported by Richard Taylor.)
-
-2003-07-10  Federico Di Gregorio  <fog@debian.org>
-
-       * Added python-taylor.txt in doc directory: very nice introduction
-       to DBAPI programming by Richard Taylor.
-
-2003-07-09  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_psyco_curs_execute): another MT problem exposed and
-       fixed by Sebastien Bigaret (self->keeper->status still LOCKED
-       after a fatal error during PQexec call.)
-
-2003-06-23  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.1.5.1.
-
-       * ZPsycopgDA/db.py (DB.query): stupid error making ZPsycopgDA
-       unusable fixed (else->except).
-
-2003-06-22  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.1.5 candidate.
-
-       * cursor.c (psyco_curs_copy_to): now any object with the write
-       method can be used as a copy_to target.  
-
-2003-06-20  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (psyco_curs_copy_from): applied patch to allow copy_to
-       from any object having a "readline" attribute (patch from Lex
-       Berezhny.) (psyco_curs_copy_from): another patch from Lex to make
-       psycopg raise an error on COPY FROM errors. 
-
-       * ZPsycopgDA/db.py (DB.query): if a query raise an exception,
-       first self._abort() is called to rollback current
-       "sub-transaction".  this is a backward-compatible change for
-       people that think continuing to work in the same zope transaction
-       after an exception is a Good Thing (TM).
-
-       * finally updated check_types.expected. checked by hand the
-       conversions work the right way.
-
-       * doc/examples/work.py: fixed example. note that it is a long time
-       (at least two releases) that psycopg does not END a transaction
-       initiated explicitly by the user while in autocommit mode.
-
-2003-06-19  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_mogrify_dict): fixed dictionary mogrification (patch
-       by Vsevolod Lobko.) (_psyco_curs_execute): fixed keeper status
-       trashing problem by letting only one thread at time play with
-       keeper->status (as suggested by Sebastien Bigaret.)
-
-2003-05-07  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.1.4.
-
-       * cursor.c: Added "statusmessage" attribute that holds the backend
-       message (modified lots of functions, look for self->status).
-
-2003-05-06  Federico Di Gregorio  <fog@debian.org>
-
-       * typemod.c (new_psyco_datetimeobject): moved Py_INCREF into
-       XXX_FromMx functions, to fix memory leak reported by Jim Crumpler.
-
-2003-04-11  Federico Di Gregorio  <fog@debian.org>
-
-       * module.h (PyObject_TypeCheck): fixed leak in python 2.1
-       (Guido van Rossum).
-
-2003-04-08  Federico Di Gregorio  <fog@debian.org>
-
-       * buildtypes.py (basic_types): removed LXTEXT (never user, does
-       not exists anymore.)
-
-2003-04-07  Federico Di Gregorio  <fog@debian.org>
-
-       * setup.py: added very lame setup.py script.
-
-2003-04-02  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.3. 
-
-       * psycopg.spec: Added (but modified) spec file by William
-       K. Volkman (again, this change was lost somewhere in time...)
-
-2003-04-01  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_psyco_curs_execute): psycopg was reporting everything
-       as IntegrityError; reported and fix suggested by Amin Abdulghani.
-
-2003-03-21  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (psyco_curs_fetchone): debug statements sometimes made
-       psycopg segfault: fixed by a patch by Ken Simpson.
-
-2003-03-18  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (alloc_keeper): patch from Dieter Maurer to unlock GIL
-       whaile calling PQconnectdb().
-
-2003-03-05  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.1.2.
-
-       * Applied cygwin patch from Hajime Nakagami.
-
-2003-02-25  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.1.2pre1.
-       
-       * cursor.c: added .lastrowid attribute to cursors (lastoid is
-       deprecated and will be removed sometime in the future.)
-
-       * cursor.c (begin_pgconn): implemented various isolation levels
-       (also, in abort_pgconn, commit_pgconn.)
-
-       * Added keyword parameters to psycopg.connect(): all take strings
-       (even port): database, host, port, user, password.
-       
-       * configure.in: fixed test for postgres version > 7.2.
-
-       * cursor.c (_psyco_curs_execute): removed if on pgerr in default
-       case (if we enter default pgerr can't be one of the cased ones.)
-       Also applied slightly modified patch from  William K. Volkman.
-
-2003-02-24  Federico Di Gregorio  <fog@debian.org>
-
-       * Merged in changes from 1.0.15.1 (see below for merged
-       ChangeLog.)
-
-2003-02-14  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.15.1.
-
-       * cursor.c (_mogrify_fmt): in some cases we where removing one
-       character too much from the format string, resulting in BIG BAD
-       BUG. <g> Fixed.
-
-2003-02-13  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.15. <g>
-       
-       * connection.c (_psyco_conn_close): now call dispose_pgconn on all
-       cursors, to make sure all phisical connections to the db are
-       closed (problem first reported by Amin Abdulghani.)
-
-       * DBAPI-2.0 fixed mainly due to Stuart Bishop:
-         - cursor.c (psyco_curs_setinputsizes): removed PARSEARGS, as
-           this method does nothing.
-         - cursor.c (psyco_curs_setoutputsize): .setoutputsize was
-           spelled .setoutputsizes! fixed. Also removed PARSEARGS, as this
-           method does nothing.
-
-2003-02-12  Federico Di Gregorio  <fog@debian.org>
-
-       * module.h (Dprintf): check on __APPLE__ to avoid variadic macros
-       on macos x (as reported by Stuart Bishop, btw, why gcc seems to
-       not support them on macos?)
-
-       * cursor.c (_mogrify_fmt): non-alphabetic characters are dropped
-       after the closing ")" until a real alphabetic, formatting one is
-       found. (Fix bug reported by Randall Randall.)
-
-2003-02-05  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_INTERVAL_cast): patched again to take into
-       account leading zeroes.
-
-2003-02-02  Federico Di Gregorio  <fog@debian.org>
-
-       * Makefile.pre.in: applied patch from Albert Chin-A-Young to
-       define BLDSHARED.
-
-       * README: added explicit permission to link with OpenSSL.
-
-2003-01-30  Federico Di Gregorio  <fog@debian.org>
-
-       * config.h.in: applied patch from Albert Chin-A-Young to fix
-       asprintf prototype.
-
-2003-01-29  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_mogrify_seq): fixed little refcount leak, as
-       suggested by Yves Bastide.
-
-2003-01-24  Federico Di Gregorio  <fog@debian.org>
-
-       * Merged-in changes from 1.0.14.2 (emacs diff mode is great..)
-
-       * Release 1.0.14.2.
-
-       * ZPsycopgDA/db.py (DB.query): back to allowing up to 1000 db
-       errors before trying to reopen the connection by ourselves.
-       
-       * ZPsycopgDA/db.py: a false (None preferred, 0 allowed) max_rows
-       value now means "fetch all results".
-
-2003-01-22  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (psyco_curs_fetchone): fixed little memory leak
-       reported by Dieter Maurer.
-
-2003-01-20  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py (DB.tables/columns): added registration with
-       Zope's transaction machinery.
-
-       * Release 1.0.14.1.
-
-       * ZPsycopgDA/db.py: applied some fixes and cleanups by Dieter
-       Maurer (serialization problem were no more correctly detected!)
-
-       * Release 1.0.14.
-       
-       * Merged in 1.0.14.
-
-       * Import of 1.1.1 done.
-       
-       * Moved everything to cvs HEAD.
-
-2003-01-20  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/connectionAdd.dtml: fixed typo (thanks to Andrew
-       Veitch.)
-
-       * typeobj.c (psyco_INTERVAL_cast): applied patch from Karl Putland
-       to fix problems with fractional seconds.
-
-2002-12-03  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.14-pre2.
-
-       * module.h: added macro for PyObject_TypeCheck if python version <2.2.
-
-       * typeobj.c (psyco_DBAPITypeObject_coerce): added error message to
-       coercion errors.
-
-2002-12-02  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.14-pre1.
-
-       * ZPsycopgDA/db.py (DB.sortKey): added sortKey().
-       
-       * ZPsycopgDA/DA.py: applied a patch that was lost on hard disk
-       (sic), if you sent me a patch names psycopg-1.0.13.diff modifying
-       DA.py imports and want your name here, send me an email. :)
-       [btw, the patch fix the ImageFile import, getting it from Globals
-       as it is right.]
-
-       * typeobj.c (psyco_DBAPITypeObject_coerce): Fixed coerce segfault
-       by checking explicitly for all the allowed types.
-
-2002-11-25  Federico Di Gregorio  <fog@debian.org>
-
-       * doc/examples/*.py: added .rollback() to all exceptions before
-       deleteing the old table. 
-
-       * cursor.c: Apllied patch from John Goerzen (fix memory leak in
-       executemany).
-
-2002-10-25  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.13.
-
-       * connection.c (_psyco_conn_close): remove cursors from the list
-       starting from last and moving backward (as suggested by Jeremy
-       Hylton; this is not such a big gain because python lists are
-       *linked* lists, but not removing the element 0 makes the code a
-       little bit clear.)
-
-       * cursor.c (_psyco_curs_execute): now IntegrityError is raised
-       instead of ProgrammingError when adding NULL values to a non-NULL
-       column (suggested by Edmund Lian) and on referential integrity
-       violation (as per debian bug #165791.)
-
-       * typeobj.c (psyco_DATE_cast): now we use 999999 instead of
-       5867440 for very large (both signs) dates. This allow to re-insert
-       the DateTime object into postgresql (suggested by Zahid Malik.) 
-
-2002-09-13  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.12.
-
-       * Removed code to support COPY FROM/TO, will be added to new 1.1
-       branch to be released next week.
-
-       * cursor.c (_mogrify_seq): Fixed memory leak reported by Menno
-       Smits (values obtained by calling PySequence_GetItem are *new*
-       references!)
-
-2002-09-07  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_psyco_curs_execute): Added skeleton to support COPY
-       FROM/TO.
-
-2002-09-06  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: if libcrypt can't be found we probably are on
-       MacOS X: check for libcrypto, as suggested by Aparajita Fishman.
-
-2002-09-03  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py (DB.columns): Applied patch from Dieter Maurer
-       to allow the DA-browser to work with mixed case table names.
-
-2002-08-30  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py (cast_DateTime): Applied patch from Yury to fix
-       timestamps (before they were returned with time always set to 0.)
-
-2002-08-26  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.11.1 (to fix a %&£$"! bug in ZPsycopgDA not
-       accepting psycopg 1.0.11 as a valid version.
-
-       * Release 1.0.11.
-
-2002-08-22  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.11pre2.
-
-       * cursor.c (_psyco_curs_execute): fixed IntegrityError as reported
-       by Andy Dustman. (psyco_curs_execute): converting TypeError to
-       ProgrammingError on wrong number of % and/or aeguments. 
-
-       * doc/examples/integrity.py: added example and check for
-       IntegrityError.
-
-2002-08-08  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.11pre1.
-
-2002-08-06  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py (cast_DateTime): patched as suggested by Tom
-       Jenkins; now it shouldwork with time zones too.
-
-2002-08-01  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py (cast_DateTime): fixed problem with missing
-       AM/PM, as reported by Tom Jenkins.
-
-2002-07-23  Federico Di Gregorio  <fog@debian.org>
-
-       * Fixed buglets reported by Mike Coleman.
-
-2002-07-22  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.10.
-
-2002-07-14  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.10pre2.
-       
-       * typeobj.c (psyco_LONGINTEGER_cast): fixed bad segfault by
-       INCREFfing Py_None when it is the result of a NULL conversion.
-
-2002-07-04  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.10pre1.
-       
-       * buildtypes.py (basic_types): added TIMESTAMPTZ to the types
-       converted by the DATE builtin.
-       
-       * ZPsycopgDA/DA.py (Connection.connect): Added version check.
-
-2002-07-03  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_XXX_cast): fixed bug reported by multiple users
-       by appliying Matt patch. 
-
-2002-06-30  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py (Connection.set_type_casts): applied patch from
-       Tom Jenkins to parse dates with TZ.
-
-2002-06-20  Federico Di Gregorio  <fog@debian.org>
-
-       * Preparing for release 1.0.9.
-
-       * Makefile.pre.in (dist): now we really include psycopg.spec.
-
-2002-06-17  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py (_finish, _abort): fixed problem with
-       connection left in invalid state by applying Tom Jenkins patch.
-
-2002-06-06  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py (DB._abort): fixed exception raising after an
-       error in execute triggerer deletion of self.db.
-
-2002-05-16  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (psyco_curs_fetchone): None values passed to the
-       internal typecasters. 
-
-       * typeobj.c: added management of None to all the builtin
-       typecasters. 
-
-2002-04-29  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py (cast_Time): applied 'seconds as a float' patch
-       from Jelle.
-
-2002-04-23  Federico Di Gregorio  <fog@debian.org>
-
-        * Release 1.0.8.
-
-       * Makefile.pre.in: we now include win32 related files in the
-       distribution. 
-       
-       * connection.c (psyco_conn_destroy): fixed segfault reported by
-       Scott Leerssen (we were double calling _psyco_conn_close().)
-
-       * typemod.c (new_psyco_quotedstringobject): fixed memory stomping
-       catched by assert(); thanks to Matt Hoskins for reporting this
-       one.
-
-2002-04-22  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: grmpf. we need a VERSION file for windows, we'll
-       use it for configue and debian/rules too. 
-
-       * Integrated win32 changes from Jason Erickson. Moved his
-       Readme.txt to README.win32, removed VERSION and DATE, patched
-       source where required. Renamed HISTORY to ChangeLog.win32, hoping
-       Jason will start adding changes to the real ChangeLog file.
-
-2002-04-07  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.7.1.
-       
-       * configure.in: fixed little bug as reported by ron.
-
-2002-04-05  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.7?
-       
-       * typemod.c (new_psyco_bufferobject): fixed encoding problem (0xff
-       now encoded as \377 and not \777.) Also encoding *all* chars as
-       quoted octal values to prevent "Invalid UNICODE character sequence
-       found" errors.
-
-       * Release 1.0.7. (Real this time.) (Ok, it was a joke....)
-
-2002-04-03  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: fixed problem with postgres versions in the format
-       7.2.x (sic.)
-
-       * connection.c (psyco_conn_destroy): moved most of the destroy
-       stuff into its own function (_psyco_conn_close) and added a call
-       to it from psyco_conn_close. This should fix the "psycopg does not
-       release postgres connections on .close()" problem.
-
-2002-03-29  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.7. Delayed.
-       
-       * buildtypes.py (basic_types): added TIMESTAMPTZ postgres type to
-       the list of valid DATETIME types (incredible luck, no changes to
-       the parse are needed!)
-
-       * typeobj.c (psyco_DATE_cast): fixed wrong managment of sign in
-       infinity.
-
-2002-03-27  Federico Di Gregorio  <fog@debian.org>
-       
-       * configure.in (INSTALLOPTS): added AC_PROG_CPP test, now uses
-       AC_TRY_CPP to test for _all_ required mx includes.
-
-2002-03-19  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: added check for both pg_config.h and config.h to
-       detect postgres version.
-
-       * cursor.c: now None values are correctly handled when the format
-       string is not %s but %d, etc.
-
-2002-03-08  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py: added MessageDialog import suggested by
-       Guido.
-
-2002-03-07  Federico Di Gregorio  <fog@debian.org>
-
-       * psycopg.spec: added RPM specs by William K. Volkman.
-
-       * Release 1.0.6.
-       
-       * configure.in: imported changes to allow postgres 7.2 builds from
-       unstable branch.
-
-2002-03-04  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0.5.
-
-       * applied table browser patch from Andy Dustman. 
-
-2002-02-26  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_DATE_cast): added management of infinity
-       values, this can be done in a better way, by accessing the
-       MaxDateTime and MinDateTime constants of the mx.DateTime module.
-
-2002-02-20  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: Release 1.0.4.
-
-2002-02-12  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py (DB.columns): fixed select to reenable column
-       expansion in table browsing.
-
-       * ZPsycopgDA/__init__.py: removed code that made psycopg think
-       double.  
-
-2002-02-11  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_mogrify_dict): removed Py_DECREF of Py_None,
-       references returned by PyDict_Next() are borrowed (thanks to
-       Michael Lausch for this one.)
-
-2002-02-08  Federico Di Gregorio  <fog@debian.org>
-
-       * A little bug slipped in ZPsycopgDA, releasing 1.0.3 immediately.
-
-        * Release 1.0.2.
-       
-       * tests/check_types.py (TYPES): added check for hundredths of a
-       second. 
-
-2002-02-07  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_INTERVAL_cast): patched to correct wrong
-       interpretation of hundredths of a second (patch from
-       A. R. Beresford, kudos!)
-
-2002-01-31  Federico Di Gregorio  <fog@debian.org>
-
-       * FAQ: added.
-
-2002-01-16  Federico Di Gregorio  <fog@debian.org>
-
-       * Preparing for release 1.0.1.
-       
-       * cursor.c (alloc_keeper): removed ALLOW_THREADS wrapper around
-       PQconnectdb: libpq calls crypt() that is *not* reentrant.
-
-2001-12-19  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_DBAPITypeObject_cmp): added check to simply
-       return false when two type objects are compared (type objects are
-       meaned to be compared to integers!)
-
-       * typeobj.c: fixed the memory leak reported by the guys at
-       racemi, for real this time. (added about 5 DECREFS and 2 INCREFS,
-       ouch!)
-       
-2001-12-17  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_DBAPITypeObject_cmp): fixed memory leak by
-       using PyTuple_GET_ITEM (we are sure the tuple has at least one
-       element, we built it, after all...) (many thanks to Scott Leerssen
-       for reporting the *exact line* for this one.)
-
-2001-12-13  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c: fixed memory leak due to extra strdup (thanks
-       to Leonardo Rochael Almeida.)
-
-2001-11-14  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 1.0. 
-
-       * doc/README: added explanation about guide work in progess but
-       examples working.
-
-       * debian/*: lots of changes to release 1.0 in debian too.
-
-2001-11-12  Federico Di Gregorio  <fog@debian.org>
-
-       * RELEASE-1.0: added release file, to celebrate 1.0.
-
-       * tests/zope/typecheck.zexp: regression test on types for zope.
-
-2001-11-11  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py (cast_Interval): removed typecast of interval
-       into zope DateTime. intervals are reported as strings when using
-       zope DateTime and as DateTimeDeltas when using mx.
-
-2001-11-09  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_INTERVAL_cast): complete rewrite of the
-       interval parsing code. now we don't use sscanf anymore and all is
-       done with custom code in a very tight and fast loop. 
-
-2001-11-08  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/DA.py (Connection.set_type_casts): added mx INTERVAL
-       type restore.
-
-       * ZPsycopgDA/db.py (DB.query): now we return column names even if
-       there are no rows in the result set. also, cleaned up a little bit
-       the code.
-
-2001-11-7  Federico Di Gregorio,  <fog@debian.org>
-
-       * Makefile.pre.in: fixed small problem with zcat on True64 
-       (thank you stefan.)
-
-2001-11-06  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py (DB.query): added fix for concurrent update
-       from Chris Kratz.
-
-2001-11-05  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c: now we include postgres.h if InvalidOid is still
-       undefined after all other #includes.
-
-       * README: clarified use of configure args related to python
-       versions.
-
-       * aclocal.m4: patched to work with symlinks installations (thanks
-       to Stuart Bishop.)
-
-       * cursor.c (_psyco_curs_execute): now reset the keeper's status to
-       the old value and not to BEGIN (solve problem with autocommit not
-       switching back.)
-
-2001-11-01  Federico Di Gregorio  <fog@debian.org>
-
-       * doc/examples/dt.py: added example on how to use the date and
-       time constructors. 
-
-       * Makefile.pre.in (dist-zope): removed dependencies on GNU install
-       and tar commands. Also a little general cleanup on various targets.
-
-       * ZPsycopgDA/DA.py: fixed mx.DateTime importing. 
-
-2001-10-31  Federico Di Gregorio  <fog@debian.org>
-
-       * typemod.c (psyco_xxxFromMx): fixed bug in argument parsing (we
-       weren't usigng the right type object.) 
-
-       * aclocal.m4: now builds OPT and LDFLAGS on the values of the env
-       variables instead of overwriting them.
-
-       * Makefile.pre.in (CFLAGS): removed -Wall, you can add it back at
-       compile time with OPT="-Wall" ./configure ...
-
-       * Setup.in (OPT): removed -Wall.
-
-2001-10-30  Michele Comitini <mcm@initd.net>
-
-       * module.h: ANSI C compatibility patch from Daniel Plagge.
-       
-2001-10-30  Federico Di Gregorio  <fog@debian.org>
-
-       * README: added common building problems and solutions.
-
-       * configure.in: removed check for install command, already done by
-       james's aclocal.m4 for python. removed install-sh. removed -s from
-       INSTALLOPTS.
-
-2001-10-29  Federico Di Gregorio  <fog@debian.org>
-
-       * Makefile.pre.in (dist): removed examples/ directory from
-       distribution. 
-
-       * merge with cvs head. preparing to fork again on PSYCOPG-1-0 (i
-       admit BRANCH_1_0 was quite a silly name.)
-
-       * doc/examples/usercast.py: now works. 
-
-       * connection.c (curs_rollbackall): fixed little bug (exposed by
-       the deadlock below) by changing KEEPER_READY to KEEPER_READY.
-
-       * doc/examples/commit.py: deadlock problem solved, was the
-       example script, _not_ psycopg. pew... :)
-
-       * examples/*: removed the examples moved to doc/examples/.
-       
-       * doc/examples/commit.py,dictfetch.py: moved from examples/ and
-       changed to work for 1.0. unfortunately commit.py locks psycopg!!!
-
-2001-10-24  Federico Di Gregorio  <fog@debian.org>
-
-       * modified all files neede for the 1.0 release.
-
-       * configure.in (MXFLAGS): removed electric fence support.
-
-       * Makefile.pre.in (dist): now we remove CVS working files before
-       packing the tarball.
-
-        * tests: files in this directory are not coding examples, but
-       regression tests. we need a sufficient number of tests to follow
-       every single code path in psycopg at least once. first test is
-       about datatypes.
-       
-       * doc/examples: moved new example code to examples directory, old
-       tests and code samples will stay in examples/ until the manual will
-       be finished.
-
-2001-10-16  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_INTERVAL_cast): completely revised interval
-       casting code. (psyco_TIME_cast): we use the unix epoch when the
-       date is undefined. 
-
-       * cursor.c (psyco_curs_executemany): modified sanity check to
-       accept sequences of tuples too and not just dictionaries.
-
-2001-10-15  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_INTERVAL_cast): fixed bug caused by wrong
-       parsing on '1 day' (no hours, minutes and seconds.)
-
-2001-10-15  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c (_execute): use the correct cast functions even on
-       retrival of binary cursors.
-
-2001-10-12  Federico Di Gregorio  <fog@debian.org>
-
-       * typemod.c (new_psyco_bufferobject): space not quoted anymore,
-       smarter formula to calculate realloc size.
-
-       * cursor.c (psyco_curs_fetchone): removed static tuple (using
-       static variable in multithreaded code is *crazy*, why did i do it? 
-       who knows...)
-
-       * typeobj.c (psyco_init_types): exports the binary converter (will
-       be used in cursor.c:_execute.)
-
-       * typeobj.h: added export of psyco_binary_cast object.
-
-2001-10-05  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_psyco_curs_execute): added missing Py_XDECREF on
-       casts list.
-
-       * Makefile.pre.in (dist): added install-sh file to the
-       distribution. 
-
-       * replaced PyMem_DEL with PyObject_Del where necessary.
-       
-       * connection.c (psyco_conn_destroy): added missing
-       pthread_mutex_destroy on keeper lock.
-
-2001-10-01  Michele Comitini  <mcm@initd.net>
-
-       * typemod.c(new_psyco_bufferobject()): using unsigned char for
-       binary objects to avoid too many chars escaped.  A quick and
-       simple formula to avoid memory wasting and too much reallocating
-       for the converted object.  Needs _testing_, but it is faster.
-
-       * cursor.c: #include <postgres.h>
-
-       * module.h: now debugging should be active only when asked by
-       ./configure --enable-devel
-       
-2001-09-29  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (new_psyco_cursobject): added locking of connection,
-       still unsure if necessary.
-
-2001-09-26  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: changed DEBUG into PSYCOTIC_DEBUG, to allow other
-       includes (postgres.h) to use the former. better compiler checks:
-       inline, ansi, gcc specific extensions. removed MXMODULE: we don't
-       need it anymore.
-
-       * general #include cleanup, should compile on MacOS X too.
-
-       * typeobj.c (psyco_DATE_cast): uses sscanf. should be faster too. 
-       (psyco_TIME_cast): dixit.
-
-       * applied patch from Daniel Plagge (SUN cc changes.)
-       
-2001-09-22  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py (DB._finish, DB._begin): fix for the 
-       self.db == None problem.
-
-2001-09-19  Michele Comitini  <mcm@initd.net>
-
-       * typemod.c (new_psyco_bufferobject): better memory managment
-       (now it allocates only needed space dinamically).
-
-       * typeobj.c (psyco_BINARY_cast): ripped a useless check, now
-       it assumes that binary streams come out from the db correctly
-       escaped.  Should be a lot faster.
-
-2001-09-18  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_INTERVAL_cast): fixed interval conversion
-       (hours were incorrectly converted into seconds.)
-
-2001-09-17  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_mogrify_seq, _mogrify_dict): added check for None
-       value and conversion of None -> NULL (fixes bug reported by Hamish
-       Lawson.)
-
-2001-09-12  Federico Di Gregorio  <fog@debian.org>
-
-       * module.c: added handles to new date and time conversion
-       functions (see below.)
-
-       * typemod.c (psyco_XXXFromMx): added conversion functions that
-       simply wrap the mxDateTime objects instead of creating
-       them. DBAPI-2.0 extension, off-curse. 
-
-2001-09-10  Federico Di Gregorio  <fog@debian.org>
-
-       * buildtypes.py: solved hidden bug by changing from dictionary to
-       list, to maintain ordering of types. sometimes (and just
-       sometimes) the type definitions were printed unsorted, resulting
-       is psycopg initializing the type system using the type objects in
-       the wrong order. you were getting float values from an int4
-       column? be happy, this is now fixed... 
-
-       * cursor.c (psyco_curs_lastoid): added method to get oid of the
-       last inserted row (it was sooo easy, it even works...) 
-
-2001-09-08  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_INTERVAL_cast): added casting function for the
-       postgres INTERVAL and TINTERVAL types (create a DateTimeDelta
-       object.)  
-
-2001-09-05  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c: moved all calls to begin_pgconn to a single call in
-       _psyco_curs_execute, to leave the connection in a not-idle status
-       after a commit or a rollback. this should free a lot of resources
-       on the backend side. kudos to the webware-discuss mailing list
-       members and to Clark C. Evans who suggested a nice solution.
-       
-       * connection.c (curs_rollbackall, curs_commitall): removed calls
-       to begin_pgconn, see above. 
-
-       * module.c (initpsycopg): cleaned up mxDateTime importing; we now
-       use the right function from mxDateTime.h. Is not necessary anymore
-       to include our own mx headers. This makes psycopg to depend on
-       mxDateTime >= 2.0.0.
-
-2001-09-04  Federico Di Gregorio  <fog@debian.org>
-
-       * doc/*.tex: added documentation directory and skeleton of the
-       psycopg guide. 
-
-2001-09-03  Federico Di Gregorio  <fog@debian.org>
-
-       * merged in changes from HEAD (mostly mcm fixes to binary
-       objects.)
-
-       * preparing for release 0.99.6.
-
-2001-09-03  Michele Comitini  <mcm@initd.net>
-
-       * typemod.c: much faster Binary encoding routine.
-       
-       * typeobj.c: much faster Binary decoding routine.       
-
-2001-08-28  Michele Comitini  <mcm@initd.net>
-
-       * typemod.c: Working binary object to feed data to bytea type
-       fields.
-
-       * typeobj.c: Added BINARY typecast to extract data from
-       bytea type fields.
-
-       * cursor.c: Added handling for SQL binary  cursors.
-
-2001-08-3  Michele Comitini <mcm@initd.net>
-
-       * cursor.c: fixed DATESTYLE problem thanx to Steve Drees.
-
-2001-07-26  Federico Di Gregorio  <fog@debian.org>
-
-       * Makefile.pre.in: applied change suggested by Stefan H. Holek to
-       clobber and distclean targets.
-
-2001-07-23  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py: fixed little bugs exposed by multiple select
-       changes, not we correctly import ListType and we don't override
-       the type() function with a variable. 
-
-2001-07-17  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: Release 0.99.5.
-
-2001-07-12  Federico Di Gregorio  <fog@debian.org>
-
-       * debian/* fixed some little packaging problems.
-
-2001-07-11  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c, typeobj.c: removed some Py_INCREF on PyDict_SetItem
-       keys and values to avoid memory leaks.
-
-2001-07-03  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_mogrify_dict): added dictionary mogrification: all
-       Strings in the dictionary are translated into QuotedStrings. it
-       even works... (_mogrify_seq): added sequence mogrification and
-       code to automagically mogrify all strings passed to .execute(). 
-
-2001-07-02  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.99.4.
-
-       * typemod.c: added QuotedString class and methods.
-
-       * module.c: added QuotedString method to module psycopg.
-
-       * typemod.c: changed Binary objects into something usefull. now
-       the buffer object quotes the input by translatin every char into
-       its octal representation. this consumes 4x memory but guarantees
-       that even binary data containing '\0' can go into the Binary
-       object. 
-
-       * typemod.h: added definition of QuotedString object.
-       
-2001-06-28  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py, ZPsycopgDA/DABase.py: applied patch sent by
-       yury to fix little buglet. 
-
-2001-06-22  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.99.3.
-       
-       * connection.c (new_psyco_connobject): now we strdup dsn, as a fix
-       for the problem reported by Jack Moffitt.
-
-       * Ok, this will be the stable branch from now on...
-
-       * Merged in stuff from 0.99.3. About to re-branch with a better
-       name (BRANCH_1_0)
-
-2001-06-20  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.99.3. Showstoppers for 1.0 are:
-           - documentation
-           - mxDateTime module loading
-           - bug reported by Yury.
-       
-       * Integrated patches from Michele:
-           - searching for libcrypt in configure now works
-           - removed memory leak in asprintf.c
-
-2001-06-15  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/__init__.py (initialize): applied patch from Jelle to
-       resolve problem with Zope 2.4.0a1.
-
-2001-06-14  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: added code to check for missing functions (only
-       asprintf at now.)
-
-       * asprintf.c: added compatibility code for oses that does not have
-       the asprintf() function.
-
-2001-06-10  Federico Di Gregorio  <fog@debian.org>
-
-       * Branched PSYCOPG_0_99_3. Development will continue on the cvs
-       HEAD, final adjustements and bugfixing should go to this newly
-       created branch.
-
-2001-06-08  Michele Comitini  <mcm@initd.net>
-
-       * ZPsycopgDA/DA.py: DateTime casts simplified and corrected
-       as suggested by Yury.
-
-2001-06-05  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.99.2.
-
-       * Makefile.pre.in (dist): added typemod.h and typemod.c to
-       distribution.
-       
-       * cursor.c (commit_pgconn, abort_pgconn, begin_pgconn): resolved
-       segfault reported by Andre by changing PyErr_SetString invokations
-       into pgconn_set_critical. the problem was that the python
-       interpreter simply segfaults when we touch its internal data (like
-       exception message) inside an ALLOW_THREADS wrapper.
-
-       * now that we are 100% DBAPI-2.0 compliant is time for the
-       one-dot-o release (at last!) Para-pa-pa! This one is tagged
-       PSYCOPG_0_99_1 but you can call it 1.0pre1, if you better like. 
-       (A very long text just to say 'Release 0.99.1')
-
-       * typemod.[ch]: to reach complete DBAPI-2.0 compliance we
-       introduce some new objects returned by the constructors Date(),
-       Time(), Binary(), etc. Those objects are module-to-database only,
-       the type system still takes care of the database-to-python
-       conversion.
-
-2001-06-01  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.5.5.
-
-       * module.h: better error message when trying to commit on a
-       cursor derived from serialized connection.
-       
-       * ZPsycopgDA/db.py (DB.close): now self.cursor is set to None when
-       the connection is closed.
-
-       * module.c (initpsycopg): added missing (sic) DBAPI module
-       parameters (paramstyle, apilevel, threadsafety, etc...)
-
-2001-05-24  Michele Comitini  <mcm@initd.net>
-
-       * ZPsycopgDA: Support for Zope's internal DateTime, option
-       to leave mxDateTime is available on the management interface so
-       to switch with little effort :).
-
-       * cursor.c: more aggressive cleanup of postgres results
-       to avoid the risk of memory leaking.
-
-       * typeobj.c, connection.c: deleted some Py_INCREF which
-       wasted memory.
-
-2001-05-18  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.5.4.
-
-2001-05-17  Michele Comitini  <mcm@initd.net>
-
-       * ZPsycopgDA/db.py: The connection closed by the management
-       interface of zope now raises error instead of reopening itself.
-
-       * cursor.c (psyco_curs_close):  does not try to free the cursor
-       list, as it caused a segfault on subsequent operations on the same
-       cursor.
-
-2001-05-07  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.5.3.
-       
-       * Merged in changes from me and mcm.
-
-2001-05-06  Michele Comitini  <mcm@initd.net>
-
-       * ZPsycopgDA/db.py (DB.close): Fixes a bug report by Andre
-       Shubert, which was still open since there was a tiny typo in
-       method definition.
-
-       * ZPsycopgDA/DA.py (Connection.sql_quote__): overriding standard
-       sql_quote__ method to provide correct quoting (thank to Philip
-       Mayers and Casey Duncan for this bug report).
-
-2001-05-04  Federico Di Gregorio  <fog@debian.org>
-
-       * ZPsycopgDA/db.py: added .close() method (as suffested by Andre
-       Schubert.)
-
-2001-05-04  Michele Comitini  <mcm@initd.net>
-
-       * module.h: working on a closed object now raises an
-       InterfaceError.
-
-       * ZPsycopgDA/db.py: fixed problems with dead connections detection.
-
-       * ZPsycopgDA/__init__.py: corrected SOFTWARE_HOME bug for zope
-       icon.
-
-2001-05-04  Federico Di Gregorio  <fog@debian.org>
-
-       * examples/thread_test.py: now that the serialization bug is
-       fixed, it is clear that thread_test.py is bugged! added a commit()
-       after the creation of the first table to avoid loosing it on the
-       exception raised by the CREATE of an existing table_b.
-
-2001-05-03  Federico Di Gregorio  <fog@debian.org>
-
-       * connection.c (psyco_conn_cursor): reverted to old locking
-       policy, the new caused a nasty deadlock. apparently the multiple
-       connection problem has been solved as a side-effect of the other
-       fixes... (?!)
-
-       * module.h: removes stdkeeper field from connobject, we don't need
-       it anymore.
-
-       * cursor.c (dispose_pgconn): now sets self->keeper to NULL to
-       avoid decrementing the keeper refcnt two times when the cursor is
-       first closed and then destroyed.
-
-       * connection.c (psyco_conn_cursor): fixed little bug in cursor
-       creation: now the connection is locked for the entire duration of
-       the cursor creation, to avoid a new cursor to be created with a
-       new keeper due to a delay in assigning the stdmanager cursor.
-
-       * cursor.c: added calls to pgconn_set_critical() and to
-       EXC_IFCRITICAL() where we expect problems. Still segfaults but at
-       least raise an exception...
-       
-       * cursor.c (psyco_curs_autocommit): added exception if the
-       cursor's keeper is shared between more than 1 cursor.
-
-       * module.h (EXC_IFCRITICAL): added this macro that call
-       pgconn_resolve_critical) on critical errors.
-
-       * cursor.c (alloc_keeper): added check for pgres == NULL. 
-
-       * cursor.c (psyco_curs_destroy): merged psyco_curs_destroy() and
-       psyco_curs_close(): now both call _psyco_curs_close() and destroy
-       does only some extra cleanup.
-
-2001-05-03  Michele Comitini  <mcm@initd.net>
-
-       * ZPsycopgDA/db.py: Some cleanup to bring the zope product up to
-       date with the python module.  Some bugs found thanks to Andre
-       Schubert.  Now the ZDA should rely on the new serialized version
-       of psycopg.
-
-       * cursor.c: while looking for problems in the ZDA some come out
-       here, with the inability to handle dropping connection correctly.
-       This leads to segfaults and is not fixed yet for lack of time.
-       Some problems found in cursors not willing to share the same
-       connection even if they should.  Hopefully it should be fixed
-       soon.
-
-2001-04-26  Federico Di Gregorio  <fog@debian.org>
-
-       * fixed bug reported by Andre Schubert by adding a new cast
-       function for long integers (int8 postgresql type.) at now they are
-       converted to python LongIntegers: not sure f simply convert to
-       floats.
-
-       * michele applied patch from Ivo van der Wijk to make zpsycopgda
-       behave better when INSTANCE_HOME != SOFTWARE_HOME.
-
-       * cursor.c (_psyco_curs_execute): also fill the 'columns' field.
-
-       * module.h: added a 'columns' field to cursobject, to better
-       support the new dictionary fetch functions (dictfetchone(),
-       dictfetchmany(), dictfetchall().)
-
-       * cursor.c: added the afore-mentioned functions (function names
-       are not definitive, they will follow decisions on the DBAPI SIG.)
-
-2001-04-03  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.5.1.
-
-       * mcm fixed a nasty bug by correcting a typo in module.h.
-
-2001-03-30  Federico Di Gregorio  <fog@debian.org>
-
-       * module.c (psyco_connect): added `serialized' named argument to
-       the .connect() method (takes 1 or 0 and initialize the connection
-       to the right serialization state.)
-
-       * Makefile.pre.in (dist): fixed little bug, a missing -f argument
-       to rm.
-
-       * examples/thread_test.py: removed all extension cruft.
-
-       * examples/thread_test_x.py: this one uses extensions like the
-       per-cursor commit, autocommit, etc.
-
-       * README (psycopg): added explanation on how .serialize() works. 
-
-       * connection.c (psyco_conn_serialize): added cursor serialization
-       and .serialize() method on the connection object. now we are
-       definitely DBAPI-2.0 compliant.
-
-2001-03-20  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (_psyco_curs_execute): replaced some fields in
-       description with None, as suggested on the DB-SIG ML.
-
-       * something like one hundred of little changes to allow cursors
-       share the same postgres connection. added connkeeper object and
-       pthread mutexes (both in connobject and connkeeper.) apparently it
-       works. this one will be 0.5.0, i think.
-
-2001-03-19  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c: added mutexes, they do not interact well with python
-       threads :(.
-
-2001-03-16  Michele Comitini  <mcm@initd.net>
-
-       * ZPsycopgDA/db.py (ZDA): some fixes in table browsing.
-
-2001-03-16  Federico Di Gregorio  <fog@debian.org>
-
-       * suite/tables.postgresql (TABLE_DESCRIPTIONS): fixed some typos
-       introduced by copying by hand the type values from pg_type.h.
-
-       * suite/*: added some (badly) structured code to test for
-       DBAPI-2.0 compliance.
-       
-       * cursor.c (pgconn_notice_callback): now the NOTICE processor only
-       prints NOTICEs when psycopg has been compiled with the
-       --enable-devel switch. 
-
-       * connection.c: removed 'autocommit' attribute, now is a method as
-       specified in the DBAPI-2.0 document.
-
-2001-03-15  Federico Di Gregorio  <fog@debian.org>
-
-       * connection.c (curs_commitall): splitted for cycle in two to
-       avoid the "bad snapshot" problem.
-
-2001-03-14  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.4.6.
-       
-       * cursor.c (_psyco_curs_execute): fixed nasty bug, there was an
-       free(query) left from before the execute/callproc split.
-
-       * Preparing for 0.4.6.
-
-2001-03-13  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (psyco_curs_execute): fixed some memory leaks in
-       argument parsing (the query string was not free()ed.)
-       (psyco_curs_callproc): implemented callproc() method on cursors.
-       (_psyco_curs_execute): this is the function that does the real
-       stuff for callproc() and execute().
-       (pgconn_notice_*): added translation of notices into python
-       exceptions (do we really want that?) 
-
-       * configure.in: removed some cruft (old comments and strncasecmp()
-       check)
-
-2001-03-12  Federico Di Gregorio  <fog@debian.org>
-
-       * examples/thread_test.py: added moronic argument parsing: now you
-       can give the dsn string on the command line... :(
-
-       * Release 0.4.5.
-
-2001-03-10  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (request_pgconn): added code to set datestyle to ISO on
-       new connections (many thanks to Yury <yura@vpcit.ru> for the code,
-       i changed it just a little bit to raise an exception on error.)
-
-2001-03-09  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.4.4.
-
-       * ZPsycopgDA/db.py: michele fixed a nasty bug here. 
-
-2001-03-08  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.4.3.
-
-2001-03-07  Federico Di Gregorio  <fog@debian.org>
-
-       * Makefile.pre.in (dist): typeobj_builtins.c included for people
-       without pg_type.h. if you encounter type-casting problems like
-       results cast to the wrong type, simply "rm typeobj_builtins.c" and
-       rebuild.
-
-       * typeobj.c (psyco_*_cast): removed RETURNIFNULL() macro from all
-       the builtin casting functions. (psyco_STRING_cast) does not create
-       a new string anymore, simply Py_INCREF its argument and return it.
-
-       * cursor.c (psyco_curs_fetchone): removed strdup() call. added
-       PQgetisnull() test to differentiate between real NULLs and empty
-       strings.
-
-       * Removed cursor.py (mcm, put tests in examples) and fixed some
-       typos in the dtml code.
-
-2001-03-04  Michele Comitini  <mcm@initd.net>
-
-       * examples/commit_test.py: Modifications to test argument passing
-       and string substitution to cursor functions, nothing more.
-
-       * ZPsycopgDA/db.py: now it exploits some of the good features of
-       the psycopg driver, such as connection reusage and type
-       comparison.  Code is smaller although it handles (and
-       reports) errors much better.
-
-       * cursor.c: corrected a bug that left a closed cursor in the
-       cursor list of the connection.  Now cursors are removed from the
-       lists either when they are close or when they are destroyed.
-       Better connection (TCP) error reporting and handling.
-
-
-2001-03-02  Federico Di Gregorio  <fog@debian.org>
-
-       * examples commit_test.py: added code to test autocommit.
-       
-       * examples/thread_test.py (ab_select): modified select thread to
-       test autocommit mode.
-
-       * Release 0.4.1.
-       
-       * module.h, connection.c, cursor.c: added autocommit support.
-
-2001-02-28  Federico Di Gregorio  <fog@debian.org>
-
-       * Release 0.4.
-
-2001-02-27  Michele Comitini  <mcm@initd.net>
-
-       * cursor.py: cut some unuseful code in psyco_curs_fetchmany() and
-       psyco_curs_fetchall() inserted an assert in case someting goes
-       wrong.
-
-2001-02-27  Federico Di Gregorio  <fog@debian.org>
-
-       * debian/*: various changes to build both the python module and
-       the zope db adapter in different packages (respectively
-       python-psycopg and zope-psycopgda.)  
-
-       * examples/type_test.py: better and more modular tests. 
-
-       * typeobj.c: added DATE, TIME, DATETIME, BOOLEAN, BINARY and ROWID
-       types. (RETURNIFNULL) added NULL-test to builtin conversion
-       functions (using the RETURNIFNULL macro.)
-
-2001-02-26  Federico Di Gregorio  <fog@debian.org>
-
-       * releasing 0.3 (added NEWS file.)
-
-2001-02-26  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c: fetchmany() some cleanup done.
-
-       * ZPsycopgDA/db.py, ZPsycopgDA/__init__.py, : fixes to make the
-       ZDA work some way.  WARNING WARNING WARNING the zda is still
-       alpha code, but we need some feed back on it so please give it
-       a try.
-       
-2001-02-26  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c (psyco_STRING_cast): fixed bad bad bad bug. we
-       returned the string without coping it and the type-system was more
-       than happy to Py_DECREF() it and trash the whole system. fixed at
-       last!
-
-       * module.h (Dprintf): added pid to every Dprintf() call, to
-       facilitate multi-threaded debug.
-
-2001-02-26  Michele Comitini  <mcm@initd.net>
-
-       * module.c: added code so that DateTime package need not to be
-       loaded to have mxDateTime.  This should avoid clashing with
-       DateTime from the zope distribution.
-
-       * cursor.c: setting error message in fetchmany when no more tuples
-       are left. This has to be fixed in fetch and fetchall to.
-
-2001-02-26  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: stepped up version to 0.3, ready to release
-       tomorrow morning. added check for path to DateTime module. 
-
-       * examples/usercast_test.py: generate some random boxes and
-       points, select the boxes with at least one point inside and print
-       them converting the PostgeSQL output using a user-specified cast
-       object. nice. 
-
-2001-02-24  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (psyco_curs_fetchone): now an error in the python
-       callback when typecasting results raise the correct exception.
-
-       * typeobj.c (psyco_DBAPITypeObject_call): removed extra Py_INCREF().
-
-2001-02-23  Federico Di Gregorio  <fog@debian.org>
-
-       * replaced every single instance of the string 'pgpy' with 'psyco'
-       (this was part of the general cleanup.)
-       
-       * type_test.py: added this little test program to the distribution
-       (use the new_type() method to create new instances of the type
-       objects.)  
-
-       * typeobj.c: general cleanup. fixed some bugs related to
-       refcounting (again!)
-
-       * cursor.c: general cleanup. (request_pgconn) simplified by adding
-       a support function (_extract_pgconn.)
-
-       * connection.c: general cleanup. replaced some ifs with asserts()
-       in utility functions when errors depend on programming errors and
-       not on runtime exceptions. (pgpy_conn_destroy) fixed little bug
-       when deleting available connections from the list.
-
-       * module.h: general cleanup.
-
-       * typeobj.h: general cleanup, better comments, made some function
-       declarations extern. 
-
-       * module.c: general cleanup, double-checked every function for
-       memory leaks. (pgpy_connect) removed unused variable 'connection'.
-
-2001-02-22  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c: fixed lots of bugs, added NUMBER type object. now the
-       basic tests in type_test.py work pretty well.
-
-       * cursor.c (pgpy_curs_fetchmany): fixed little bug, fetchmany()
-       reported one less row than available.
-
-       * fixed lots of bugs in typeobj.c, typeobj.h, cursor.c. apparently
-       now the type system works. it is time to clean up things a little
-       bit.
-
-2001-02-21  Federico Di Gregorio  <fog@debian.org>
-
-       * typeobj.c: separated type objects stuff from module.c
-       
-       * typeobj.h: separated type objects stuff from module.h 
-
-2001-02-19  Federico Di Gregorio  <fog@debian.org>
-
-       * cursor.c (pgpy_curs_fetchmany): now check size and adjust it to
-       be lesser or equal than the nuber of available rows.
-
-2001-02-18  Michele Comitini  <mcm@initd.net>
-
-       * module.c, module.h: added optional args maxconn and minconn to
-       connection functions
-
-       * cursor.c: better error checking in request_pgconn.
-
-       * connection.c: changed new_connect_obj to take as optional args
-       maxconn and minconn. Added the corresponding ro attributes to
-       connection objects.
-
-       * cursor.py: added some code to stress test cursor reusage.
-
-       * cursor.c: some fixes on closed cursors.
-
-       * connection.c: corrections on some assert calls.
-
-2001-02-16  Federico Di Gregorio  <fog@debian.org>
-
-       * configure.in: added --enable-priofile sqitch. changed VERSION to
-       0.2: preparing for a new release.
-
-       * cursor.c: added a couple of asserts.
-
-2001-02-16  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c, connection.c: fixed the assert problem: assert must
-       take just the value to be tested! no assignemente must be done in
-       the argument of assert() otherwise is wiped when NDEBUG is set.
-
-       * module.h: some syntax error fixed.  Error in allocating a tuple
-       corrected in macro DBAPITypeObject_NEW().
-       
-       * module.c: pgpy_DBAPITypeObject_init() is not declared static anymore.
-
-       * cursor.c: executemany() now does not create and destroy tuples
-       for each list item, so it is much faster.
-
-2001-02-14  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c:  added again Py_DECREF on the cpcon after disposing
-       it.  assert() with -DNDEBUG makes the driver segfault while it
-       should not.
-       
-
-2001-02-13  Federico Di Gregorio  <fog@debian.org>
-
-       * some of the memory leak were memprof errors, bleah. resumed some
-       old code, fixed segfault, fixed other bugs, improved speed. almost
-       ready for a new release.
-       
-       * connection.c (pgpy_conn_destroy): replaced some impossible ifs
-       with aseert()s.
-
-       * cursor.c (pgpy_curs_close): added Py_DECREF() to
-       self->descritpion to prevent a memory leak after an execute().
-
-       * connection.c (pgpy_conn_destroy): always access first element of
-       lists inside for cycles because removing items from the list makes
-       higher indices invalid.
-
-       * cursor.c (dispose_pgconn): fixed memory leak, there was a
-       missing Py_DECREF() after the addition of the C object wrapping
-       the postgresql connection to the list of available connections.
-
-       * cursor.c (dispose_pgconn): fixed another memory leak: an
-       orphaned cursor should call PQfinish() on its postgresql
-       connection because it has no python connection to give the
-       postgresql ine back.
-
-       * cursor.c (pgpy_curs_execute): added Py_DECREF() of description
-       tuple after adding it to self->description. this one fixes the
-       execute() memory leak.
-       
-       * cursor.c (pgpy_curs_fetchall): added missing Py_DECREF() on row
-       data (obtained from fetchone().) this fixes the last memory leak.
-       (thread_test.py now runs without leaking memory!)
-
-2001-02-12  Federico Di Gregorio  <fog@debian.org>
-
-       * INSTALL: removed wok cruft from head of this file.
-
-       * debian/rules: debianized the sources. python-psycopg is about to
-       enter debian. mxDateTime header locally included until the
-       maintainer of python-mxdatetime includes them in his package
-       (where they do belong.)
-
-       * autogen.sh: added option --dont-run-configure. 
-
-2001-02-09  Federico Di Gregorio  <fog@debian.org>
-
-       * module.c (initpsycopg): changed name of init function to match
-       new module name (also changed all the exception definitions.)
-
-       * README: updated psycopg description (we have a new name!)
-
-       * Ready for 0.1 release.
-
-2001-02-07  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c: now executemany takes sequences and not just
-       tuples 
-
-2001-02-07  Federico Di Gregorio  <fog@debian.org>
-
-       * Makefile.pre.in: now dist target includes test programs
-       (thread_test.py) and README and INSTALL files. 
-
-       * configure.in: changed --with-devel to --enable-devel. little
-       cosmetical fixes to the option management.
-       
-       * connection.c, module.c, cursor.c, module.h: removed 'postgres/'
-       from #include directive. it is ./configure task to find the right
-       directory.
-
-       * thread_test.py: added thread testing program.
-
-2001-02-07  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c: added code to allow threads during PQexec() calls.
-       
-       * cursor.c: added begin_pgconn to rollback() and commit()
-       so that the cursror is not in autocommit mode.
-
-       * cursor.c: added rollback() and commit() methods to cursor
-       objects.
-
-
-2001-02-07  Federico Di Gregorio  <fog@debian.org>
-
-       * connection.c (pgpy_conn_destroy): always delete item at index
-       0 and not i (because items shift in the list while deleting and
-       accessing items at len(list)/2 segfaults.)
-
-2001-02-07  Michele Comitini  <mcm@initd.net>
-
-       * connection.c: added some more checking to avoid
-       clearing of already cleared pgresults.  Calling curs_closall()
-       in conn_destroy() since cursors have to live even without
-       their parent connection, otherwise explicit deletion of
-       object referencing to those cursors can cause arbitrary code
-       to be executed.
-
-       * cursor.c: some more checking to avoid trying to close
-       already close pgconnections.
-
-2001-02-06  Federico Di Gregorio  <fog@debian.org> 
-
-       * Makefile.pre.in (CFLAGS): added -Wall to catch bad programming
-       habits. 
-
-       * cursor.c, connection.c: lots of fixes to the destroy stuff. now
-       all the cursor are destroyed *before* the connection goes away.
-
-       * cursor.c (request_pgconn): another idiot error done by not
-       replacing dsn with owner_conn->dsn. fixed.
-       (dispose_pgconn): commented if to guarantee that the connection is
-       returned to the pool of available connections.
-
-       * merged changes done by mcm.
-
-       * cursor.c: general cleanup and better debugging/error
-       messages. changed xxx_conn into xxx_pgconn where still
-       missing. some pretty big changes to the way pgconn_request()
-       allocates new connections.
-
-       * connection.c: removed all 'register' integers. obsolete, gcc
-       does a much better job optimizing cycles than a programmer
-       specifying how to use registers. 
-
-       * module.h: some general cleanup and better definition of DPrintf
-       macro. now the DEBUG variable can be specified at configure time by
-       the --with-devel switch to ./configure.
-
-2001-02-02  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c (Repository): Added functions for managing a connection
-       pool. Segfaults.
-
-       * configure.in (Repository): removed check for mxdatetime headers.
-
-2001-01-24  Federico Di Gregorio  <fog@debian.org>
-
-       * first checkout from shinning new init.d cvs.
-
-       * autotoolized build system. note that the mx headers are missing
-       from the cvs, you should get them someplace else (this is the
-       right way to do it, just require the headers in the configure
-       script.)
-
-2001-01-21  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c (Repository): commit, abort, begin functions now check
-       the right exit status of the command.
-
-       * connection.c (Repository): working commit() and rollback()
-       methods.
-
-2001-01-20  Michele Comitini  <mcm@initd.net>
-
-       * module.h (Repository): added member to cursor struct to handle
-       queries without output tuples.
-
-       * cursor.c (Repository): new working methods: executemany,
-       fetchone, fetchmany, fetchall.
-
-2001-01-18  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c (Repository): close working. destroy calling close.
-       close frees pg structures correctly.
-
-       * connection.c (Repository): close method working.  destroy seems
-       working.
-
-2001-01-17  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c (Repository): now each python cursor has its own
-       connection.  Each cursor works in a transaction block.
-
-       * connection.c (Repository): added cursor list to connection
-       object
-
-2001-01-14  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c (Repository): Beginning of code to implement cursor
-       functionalities as specified in DBA API 2.0, through the use of
-       transactions not cursors.
-
-       * connection.c (Repository): Added some error checking code for pg
-       connection (will be moved to cursor?).
-
-2001-01-13  Michele Comitini  <mcm@initd.net>
-
-       * connection.c (Repository): Added error checking in connection
-       code to fail if connection to the db could not be opened.
-
-       * module.h (Repository): New macro to help creating
-       DBAPITypeObjects.
-
-       * module.c (Repository): DBAPITypeObject __cmp__ function is now
-       very simplified using recursion.
-
-       * module.h (Repository): "DBAPIObject" changed to
-       "DBAPITypeObject".
-
-       * module.c (Repository): Fixes for coerce function of DBAPIObjects
-       by Federico Di Gregorio <fog@initd.net>.
-       (Repository): Clean up and better naming for DBAPITypeObjects.
-
-2001-01-08  Michele Comitini  <mcm@initd.net>
-
-       * module.c (Repository): Corrected the exception hierarcy
-
-       * connection.c (Repository): Begun to use the connection objects
-       of libpq
-
-2001-01-07  Michele Comitini  <mcm@initd.net>
-
-       * module.c (Repository): Added the Date/Time functions.
-
-2001-01-06  Michele Comitini  <mcm@initd.net>
-
-       * cursor.c (Repository): Skeleton of cursor interface.  All
-       methods and attributes of cursor objects are now available
-       in python.  They do nothing now.
-
-2001-01-05  Michele Comitini  <mcm@initd.net>
-
-       * module.c (Repository): Test version; module loaded with 
-       exception defined.
-       
-2001-01-05  Michele Comitini  <mcm@initd.net>
-
-       * Setup.in (Repository): Setup file.
-
-       * Makefile.pre.in (Repository): from the python source.
-
-2001-01-05  Michele Comitini  <mcm@initd.net>
-
-       * module.c: Written some code for defining exceptions.
-       
-       * module.h: Static variable for exceptions.
-       
-2001-01-04  Michele Comitini  <mcm@initd.net>
-
-       * Changelog: pre-release just a few prototypes to get started.
-       
-
diff --git a/psycopg2/doc/HACKING b/psycopg2/doc/HACKING
deleted file mode 100644 (file)
index f60474c..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-General information
-*******************
-
-Some help to people wanting to hack on psycopg. First of all, note that
-*every* function in the psycopg module source code is prefixed by one of the
-following words:
-
-    psyco is used for function directly callable from python (i.e., functions
-        in the psycopg module itself.) the only notable exception is the
-        source code for the module itself, that uses "psyco" even for C-only
-        functions.
-
-    conn is used for functions related to connection objects.
-
-    curs is used for functions related to cursor objects.
-
-    typecast is used for typecasters and utility function related to
-        typecaster creation and registration.
-
-Pythonic definition of types and functions available from python are defined
-in *_type.c files. Internal functions, callable only from C are located in
-*_int.c files and extensions to the DBAPI can be found in the *_ext.c files.
-
-
-Patches
-*******
-
-If you submit a patch, please send a diff generated with the "-u" switch.
-Also note that I don't like that much cosmetic changes (like renaming
-already existing variables) and I will rewrap the patch to 78 columns
-anyway, so it is much better if you do that beforehand.
-
-
-The type system
-***************
-
-Simple types, like integers and strings, are converted to python base types
-(the conversion functions are in typecast_base.c). Complex types are
-converted to ad-hoc types, defined in the typeobj_*.{c,h} files. The
-conversion function are in the other typecast_*.c files. typecast.c defines
-the basic utility functions (available through the psycopg module) used when
-defining new typecasters from C and python.
-
diff --git a/psycopg2/doc/SUCCESS b/psycopg2/doc/SUCCESS
deleted file mode 100644 (file)
index 9ae91f5..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From:  Jack Moffitt <jack@xiph.org>
-To:    Psycopg Mailing List <psycopg@lists.initd.org>
-Subject:       Re: [Psycopg] preparing for 1.0
-Date:  22 Oct 2001 11:16:21 -0600      
-
-www.vorbis.com is serving from 5-10k pages per day with psycopg serving 
-data for most of that.  
-
-I plan to use it for several of our other sites, so that number will
-increase.
-
-I've never had a single problem (that wasn't my fault) besides those
-segfaults, and those are now gone as well, and I've been using psycopg
-since June (around 0.99.2?).
-
-jack.
-
-
-From:  Yury Don <gercon@vpcit.ru>
-To:    Psycopg Mailing List <psycopg@lists.initd.org>
-Subject:       Re: [Psycopg] preparing for 1.0
-Date:  23 Oct 2001 09:53:11 +0600      
-
-We use psycopg and psycopg zope adapter since fisrt public
-release (it seems version 0.4). Now it works on 3 our sites and in intranet
-applications. We had few problems, but all problems were quckly
-solved. The strong side of psycopg is that it's code is well organized
-and easy to understand. When I found a problem with non-ISO datestyle in first
-version of psycopg, it took for me 15 or 20 minutes to learn code and
-to solve the problem, even thouth my knowledge of c were poor.
-
-BTW, segfault with dictfetchall on particular data set (see [Psycopg]
-dictfetchXXX() problems) disappeared in 0.99.8pre2.
-
--- 
-Best regards,
-Yury Don
-
-
-From:  Tom Jenkins <tjenkins@devis.com>
-To:    Federico Di Gregorio <fog@debian.org>
-Cc:    Psycopg Mailing List <psycopg@lists.initd.org>
-Subject:       Re: [Psycopg] preparing for 1.0
-Date:  23 Oct 2001 08:25:52 -0400
-       
-The US Govt Department of Labor's Office of Disability Employment
-Policy's DisabilityDirect website is run on zope and zpsycopg.
-
-
-From:  Scott Leerssen <sleerssen@racemi.com>
-To:    Federico Di Gregorio <fog@debian.org>
-Subject:       Re: [Psycopg] preparing for 1.0
-Date:  23 Oct 2001 09:56:10 -0400      
-
-Racemi's load management software infrastructure uses psycopg to handle
-complex server allocation decisions, plus storage and access of
-environmental conditions and accounting records for potentially
-thousands of servers.  Psycopg has, to this point, been the only
-Python/PostGreSQL interface that could handle the scaling required for
-our multithreaded applications.
-
-Scott
-
-
-From:  Andre Schubert <andre.schubert@geyer.kabeljournal.de>
-To:    Federico Di Gregorio <fog@debian.org>
-Cc:    Psycopg Mailing List <psycopg@lists.initd.org>
-Subject:       Re: [Psycopg] preparing for 1.0
-Date:  23 Oct 2001 11:46:07 +0200      
-
-i have changed the psycopg version to 0.99.8pre2 on all devel-machines
-and all segfaults are gone. after my holiday i wil change to 0.99.8pre2 
-or 1.0 on our production-server.
-this server contains several web-sites which are all connected to
-postgres over ZPsycopgDA.
-
-thanks as
-
-
-From:  Fred Wilson Horch <fhorch@ecoaccess.org>
-To:    <psycopg@lists.initd.org>
-Subject:       [Psycopg] Success story for psycopg
-Date:  23 Oct 2001 10:59:17 -0400
-       
-Due to various quirks of PyGreSQL and PoPy, EcoAccess has been looking for
-a reliable, fast and relatively bug-free Python-PostgreSQL interface for
-our project.
-
-Binary support in psycopg, along with the umlimited tuple size in
-PostgreSQL 7.1, allowed us to quickly prototype a database-backed file
-storage web application, which we're using for file sharing among our
-staff and volunteers.  Using a database backend instead of a file system
-allows us to easily enrich the meta-information associated with each file
-and simplifies our data handling routines.
-
-We've been impressed by the responsiveness of the psycopg team to bug
-reports and feature requests, and we're looking forward to using psycopg
-as the Python interface for additional database-backed web applications.
-
-Keep up the good work!
--- 
-Fred Wilson Horch                       mailto:fhorch@ecoaccess.org
-Executive Director, EcoAccess           http://ecoaccess.org/
-
-
-From:  Damon Fasching <fasching@design.lbl.gov>
-To:    Michele Comitini <mcm@glisco.it>
-Cc:    fog@debian.org
-Subject:       Re: How does one create a database within Python using psycopg?
-Date:  25 Feb 2002 17:39:41 -0800
-
-[snip]
-btw I checked out 4 different Python-PostgreSQL packages.  psycopg is the
-only one which built and imported w/o any trouble!  (At least for me.)
diff --git a/psycopg2/doc/TODO b/psycopg2/doc/TODO
deleted file mode 100644 (file)
index b20b276..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-TODO list for psycopg 2 or later
-********************************
-
-Move items to the DONE section only after writing a test for the
-implementation. Also add a note on how the item was resolved.
-(Obviously I was joking about the test..)
-
-* Find a better way to compile the type-casting code instead of including it
-   in typecast.c directy. (Including is not that bad, but the need to touch
-   psycopg/typecast.c every time is bad bad bad.)
-
-* executemany() should _not_ take the async flag, remove it and force multiple
-   queries to be synchronous.
-
-* Fix all the docstrings.
-
-* Support the protocols API fully.
-
-* Unify the common code in typecast_datetime.c and typecast_mxdatetime.c.
-
-* Port typecasters to new-style classes.
-
-* Write a complete postgresql<->python encodings table.
-
-* Implement binary typecasters (should be easy, but it will take time.)
-
-DONE
-====
-
-* Convert type-casters to new-style types in Python 2.2+.
-
-* callproc() never worked, fix it or remove it and raise right exception.
-   [Removed callproc code, now an exception is raised.]
diff --git a/psycopg2/doc/api-screen.css b/psycopg2/doc/api-screen.css
deleted file mode 100644 (file)
index 22e8f7e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Based on the Epydoc "default.css"\r
-** with some missing reST-related classes\r
-** and Python syntax support (from SilverCity)\r
-*/\r
-\r
-/* Body color */ \r
-body               { background: #ffffff; color: #000000; } \r
\r
-/* Tables */ \r
-table.summary, table.details, table.index\r
-                   { background: #e8f0f8; color: #000000; } \r
-tr.summary, tr.details, tr.index\r
-                   { background: #70b0f0; color: #000000;  \r
-                     text-align: left; font-size: 120%; } \r
-tr.group           { background: #c0e0f8; color: #000000;\r
-                     text-align: left; font-size: 120%;\r
-                     font-style: italic; } \r
-\r
-/* Documentation page titles */\r
-h2.module          { margin-top: 0.2em; }\r
-h2.class           { margin-top: 0.2em; }\r
\r
-/* Headings */\r
-h1.heading         { font-size: +140%; font-style: italic;\r
-                     font-weight: bold; }\r
-h2.heading         { font-size: +125%; font-style: italic;\r
-                     font-weight: bold; }\r
-h3.heading         { font-size: +110%; font-style: italic;\r
-                     font-weight: normal; }\r
-                    \r
-/* Base tree */\r
-pre.base-tree      { font-size: 80%; margin: 0; }\r
-\r
-/* TOC */\r
-p.toc { margin: 0; }\r
-\r
-/* Details Sections */\r
-table.func-details { background: #e8f0f8; color: #000000;\r
-                     border: 2px groove #c0d0d0;\r
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
-h3.func-detail     { background: transparent; color: #000000;\r
-                     margin: 0 0 1em 0; }\r
-\r
-table.var-details  { background: #e8f0f8; color: #000000;\r
-                     border: 2px groove #c0d0d0;\r
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
-h3.var-details     { background: transparent; color: #000000;\r
-                     margin: 0 0 1em 0; }\r
-\r
-/* Function signatures */\r
-.sig               { background: transparent; color: #000000;\r
-                     font-weight: bold; }  \r
-.sig-name          { background: transparent; color: #006080; }  \r
-.sig-arg, .sig-kwarg, .sig-vararg\r
-                   { background: transparent; color: #008060; }  \r
-.sig-default       { background: transparent; color: #602000; }  \r
-.summary-sig       { background: transparent; color: #000000; }  \r
-.summary-sig-name  { background: transparent; color: #204080; }\r
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg\r
-                   { background: transparent; color: #008060; }  \r
-\r
-/* Doctest blocks */\r
-.py-src            { background: transparent; color: #000000; }\r
-.py-prompt         { background: transparent; color: #005050;\r
-                     font-weight: bold;}\r
-.py-string         { background: transparent; color: #006030; }\r
-.py-comment        { background: transparent; color: #003060; }\r
-.py-keyword        { background: transparent; color: #600000; }\r
-.py-output         { background: transparent; color: #404040; }\r
-div.code-block,\r
-pre.literal-block,\r
-pre.doctestblock   { background: #f4faff; color: #000000; \r
-                     padding: .5em; margin: 1em;\r
-                     border: 1px solid #708890; }\r
-table pre.doctestblock\r
-                   { background: #dce4ec; color: #000000; \r
-                     padding: .5em; margin: 1em;\r
-                     border: 1px solid #708890; }\r
-div.code-block     { font-family: monospace; }\r
-\r
-/* Variable values */\r
-pre.variable       { background: #dce4ec; color: #000000;\r
-                     padding: .5em; margin: 0;\r
-                     border: 1px solid #708890; }\r
-.variable-linewrap { background: transparent; color: #604000; }\r
-.variable-ellipsis { background: transparent; color: #604000; }\r
-.variable-quote    { background: transparent; color: #604000; }\r
-.re                { background: transparent; color: #000000; }\r
-.re-char           { background: transparent; color: #006030; }\r
-.re-op             { background: transparent; color: #600000; }\r
-.re-group          { background: transparent; color: #003060; }\r
-.re-ref            { background: transparent; color: #404040; }\r
-\r
-/* Navigation bar */ \r
-table.navbar       { background: #a0c0ff; color: #0000ff;\r
-                     border: 2px groove #c0d0d0; }\r
-th.navbar          { background: #a0c0ff; color: #0000ff; } \r
-th.navselect       { background: #70b0ff; color: #000000; } \r
-.nomargin          { margin: 0; }\r
-\r
-/* Links */ \r
-a:link             { background: transparent; color: #0000ff; }  \r
-a:visited          { background: transparent; color: #204080; }  \r
-a.navbar:link      { background: transparent; color: #0000ff; \r
-                     text-decoration: none; }  \r
-a.navbar:visited   { background: transparent; color: #204080; \r
-                     text-decoration: none; }  \r
-\r
-/* Admonitions */\r
-div.warning,\r
-div.note                { background-color: #c0e0f8;\r
-                          border: thin solid black;\r
-                          padding: 1em;\r
-                          margin-left: 1em;\r
-                          margin-right: 1em; }\r
-div.warning .first,\r
-div.note .first      { font-family: sans-serif;\r
-                          font-size: 110%;\r
-                          margin-right: 0.5em; }\r
-\r
-/* Lists */\r
-ul { margin-top: 0; }\r
-\r
-/* Python syntax */\r
-.p_character { color: olive; }\r
-.p_classname { color: blue; font-weight: bold; }\r
-.p_commentblock {color: gray; font-style: italic; }\r
-.p_commentline { color: green; font-style: italic; }\r
-.p_default {}\r
-.p_defname { color: #009999; font-weight: bold; }\r
-.p_identifier { color: black; }\r
-.p_number { color: #009999; }\r
-.p_operator { color: black; }\r
-.p_string { color: #7F007F; }\r
-.p_stringeol { color: #7F007F; }\r
-.p_triple { color: #7F0000; }\r
-.p_tripledouble { color: #7F0000; }\r
-.p_word { color: navy; font-weight: bold; }\r
diff --git a/psycopg2/doc/api/epydoc.css b/psycopg2/doc/api/epydoc.css
deleted file mode 100644 (file)
index 22e8f7e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Based on the Epydoc "default.css"\r
-** with some missing reST-related classes\r
-** and Python syntax support (from SilverCity)\r
-*/\r
-\r
-/* Body color */ \r
-body               { background: #ffffff; color: #000000; } \r
\r
-/* Tables */ \r
-table.summary, table.details, table.index\r
-                   { background: #e8f0f8; color: #000000; } \r
-tr.summary, tr.details, tr.index\r
-                   { background: #70b0f0; color: #000000;  \r
-                     text-align: left; font-size: 120%; } \r
-tr.group           { background: #c0e0f8; color: #000000;\r
-                     text-align: left; font-size: 120%;\r
-                     font-style: italic; } \r
-\r
-/* Documentation page titles */\r
-h2.module          { margin-top: 0.2em; }\r
-h2.class           { margin-top: 0.2em; }\r
\r
-/* Headings */\r
-h1.heading         { font-size: +140%; font-style: italic;\r
-                     font-weight: bold; }\r
-h2.heading         { font-size: +125%; font-style: italic;\r
-                     font-weight: bold; }\r
-h3.heading         { font-size: +110%; font-style: italic;\r
-                     font-weight: normal; }\r
-                    \r
-/* Base tree */\r
-pre.base-tree      { font-size: 80%; margin: 0; }\r
-\r
-/* TOC */\r
-p.toc { margin: 0; }\r
-\r
-/* Details Sections */\r
-table.func-details { background: #e8f0f8; color: #000000;\r
-                     border: 2px groove #c0d0d0;\r
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
-h3.func-detail     { background: transparent; color: #000000;\r
-                     margin: 0 0 1em 0; }\r
-\r
-table.var-details  { background: #e8f0f8; color: #000000;\r
-                     border: 2px groove #c0d0d0;\r
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
-h3.var-details     { background: transparent; color: #000000;\r
-                     margin: 0 0 1em 0; }\r
-\r
-/* Function signatures */\r
-.sig               { background: transparent; color: #000000;\r
-                     font-weight: bold; }  \r
-.sig-name          { background: transparent; color: #006080; }  \r
-.sig-arg, .sig-kwarg, .sig-vararg\r
-                   { background: transparent; color: #008060; }  \r
-.sig-default       { background: transparent; color: #602000; }  \r
-.summary-sig       { background: transparent; color: #000000; }  \r
-.summary-sig-name  { background: transparent; color: #204080; }\r
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg\r
-                   { background: transparent; color: #008060; }  \r
-\r
-/* Doctest blocks */\r
-.py-src            { background: transparent; color: #000000; }\r
-.py-prompt         { background: transparent; color: #005050;\r
-                     font-weight: bold;}\r
-.py-string         { background: transparent; color: #006030; }\r
-.py-comment        { background: transparent; color: #003060; }\r
-.py-keyword        { background: transparent; color: #600000; }\r
-.py-output         { background: transparent; color: #404040; }\r
-div.code-block,\r
-pre.literal-block,\r
-pre.doctestblock   { background: #f4faff; color: #000000; \r
-                     padding: .5em; margin: 1em;\r
-                     border: 1px solid #708890; }\r
-table pre.doctestblock\r
-                   { background: #dce4ec; color: #000000; \r
-                     padding: .5em; margin: 1em;\r
-                     border: 1px solid #708890; }\r
-div.code-block     { font-family: monospace; }\r
-\r
-/* Variable values */\r
-pre.variable       { background: #dce4ec; color: #000000;\r
-                     padding: .5em; margin: 0;\r
-                     border: 1px solid #708890; }\r
-.variable-linewrap { background: transparent; color: #604000; }\r
-.variable-ellipsis { background: transparent; color: #604000; }\r
-.variable-quote    { background: transparent; color: #604000; }\r
-.re                { background: transparent; color: #000000; }\r
-.re-char           { background: transparent; color: #006030; }\r
-.re-op             { background: transparent; color: #600000; }\r
-.re-group          { background: transparent; color: #003060; }\r
-.re-ref            { background: transparent; color: #404040; }\r
-\r
-/* Navigation bar */ \r
-table.navbar       { background: #a0c0ff; color: #0000ff;\r
-                     border: 2px groove #c0d0d0; }\r
-th.navbar          { background: #a0c0ff; color: #0000ff; } \r
-th.navselect       { background: #70b0ff; color: #000000; } \r
-.nomargin          { margin: 0; }\r
-\r
-/* Links */ \r
-a:link             { background: transparent; color: #0000ff; }  \r
-a:visited          { background: transparent; color: #204080; }  \r
-a.navbar:link      { background: transparent; color: #0000ff; \r
-                     text-decoration: none; }  \r
-a.navbar:visited   { background: transparent; color: #204080; \r
-                     text-decoration: none; }  \r
-\r
-/* Admonitions */\r
-div.warning,\r
-div.note                { background-color: #c0e0f8;\r
-                          border: thin solid black;\r
-                          padding: 1em;\r
-                          margin-left: 1em;\r
-                          margin-right: 1em; }\r
-div.warning .first,\r
-div.note .first      { font-family: sans-serif;\r
-                          font-size: 110%;\r
-                          margin-right: 0.5em; }\r
-\r
-/* Lists */\r
-ul { margin-top: 0; }\r
-\r
-/* Python syntax */\r
-.p_character { color: olive; }\r
-.p_classname { color: blue; font-weight: bold; }\r
-.p_commentblock {color: gray; font-style: italic; }\r
-.p_commentline { color: green; font-style: italic; }\r
-.p_default {}\r
-.p_defname { color: #009999; font-weight: bold; }\r
-.p_identifier { color: black; }\r
-.p_number { color: #009999; }\r
-.p_operator { color: black; }\r
-.p_string { color: #7F007F; }\r
-.p_stringeol { color: #7F007F; }\r
-.p_triple { color: #7F0000; }\r
-.p_tripledouble { color: #7F0000; }\r
-.p_word { color: navy; font-weight: bold; }\r
diff --git a/psycopg2/doc/api/index.html b/psycopg2/doc/api/index.html
deleted file mode 100644 (file)
index 419bbcf..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
-          "DTD/xhtml1-frameset.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title> API Documentation </title>\r
-</head>\r
-<frameset cols="20%,80%">\r
-  <frameset rows="30%,70%">\r
-    <frame src="public/toc.html" name="moduleListFrame" id="moduleListFrame" />\r
-    <frame src="public/toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
-  </frameset>\r
-  <frame src="public/psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
-</frameset>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/__builtin__.list-class.html b/psycopg2/doc/api/private/__builtin__.list-class.html
deleted file mode 100644 (file)
index c8217a7..0000000
+++ /dev/null
@@ -1,817 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>__builtin__.list</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;__builtin__ ::\r
-        Class&nbsp;list\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.list-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.list-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type list</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">list</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>list() -&gt; new list\r
-list(sequence) -&gt; new list initialized from sequence's items</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__add__"></a><span class="summary-sig"><span class="summary-sig-name">__add__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x+y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__contains__"></a><span class="summary-sig"><span class="summary-sig-name">__contains__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return y in x...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__delitem__"></a><span class="summary-sig"><span class="summary-sig-name">__delitem__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return del x[y]...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delslice__" class="summary-sig-name"><code>__delslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>)</span></code>\r
-<br />\r
-Use of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__eq__"></a><span class="summary-sig"><span class="summary-sig-name">__eq__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x==y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__ge__"></a><span class="summary-sig"><span class="summary-sig-name">__ge__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&gt;=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x[y]...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getslice__" class="summary-sig-name"><code>__getslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>)</span></code>\r
-<br />\r
-Use of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__gt__"></a><span class="summary-sig"><span class="summary-sig-name">__gt__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&gt;y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__iadd__"></a><span class="summary-sig"><span class="summary-sig-name">__iadd__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x+=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__imul__"></a><span class="summary-sig"><span class="summary-sig-name">__imul__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x*=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__iter__"></a><span class="summary-sig"><span class="summary-sig-name">__iter__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return iter(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__le__"></a><span class="summary-sig"><span class="summary-sig-name">__le__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&lt;=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__len__"></a><span class="summary-sig"><span class="summary-sig-name">__len__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return len(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__lt__"></a><span class="summary-sig"><span class="summary-sig-name">__lt__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&lt;y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__mul__"></a><span class="summary-sig"><span class="summary-sig-name">__mul__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">n</span>)</span></code>\r
-<br />\r
-Return x*n...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__ne__"></a><span class="summary-sig"><span class="summary-sig-name">__ne__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x!=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__rmul__"></a><span class="summary-sig"><span class="summary-sig-name">__rmul__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">n</span>)</span></code>\r
-<br />\r
-Return n*x...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__setitem__"></a><span class="summary-sig"><span class="summary-sig-name">__setitem__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x[i]=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setslice__" class="summary-sig-name"><code>__setslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Use  of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#append" class="summary-sig-name"><code>append</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">object</span>)</span></code>\r
-<br />\r
-append object to end</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#count" class="summary-sig-name"><code>count</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">value</span>)</span></code>\r
-<br />\r
-return number of occurrences of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#extend" class="summary-sig-name"><code>extend</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">iterable</span>)</span></code>\r
-<br />\r
-extend list by appending elements from the iterable</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#index" class="summary-sig-name"><code>index</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">index</span>,\r
-          <span class="summary-sig-arg">object</span>)</span></code>\r
-<br />\r
-insert object before index</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#pop" class="summary-sig-name"><code>pop</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">index</span>)</span></code>\r
-<br />\r
-remove and return item at index (default last)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">value</span>)</span></code>\r
-<br />\r
-remove first occurrence of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#reverse" class="summary-sig-name"><code>reverse</code></a>(<span class="summary-sig-arg">L</span>)</span></code>\r
-<br />\r
-reverse <em>IN PLACE</em></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#sort" class="summary-sig-name"><code>sort</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">cmpfunc</span>)</span></code>\r
-<br />\r
-stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__add__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__add__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Addition operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x+y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__contains__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__contains__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(In operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-y in x\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__delitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__delitem__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Index deletion operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-del x[y]\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__delslice__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__delslice__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">i</span>,\r
-          <span class="sig-arg">j</span>)</span>\r
-    <br /><em class="fname">(Slice deletion operator)</em>\r
-  </h3>\r
-<p>Use of negative indices is not supported.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-del x[i:j]\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__eq__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__eq__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Equality operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x==y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__ge__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__ge__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Greater-than-or-equals operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x&gt;=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getattribute__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Indexing operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x[y]\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getslice__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getslice__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">i</span>,\r
-          <span class="sig-arg">j</span>)</span>\r
-    <br /><em class="fname">(Slicling operator)</em>\r
-  </h3>\r
-<p>Use of negative indices is not supported.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x[i:j]\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__gt__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__gt__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Greater-than operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x&gt;y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__hash__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Hashing function)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-hash(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__iadd__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__iadd__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x+=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__imul__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__imul__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x*=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__iter__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__iter__</span>(<span class="sig-arg">x</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-iter(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__le__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__le__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Less-than-or-equals operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x&lt;=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__len__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__len__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Length operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-len(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__lt__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__lt__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Less-than operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x&lt;y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__mul__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__mul__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">n</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x*n\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__ne__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__ne__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Inequality operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x!=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__repr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-repr(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__rmul__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__rmul__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">n</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-n*x\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__setitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__setitem__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">i</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Index assignment operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x[i]=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__setslice__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__setslice__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">i</span>,\r
-          <span class="sig-arg">j</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Slice assignment operator)</em>\r
-  </h3>\r
-<p>Use  of negative indices is not supported.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x[i:j]=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="append"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">append</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">object</span>)</span>\r
-  </h3>\r
-<p>append object to end</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="count"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">count</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">value</span>)</span>\r
-  </h3>\r
-<p>return number of occurrences of value</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-integer\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="extend"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">extend</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">iterable</span>)</span>\r
-  </h3>\r
-<p>extend list by appending elements from the iterable</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="index"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">index</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="insert"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">insert</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">index</span>,\r
-          <span class="sig-arg">object</span>)</span>\r
-  </h3>\r
-<p>insert object before index</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="pop"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">pop</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">index</span>=<span class="sig-default">...</span>)</span>\r
-  </h3>\r
-<p>remove and return item at index (default last)</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-item\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="remove"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">remove</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">value</span>)</span>\r
-  </h3>\r
-<p>remove first occurrence of value</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="reverse"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">reverse</span>(<span class="sig-arg">L</span>)</span>\r
-  </h3>\r
-<p>reverse <em>IN PLACE</em></p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="sort"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">sort</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">cmpfunc</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/__builtin__.object-class.html b/psycopg2/doc/api/private/__builtin__.object-class.html
deleted file mode 100644 (file)
index 08d0af6..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>__builtin__.object</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;__builtin__ ::\r
-        Class&nbsp;object\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.object-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.object-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type object</h2>\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a>,\r
-    <a href="__builtin__.list-class.html"><code>list</code></a>,\r
-    <a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a>,\r
-    <a href="__builtin__.type-class.html"><code>type</code></a>,\r
-    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a>,\r
-    <a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a>,\r
-    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a>,\r
-    <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>ISQLQuote</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>The most base type</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Class Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-  <td><a name="__class__"></a><strong><code class="vname">__class__</code></strong> = <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__delattr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__delattr__('name') &lt;==&gt; del x.name</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getattribute__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__hash__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Hashing function)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-hash(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__reduce__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>helper for pickle</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__reduce_ex__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__reduce_ex__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>helper for pickle</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__repr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-repr(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__setattr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__str__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Informal representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-str(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/__builtin__.type-class.html b/psycopg2/doc/api/private/__builtin__.type-class.html
deleted file mode 100644 (file)
index b388e76..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>__builtin__.type</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;__builtin__ ::\r
-        Class&nbsp;type\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.type-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.type-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type type</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">type</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>type(object) -&gt; the object's type\r
-type(name, bases, dict) -&gt; a new type</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__call__"></a><span class="summary-sig"><span class="summary-sig-name">__call__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return x(...)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__cmp__"></a><span class="summary-sig"><span class="summary-sig-name">__cmp__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return cmp(x,y)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">list of immediate subclasses</td>\r
-  <td><code><a name="__subclasses__"></a><span class="summary-sig"><span class="summary-sig-name">__subclasses__</span>()</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">list</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#mro" class="summary-sig-name"><code>mro</code></a>()</span></code>\r
-<br />\r
-return a type's method resolution order</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__base__"></a><strong><code>__base__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__basicsize__"></a><strong><code>__basicsize__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__dictoffset__"></a><strong><code>__dictoffset__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__flags__"></a><strong><code>__flags__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__itemsize__"></a><strong><code>__itemsize__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__mro__"></a><strong><code>__mro__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__weakrefoffset__"></a><strong><code>__weakrefoffset__</code></strong></td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Class Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>tuple</code></td>\r
-<td><strong><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></strong> = <span title="(&lt;type 'object'&gt;,)"><code>(&lt;type&nbsp;'object'&gt;,)                           </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
-<td><strong><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></strong> = <span title="'type'"><code><span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                        </code>\r
-</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__call__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__call__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Call operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x(...)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__cmp__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Comparison operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-cmp(x,y)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__delattr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__delattr__('name') &lt;==&gt; del x.name</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__delattr__"><code>__builtin__.object.__delattr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getattribute__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__hash__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Hashing function)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-hash(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__repr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-repr(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__setattr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__setattr__"><code>__builtin__.object.__setattr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__subclasses__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__subclasses__</span>()</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-list of immediate subclasses      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="mro"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">mro</span>()</span>\r
-  </h3>\r
-<p>return a type's method resolution order</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-list      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Class Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="__bases__"></a>\r
-<h3>__bases__</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>tuple</code>\r
-\r
-      </dd>\r
-      <dt title="(&lt;type 'object'&gt;,)">Value:</dt>\r
-      <dd title="(&lt;type 'object'&gt;,)"><table><tr><td>\r
-<pre class="variable">\r
-(&lt;type 'object'&gt;,)                                                     </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="__name__"></a>\r
-<h3>__name__</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>str</code>\r
-\r
-      </dd>\r
-      <dt title="'type'">Value:</dt>\r
-      <dd title="'type'"><table><tr><td>\r
-<pre class="variable">\r
-<span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                                                 </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/datetime.tzinfo-class.html b/psycopg2/doc/api/private/datetime.tzinfo-class.html
deleted file mode 100644 (file)
index 337ac1a..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>datetime.tzinfo</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;datetime ::\r
-        Class&nbsp;tzinfo\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/datetime.tzinfo-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="datetime.tzinfo-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type tzinfo</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">tzinfo</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a>,\r
-    <a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Abstract base class for time zone info objects.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
--&gt; (cls, state)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#dst" class="summary-sig-name"><code>dst</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime -&gt; DST offset in minutes east of UTC.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime in UTC -&gt; datetime in local time.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#tzname" class="summary-sig-name"><code>tzname</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime -&gt; string name of time zone.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#utcoffset" class="summary-sig-name"><code>utcoffset</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime -&gt; minutes east of UTC (negative for west of UTC).</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__getattribute__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__reduce__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>-&gt; (cls, state)</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__reduce__"><code>__builtin__.object.__reduce__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="dst"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>datetime -&gt; DST offset in minutes east of UTC.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fromutc"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fromutc</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>datetime in UTC -&gt; datetime in local time.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="tzname"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>datetime -&gt; string name of time zone.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="utcoffset"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>datetime -&gt; minutes east of UTC (negative for west of UTC).</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/epydoc.css b/psycopg2/doc/api/private/epydoc.css
deleted file mode 100644 (file)
index 22e8f7e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Based on the Epydoc "default.css"\r
-** with some missing reST-related classes\r
-** and Python syntax support (from SilverCity)\r
-*/\r
-\r
-/* Body color */ \r
-body               { background: #ffffff; color: #000000; } \r
\r
-/* Tables */ \r
-table.summary, table.details, table.index\r
-                   { background: #e8f0f8; color: #000000; } \r
-tr.summary, tr.details, tr.index\r
-                   { background: #70b0f0; color: #000000;  \r
-                     text-align: left; font-size: 120%; } \r
-tr.group           { background: #c0e0f8; color: #000000;\r
-                     text-align: left; font-size: 120%;\r
-                     font-style: italic; } \r
-\r
-/* Documentation page titles */\r
-h2.module          { margin-top: 0.2em; }\r
-h2.class           { margin-top: 0.2em; }\r
\r
-/* Headings */\r
-h1.heading         { font-size: +140%; font-style: italic;\r
-                     font-weight: bold; }\r
-h2.heading         { font-size: +125%; font-style: italic;\r
-                     font-weight: bold; }\r
-h3.heading         { font-size: +110%; font-style: italic;\r
-                     font-weight: normal; }\r
-                    \r
-/* Base tree */\r
-pre.base-tree      { font-size: 80%; margin: 0; }\r
-\r
-/* TOC */\r
-p.toc { margin: 0; }\r
-\r
-/* Details Sections */\r
-table.func-details { background: #e8f0f8; color: #000000;\r
-                     border: 2px groove #c0d0d0;\r
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
-h3.func-detail     { background: transparent; color: #000000;\r
-                     margin: 0 0 1em 0; }\r
-\r
-table.var-details  { background: #e8f0f8; color: #000000;\r
-                     border: 2px groove #c0d0d0;\r
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
-h3.var-details     { background: transparent; color: #000000;\r
-                     margin: 0 0 1em 0; }\r
-\r
-/* Function signatures */\r
-.sig               { background: transparent; color: #000000;\r
-                     font-weight: bold; }  \r
-.sig-name          { background: transparent; color: #006080; }  \r
-.sig-arg, .sig-kwarg, .sig-vararg\r
-                   { background: transparent; color: #008060; }  \r
-.sig-default       { background: transparent; color: #602000; }  \r
-.summary-sig       { background: transparent; color: #000000; }  \r
-.summary-sig-name  { background: transparent; color: #204080; }\r
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg\r
-                   { background: transparent; color: #008060; }  \r
-\r
-/* Doctest blocks */\r
-.py-src            { background: transparent; color: #000000; }\r
-.py-prompt         { background: transparent; color: #005050;\r
-                     font-weight: bold;}\r
-.py-string         { background: transparent; color: #006030; }\r
-.py-comment        { background: transparent; color: #003060; }\r
-.py-keyword        { background: transparent; color: #600000; }\r
-.py-output         { background: transparent; color: #404040; }\r
-div.code-block,\r
-pre.literal-block,\r
-pre.doctestblock   { background: #f4faff; color: #000000; \r
-                     padding: .5em; margin: 1em;\r
-                     border: 1px solid #708890; }\r
-table pre.doctestblock\r
-                   { background: #dce4ec; color: #000000; \r
-                     padding: .5em; margin: 1em;\r
-                     border: 1px solid #708890; }\r
-div.code-block     { font-family: monospace; }\r
-\r
-/* Variable values */\r
-pre.variable       { background: #dce4ec; color: #000000;\r
-                     padding: .5em; margin: 0;\r
-                     border: 1px solid #708890; }\r
-.variable-linewrap { background: transparent; color: #604000; }\r
-.variable-ellipsis { background: transparent; color: #604000; }\r
-.variable-quote    { background: transparent; color: #604000; }\r
-.re                { background: transparent; color: #000000; }\r
-.re-char           { background: transparent; color: #006030; }\r
-.re-op             { background: transparent; color: #600000; }\r
-.re-group          { background: transparent; color: #003060; }\r
-.re-ref            { background: transparent; color: #404040; }\r
-\r
-/* Navigation bar */ \r
-table.navbar       { background: #a0c0ff; color: #0000ff;\r
-                     border: 2px groove #c0d0d0; }\r
-th.navbar          { background: #a0c0ff; color: #0000ff; } \r
-th.navselect       { background: #70b0ff; color: #000000; } \r
-.nomargin          { margin: 0; }\r
-\r
-/* Links */ \r
-a:link             { background: transparent; color: #0000ff; }  \r
-a:visited          { background: transparent; color: #204080; }  \r
-a.navbar:link      { background: transparent; color: #0000ff; \r
-                     text-decoration: none; }  \r
-a.navbar:visited   { background: transparent; color: #204080; \r
-                     text-decoration: none; }  \r
-\r
-/* Admonitions */\r
-div.warning,\r
-div.note                { background-color: #c0e0f8;\r
-                          border: thin solid black;\r
-                          padding: 1em;\r
-                          margin-left: 1em;\r
-                          margin-right: 1em; }\r
-div.warning .first,\r
-div.note .first      { font-family: sans-serif;\r
-                          font-size: 110%;\r
-                          margin-right: 0.5em; }\r
-\r
-/* Lists */\r
-ul { margin-top: 0; }\r
-\r
-/* Python syntax */\r
-.p_character { color: olive; }\r
-.p_classname { color: blue; font-weight: bold; }\r
-.p_commentblock {color: gray; font-style: italic; }\r
-.p_commentline { color: green; font-style: italic; }\r
-.p_default {}\r
-.p_defname { color: #009999; font-weight: bold; }\r
-.p_identifier { color: black; }\r
-.p_number { color: #009999; }\r
-.p_operator { color: black; }\r
-.p_string { color: #7F007F; }\r
-.p_stringeol { color: #7F007F; }\r
-.p_triple { color: #7F0000; }\r
-.p_tripledouble { color: #7F0000; }\r
-.p_word { color: navy; font-weight: bold; }\r
diff --git a/psycopg2/doc/api/private/exceptions.Exception-class.html b/psycopg2/doc/api/private/exceptions.Exception-class.html
deleted file mode 100644 (file)
index 3064c51..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>exceptions.Exception</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;exceptions ::\r
-        Class&nbsp;Exception\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/exceptions.Exception-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.Exception-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class Exception</h2>\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="exceptions.StandardError-class.html"><code>StandardError</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Common base class for all exceptions.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Indexing operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__str__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Informal representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/exceptions.StandardError-class.html b/psycopg2/doc/api/private/exceptions.StandardError-class.html
deleted file mode 100644 (file)
index 1b491dd..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>exceptions.StandardError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;exceptions ::\r
-        Class&nbsp;StandardError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/exceptions.StandardError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.StandardError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class StandardError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+\r
-            |\r
-           <strong class="uidshort">StandardError</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.Error-class.html"><code>Error</code></a>,\r
-    <a href="psycopg2.Warning-class.html"><code>Warning</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Base class for all standard Python exceptions.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/frames.html b/psycopg2/doc/api/private/frames.html
deleted file mode 100644 (file)
index ffd6536..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
-          "DTD/xhtml1-frameset.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title> API Documentation </title>\r
-</head>\r
-<frameset cols="20%,80%">\r
-  <frameset rows="30%,70%">\r
-    <frame src="toc.html" name="moduleListFrame" id="moduleListFrame" />\r
-    <frame src="toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
-  </frameset>\r
-  <frame src="psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
-</frameset>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/help.html b/psycopg2/doc/api/private/help.html
deleted file mode 100644 (file)
index 21f2560..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Help</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/help.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<h1 class="help"> API Documentation </h1>\r
-\r
-<p> This document contains the API (Application Programming Interface)\r
-documentation for this project.  Documentation for the Python\r
-objects defined by the project is divided into separate pages for each\r
-package, module, and class.  The API documentation also includes two\r
-pages containing information about the project as a whole: a trees\r
-page, and an index page.  </p>\r
-\r
-<h2> Object Documentation </h2>\r
-\r
-  <p>Each <strong>Package Documentation</strong> page contains: </p>\r
-  <ul>\r
-    <li> A description of the package. </li>\r
-    <li> A list of the modules and sub-packages contained by the\r
-    package.  </li>\r
-    <li> A summary of the classes defined by the package. </li>\r
-    <li> A summary of the functions defined by the package. </li>\r
-    <li> A summary of the variables defined by the package. </li>\r
-    <li> A detailed description of each function defined by the\r
-    package. </li>\r
-    <li> A detailed description of each variable defined by the\r
-    package. </li>\r
-  </ul>\r
-  \r
-  <p>Each <strong>Module Documentation</strong> page contains:</p>\r
-  <ul>\r
-    <li> A description of the module. </li>\r
-    <li> A summary of the classes defined by the module. </li>\r
-    <li> A summary of the functions defined by the module. </li>\r
-    <li> A summary of the variables defined by the module. </li>\r
-    <li> A detailed description of each function defined by the\r
-    module. </li>\r
-    <li> A detailed description of each variable defined by the\r
-    module. </li>\r
-  </ul>\r
-  \r
-  <p>Each <strong>Class Documentation</strong> page contains: </p>\r
-  <ul>\r
-    <li> A class inheritance diagram. </li>\r
-    <li> A list of known subclasses. </li>\r
-    <li> A description of the class. </li>\r
-    <li> A summary of the methods defined by the class. </li>\r
-    <li> A summary of the instance variables defined by the class. </li>\r
-    <li> A summary of the class (static) variables defined by the\r
-    class. </li> \r
-    <li> A detailed description of each method defined by the\r
-    class. </li>\r
-    <li> A detailed description of each instance variable defined by the\r
-    class. </li> \r
-    <li> A detailed description of each class (static) variable defined\r
-    by the class. </li> \r
-  </ul>\r
-\r
-<h2> Project Documentation </h2>\r
-\r
-  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>\r
-  <ul>\r
-    <li> The <em>module hierarchy</em> lists every package and module, with\r
-    modules grouped into packages.  At the top level, and within each\r
-    package, modules and sub-packages are listed alphabetically. </li>\r
-    <li> The <em>class hierarchy</em> lists every class, grouped by base\r
-    class.  If a class has more than one base class, then it will be\r
-    listed under each base class.  At the top level, and under each base\r
-    class, classes are listed alphabetically. </li>\r
-  </ul>\r
-  \r
-  <p> The <strong>Index</strong> page contains indices of terms and\r
-  identifiers: </p>\r
-  <ul>\r
-    <li> The <em>term index</em> lists every term indexed by any object's\r
-    documentation.  For each term, the index provides links to each\r
-    place where the term is indexed. </li>\r
-    <li> The <em>identifier index</em> lists the (short) name of every package,\r
-    module, class, method, function, variable, and parameter.  For each\r
-    identifier, the index provides a short description, and a link to\r
-    its documentation. </li>\r
-  </ul>\r
-\r
-<h2> The Table of Contents </h2>\r
-\r
-<p> The table of contents occupies the two frames on the left side of\r
-the window.  The upper-left frame displays the <em>project\r
-contents</em>, and the lower-left frame displays the <em>module\r
-contents</em>: </p>\r
-\r
-<table class="help summary" border="1" cellspacing="0" cellpadding="3">\r
-  <tr style="height: 30%">\r
-    <td align="center" style="font-size: small">\r
-       Project<br />Contents<hr />...</td>\r
-    <td align="center" style="font-size: small" rowspan="2" width="70%">\r
-      API<br />Documentation<br />Frame<br /><br /><br />\r
-    </td>\r
-  </tr>\r
-  <tr>\r
-    <td align="center" style="font-size: small">\r
-      Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;\r
-    </td>\r
-  </tr>\r
-</table><br />\r
-\r
-<p> The <strong>project contents frame</strong> contains a list of all packages\r
-and modules that are defined by the project.  Clicking on an entry\r
-will display its contents in the module contents frame.  Clicking on a\r
-special entry, labeled "Everything," will display the contents of\r
-the entire project. </p>\r
-\r
-<p> The <strong>module contents frame</strong> contains a list of every\r
-submodule, class, type, exception, function, and variable defined by a\r
-module or package.  Clicking on an entry will display its\r
-documentation in the API documentation frame.  Clicking on the name of\r
-the module, at the top of the frame, will display the documentation\r
-for the module itself. </p>\r
-\r
-<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top\r
-navigation bar can be used to control whether the table of contents is\r
-displayed or not. </p>\r
-\r
-<h2> The Navigation Bar </h2>\r
-\r
-<p> A navigation bar is located at the top and bottom of every page.\r
-It indicates what type of page you are currently viewing, and allows\r
-you to go to related pages.  The following table describes the labels\r
-on the navigation bar.  Note that not some labels (such as\r
-[Parent]) are not displayed on all pages. </p>\r
-\r
-<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">\r
-<tr class="summary">\r
-  <th>Label</th>\r
-  <th>Highlighted when...</th>\r
-  <th>Links to...</th>\r
-</tr>\r
-  <tr><td valign="top"><strong>[Parent]</strong></td>\r
-      <td valign="top"><em>(never highlighted)</em></td>\r
-      <td valign="top"> the parent of the current package </td></tr>\r
-  <tr><td valign="top"><strong>[Package]</strong></td>\r
-      <td valign="top">viewing a package</td>\r
-      <td valign="top">the package containing the current object\r
-      </td></tr>\r
-  <tr><td valign="top"><strong>[Module]</strong></td>\r
-      <td valign="top">viewing a module</td>\r
-      <td valign="top">the module containing the current object\r
-      </td></tr> \r
-  <tr><td valign="top"><strong>[Class]</strong></td>\r
-      <td valign="top">viewing a class </td>\r
-      <td valign="top">the class containing the current object</td></tr>\r
-  <tr><td valign="top"><strong>[Trees]</strong></td>\r
-      <td valign="top">viewing the trees page</td>\r
-      <td valign="top"> the trees page </td></tr>\r
-  <tr><td valign="top"><strong>[Index]</strong></td>\r
-      <td valign="top">viewing the index page</td>\r
-      <td valign="top"> the index page </td></tr>\r
-  <tr><td valign="top"><strong>[Help]</strong></td>\r
-      <td valign="top">viewing the help page</td>\r
-      <td valign="top"> the help page </td></tr>\r
-</table>\r
-\r
-<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below\r
-the top navigation bar can be used to control whether documentation\r
-for private objects is displayed.  Private objects are usually defined\r
-as objects whose (short) names begin with a single underscore, but do\r
-not end with an underscore.  For example, "<code>_x</code>",\r
-"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"\r
-are private objects; but "<code>re.sub</code>",\r
-"<code>__init__</code>", and "<code>type_</code>" are not.  However,\r
-if a module defines the "<code>__all__</code>" variable, then its\r
-contents are used to decide which objects are private. </p>\r
-\r
-<p> A timestamp below the bottom navigation bar indicates when each\r
-page was last updated. </p>\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/index.html b/psycopg2/doc/api/private/index.html
deleted file mode 100644 (file)
index ffd6536..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
-          "DTD/xhtml1-frameset.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title> API Documentation </title>\r
-</head>\r
-<frameset cols="20%,80%">\r
-  <frameset rows="30%,70%">\r
-    <frame src="toc.html" name="moduleListFrame" id="moduleListFrame" />\r
-    <frame src="toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
-  </frameset>\r
-  <frame src="psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
-</frameset>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/indices.html b/psycopg2/doc/api/private/indices.html
deleted file mode 100644 (file)
index 6a224a1..0000000
+++ /dev/null
@@ -1,666 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Index</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/indices.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-<br />\r
-\r
-<!-- =========== START OF IDENTIFIER INDEX =========== -->\r
-<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="index">\r
-  <th colspan="2">Identifier Index</th></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__add__"><code>__add__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__base__"><code>__base__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></td>\r
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.psycopg1.cursor-class.html#__build_dict"><code>__build_dict</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__call__"><code>__call__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>\r
-    <td>Class in module <code>__builtin__</code></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__cmp__"><code>__cmp__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__contains__"><code>__contains__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__delattr__"><code>__delattr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__delattr__"><code>__delattr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__delitem__"><code>__delitem__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__delslice__"><code>__delslice__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__eq__"><code>__eq__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__ge__"><code>__ge__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__getitem__"><code>__getitem__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.Exception-class.html#__getitem__"><code>__getitem__</code></a></td>\r
-    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#__getitem__"><code>__getitem__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__getslice__"><code>__getslice__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__gt__"><code>__gt__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__hash__"><code>__hash__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__hash__"><code>__hash__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__hash__"><code>__hash__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__iadd__"><code>__iadd__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__imul__"><code>__imul__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.Exception-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__iter__"><code>__iter__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__iter__"><code>__iter__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__le__"><code>__le__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__len__"><code>__len__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__lt__"><code>__lt__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__mul__"><code>__mul__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></td>\r
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__ne__"><code>__ne__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce__"><code>__reduce__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__reduce__"><code>__reduce__</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce_ex__"><code>__reduce_ex__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__repr__"><code>__repr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__repr__"><code>__repr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__repr__"><code>__repr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#__repr__"><code>__repr__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__repr__"><code>__repr__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__rmul__"><code>__rmul__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__setattr__"><code>__setattr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__setattr__"><code>__setattr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__setitem__"><code>__setitem__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__setslice__"><code>__setslice__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__str__"><code>__str__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.Exception-class.html#__str__"><code>__str__</code></a></td>\r
-    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#__str__"><code>__str__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__str__"><code>__str__</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__subclasses__"><code>__subclasses__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#__version__"><code>__version__</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.extras.DictCursor-class.html#_build_index"><code>_build_index</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#_C_API"><code>_C_API</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall"><code>_closeall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect"><code>_connect</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.extras.DictCursor-class.html#__query_executed"><code>__query_executed</code></a></td>\r
-    <td>Variable in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn"><code>_getconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey"><code>_getkey</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.tz.LocalTimezone-class.html#_isdst"><code>_isdst</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html#_name"><code>_name</code></a></td>\r
-    <td>Variable in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html#_offset"><code>_offset</code></a></td>\r
-    <td>Variable in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html"><code>_psycopg</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn"><code>_putconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#_wrapped"><code>_wrapped</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#adapt"><code>adapt</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#adapters"><code>adapters</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#apilevel"><code>apilevel</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#append"><code>append</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#arraysize"><code>arraysize</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#AsIs"><code>AsIs</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html#autocommit"><code>autocommit</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#Binary"><code>Binary</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#BINARY"><code>BINARY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#binary_types"><code>binary_types</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#binary_types"><code>binary_types</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#BINARYARRAY"><code>BINARYARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#BOOLEAN"><code>BOOLEAN</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#Boolean"><code>Boolean</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#BOOLEANARRAY"><code>BOOLEANARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#callproc"><code>callproc</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#callproc"><code>callproc</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#close"><code>close</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#close"><code>close</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#closeall"><code>closeall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#closeall"><code>closeall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#closed"><code>closed</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#commit"><code>commit</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#connect"><code>connect</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1-module.html#connect"><code>connect</code></a></td>\r
-    <td>Function in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a></td>\r
-    <td>Class in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#connection"><code>connection</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a></td>\r
-    <td>Class in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_from"><code>copy_from</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_to"><code>copy_to</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#count"><code>count</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>cursor</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a></td>\r
-    <td>Class in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictConnection-class.html#cursor"><code>cursor</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictConnection-class.html"><code>psycopg2.extras.DictConnection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html#cursor"><code>cursor</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a></td>\r
-    <td>Class in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#DatabaseError"><code>DatabaseError</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.DataError-class.html"><code>DataError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#DataError"><code>DataError</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#Date"><code>Date</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DATE"><code>DATE</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DATEARRAY"><code>DATEARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#DateFromPy"><code>DateFromPy</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#DateFromTicks"><code>DateFromTicks</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DATETIME"><code>DATETIME</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DATETIMEARRAY"><code>DATETIMEARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool-module.html#dbg"><code>dbg</code></a></td>\r
-    <td>Function in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DECIMAL"><code>DECIMAL</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DECIMALARRAY"><code>DECIMALARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#description"><code>description</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></td>\r
-    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></td>\r
-    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchall"><code>dictfetchall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchmany"><code>dictfetchmany</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchone"><code>dictfetchone</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></td>\r
-    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#dsn"><code>dsn</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#dst"><code>dst</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#dst"><code>dst</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#dst"><code>dst</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html#DSTDIFF"><code>DSTDIFF</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#encoding"><code>encoding</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#encodings"><code>encodings</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.Error-class.html"><code>Error</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#Error"><code>Error</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.Exception-class.html"><code>Exception</code></a></td>\r
-    <td>Class in module <code>exceptions</code></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#execute"><code>execute</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#execute"><code>execute</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#executemany"><code>executemany</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#extend"><code>extend</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras-module.html"><code>extras</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall"><code>fetchall</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchall"><code>fetchall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany"><code>fetchmany</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchmany"><code>fetchmany</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone"><code>fetchone</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchone"><code>fetchone</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#fileno"><code>fileno</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a></td>\r
-    <td>Class in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#FLOAT"><code>FLOAT</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#FLOATARRAY"><code>FLOATARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#fromutc"><code>fromutc</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#get"><code>get</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getbinary"><code>getbinary</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getbuffer"><code>getbuffer</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#getconn"><code>getconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#getconn"><code>getconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getquoted"><code>getquoted</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html#getquoted"><code>getquoted</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#has_key"><code>has_key</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#index"><code>index</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#insert"><code>insert</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#INTEGER"><code>INTEGER</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#INTEGERARRAY"><code>INTEGERARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#IntegrityError"><code>IntegrityError</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#InterfaceError"><code>InterfaceError</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.InternalError-class.html"><code>InternalError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#InternalError"><code>InternalError</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#INTERVAL"><code>INTERVAL</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#INTERVALARRAY"><code>INTERVALARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#IntervalFromPy"><code>IntervalFromPy</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#isolation_level"><code>isolation_level</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><code>ISOLATION_LEVEL_AUTOCOMMIT</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED"><code>ISOLATION_LEVEL_READ_COMMITTED</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED"><code>ISOLATION_LEVEL_READ_UNCOMMITTED</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ"><code>ISOLATION_LEVEL_REPEATABLE_READ</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><code>ISOLATION_LEVEL_SERIALIZABLE</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>ISQLQuote</code></a></td>\r
-    <td>Class in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#isready"><code>isready</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#items"><code>items</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#keys"><code>keys</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#lastrowid"><code>lastrowid</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html"><code>list</code></a></td>\r
-    <td>Class in module <code>__builtin__</code></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#List"><code>List</code></a></td>\r
-    <td>Function in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html#LOCAL"><code>LOCAL</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></td>\r
-    <td>Class in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#LONGINTEGER"><code>LONGINTEGER</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#LONGINTEGERARRAY"><code>LONGINTEGERARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#mogrify"><code>mogrify</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#mro"><code>mro</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#name"><code>name</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#new_type"><code>new_type</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#next"><code>next</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#nextset"><code>nextset</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#notices"><code>notices</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#notifies"><code>notifies</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#NotSupportedError"><code>NotSupportedError</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#NUMBER"><code>NUMBER</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>\r
-    <td>Class in module <code>__builtin__</code></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#OperationalError"><code>OperationalError</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#paramstyle"><code>paramstyle</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool-module.html"><code>pool</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#pop"><code>pop</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#ProgrammingError"><code>ProgrammingError</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html"><code>psycopg2</code></a></td>\r
-    <td>Package</td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#putconn"><code>putconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#putconn"><code>putconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#PYDATE"><code>PYDATE</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#PYDATETIME"><code>PYDATETIME</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#PYINTERVAL"><code>PYINTERVAL</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#PYTIME"><code>PYTIME</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#query"><code>query</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#QuotedString"><code>QuotedString</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#register_adapter"><code>register_adapter</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#register_type"><code>register_type</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#remove"><code>remove</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#reverse"><code>reverse</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#rollback"><code>rollback</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#row_factory"><code>row_factory</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#rowcount"><code>rowcount</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#ROWID"><code>ROWID</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#ROWIDARRAY"><code>ROWIDARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#rownumber"><code>rownumber</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#scroll"><code>scroll</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#set_client_encoding"><code>set_client_encoding</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#set_isolation_level"><code>set_isolation_level</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#setinputsizes"><code>setinputsizes</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#setoutputsize"><code>setoutputsize</code></a></td>\r
-    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#sort"><code>sort</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a></td>\r
-    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.StandardError-class.html"><code>StandardError</code></a></td>\r
-    <td>Class in module <code>exceptions</code></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#statusmessage"><code>statusmessage</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html#STDOFFSET"><code>STDOFFSET</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#STRING"><code>STRING</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#string_types"><code>string_types</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#string_types"><code>string_types</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#STRINGARRAY"><code>STRINGARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#threadsafety"><code>threadsafety</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#Time"><code>Time</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#TIME"><code>TIME</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#TIMEARRAY"><code>TIMEARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#TimeFromPy"><code>TimeFromPy</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#TimeFromTicks"><code>TimeFromTicks</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#Timestamp"><code>Timestamp</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#TimestampFromPy"><code>TimestampFromPy</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#TimestampFromTicks"><code>TimestampFromTicks</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>\r
-    <td>Class in module <code>__builtin__</code></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#typecaster"><code>typecaster</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html"><code>tz</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html"><code>tzinfo</code></a></td>\r
-    <td>Class in module <code>datetime</code></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#tzinfo_factory"><code>tzinfo_factory</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#tzname"><code>tzname</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#tzname"><code>tzname</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#tzname"><code>tzname</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#UNICODE"><code>UNICODE</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#UNICODEARRAY"><code>UNICODEARRAY</code></a></td>\r
-    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#utcoffset"><code>utcoffset</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#utcoffset"><code>utcoffset</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#utcoffset"><code>utcoffset</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#values"><code>values</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.Warning-class.html"><code>Warning</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#Warning"><code>Warning</code></a></td>\r
-    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html#ZERO"><code>ZERO</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-</table>\r
-<br />\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2-module.html b/psycopg2/doc/api/private/psycopg2-module.html
deleted file mode 100644 (file)
index dd7e92d..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Package&nbsp;psycopg2\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2-module.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF PACKAGE DESCRIPTION =========== -->\r
-<h2 class="package">Package psycopg2</h2>\r
-\r
-<p>A Python driver for PostgreSQL</p>\r
-<p>psycopg is a <a class="reference" href="http://www.postgresql.org/">PostgreSQL</a> database adapter for the <a class="reference" href="http://www.python.org/">Python</a> programming\r
-language. This is version 2, a complete rewrite of the original code to\r
-provide new-style classes for connection and cursor objects and other sweet\r
-candies. Like the original, psycopg 2 was written with the aim of being very\r
-small and fast, and stable as a rock.</p>\r
-<p>Homepage: <a class="reference" href="http://initd.org/projects/psycopg2">http://initd.org/projects/psycopg2</a></p>\r
-<hr/>\r
-\r
-<!-- =========== START OF SUBMODULES =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Submodules</th></tr>\r
-  <tr><td><ul>\r
-<li> <strong class="uidlink"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></strong>: <em class="summary">psycopg extensions to the DBAPI-2.0</em></li>\r
-<li> <strong class="uidlink"><a href="psycopg2.extras-module.html"><code>extras</code></a></strong>: <em class="summary">Miscellaneous goodies for psycopg2</em></li>\r
-<li> <strong class="uidlink"><a href="psycopg2.pool-module.html"><code>pool</code></a></strong>: <em class="summary">Connection pooling for psycopg2</em></li>\r
-<li> <strong class="uidlink"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></strong>: <em class="summary">psycopg 1.1.x compatibility module</em></li>\r
-<li> <strong class="uidlink"><a href="psycopg2.tz-module.html"><code>tz</code></a></strong>: <em class="summary">tzinfo implementations for psycopg2</em></li>\r
-<li> <strong class="uidlink"><a href="../private/psycopg2._psycopg-module.html"><code>_psycopg</code></a></strong>: <em class="summary">psycopg PostgreSQL driver</em></li>\r
-  </ul></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF EXCEPTIONS =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Exceptions</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a></strong></td>\r
-  <td>Error related to the database engine.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.DataError-class.html"><code>DataError</code></a></strong></td>\r
-  <td>Error related to problems with the processed data.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.Error-class.html"><code>Error</code></a></strong></td>\r
-  <td>Base class for error exceptions.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a></strong></td>\r
-  <td>Error related to database integrity.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a></strong></td>\r
-  <td>Error related to the database interface.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.InternalError-class.html"><code>InternalError</code></a></strong></td>\r
-  <td>The database encountered an internal error.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a></strong></td>\r
-  <td>A not supported datbase API was called.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a></strong></td>\r
-  <td>Error related to database operation (disconnect, memory allocation etc).</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></strong></td>\r
-  <td>Error related to database programming (SQL error, table not found etc).</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.Warning-class.html"><code>Warning</code></a></strong></td>\r
-  <td>A database warning.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Connections creation</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype"><a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a></td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#connect" class="summary-sig-name"><code>connect</code></a>(<span class="summary-sig-arg">dsn</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Create a new database connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Value objects constructors</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new binary object</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Binary" class="summary-sig-name"><code>Binary</code></a>(<span class="summary-sig-arg">buffer</span>)</span></code>\r
-<br />\r
-Build an object capable to hold a bynary string value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new date</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Date" class="summary-sig-name"><code>Date</code></a>(<span class="summary-sig-arg">year</span>,\r
-          <span class="summary-sig-arg">month</span>,\r
-          <span class="summary-sig-arg">day</span>)</span></code>\r
-<br />\r
-Build an object holding a date value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new date</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#DateFromTicks" class="summary-sig-name"><code>DateFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
-<br />\r
-Build an object holding a date value from the given ticks value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new time</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Time" class="summary-sig-name"><code>Time</code></a>(<span class="summary-sig-arg">hour</span>,\r
-          <span class="summary-sig-arg">minutes</span>,\r
-          <span class="summary-sig-arg">seconds</span>,\r
-          <span class="summary-sig-arg">tzinfo</span>)</span></code>\r
-<br />\r
-Build an object holding a time value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new time</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#TimeFromTicks" class="summary-sig-name"><code>TimeFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
-<br />\r
-Build an object holding a time value from the given ticks value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new timestamp</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Timestamp" class="summary-sig-name"><code>Timestamp</code></a>(<span class="summary-sig-arg">year</span>,\r
-          <span class="summary-sig-arg">month</span>,\r
-          <span class="summary-sig-arg">day</span>,\r
-          <span class="summary-sig-arg">hour</span>,\r
-          <span class="summary-sig-arg">minutes</span>,\r
-          <span class="summary-sig-arg">seconds</span>,\r
-          <span class="summary-sig-arg">tzinfo</span>)</span></code>\r
-<br />\r
-Build an object holding a timestamp value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new timestamp</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#TimestampFromTicks" class="summary-sig-name"><code>TimestampFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
-<br />\r
-Build an object holding a timestamp value from the given ticks value.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="connect"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">connect</span>(<span class="sig-arg">dsn</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>Create a new database connection.</p>\r
-<p>This function supports two different but equivalent sets of arguments.\r
-A single data source name or <tt class="docutils literal"><span class="pre">dsn</span></tt> string can be used to specify the\r
-connection parameters, as follows:</p>\r
-<pre class="literal-block">\r
-psycopg2.connect(&quot;dbname=xxx user=xxx ...&quot;)\r
-</pre>\r
-<p>If <tt class="docutils literal"><span class="pre">dsn</span></tt> is not provided it is possible to pass the parameters as\r
-keyword arguments; e.g.:</p>\r
-<pre class="literal-block">\r
-psycopg2.connect(database='xxx', user='xxx', ...)\r
-</pre>\r
-<p>The full list of available parameters is:</p>\r
-<ul class="rst-simple">\r
-<li><tt class="docutils literal"><span class="pre">dbname</span></tt> -- database name (only in 'dsn')</li>\r
-<li><tt class="docutils literal"><span class="pre">database</span></tt> -- database name (only as keyword argument)</li>\r
-<li><tt class="docutils literal"><span class="pre">host</span></tt> -- host address (defaults to UNIX socket if not provided)</li>\r
-<li><tt class="docutils literal"><span class="pre">port</span></tt> -- port number (defaults to 5432 if not provided)</li>\r
-<li><tt class="docutils literal"><span class="pre">user</span></tt> -- user name used to authenticate</li>\r
-<li><tt class="docutils literal"><span class="pre">password</span></tt> -- password used to authenticate</li>\r
-<li><tt class="docutils literal"><span class="pre">sslmode</span></tt> -- SSL mode (see PostgreSQL documentation)</li>\r
-</ul>\r
-<p>If the <tt class="docutils literal"><span class="pre">connection_factory</span></tt> keyword argument is not provided this\r
-function always return an instance of the <code>connection</code> class.\r
-Else the given sub-class of <a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a> will be used to\r
-instantiate the connection object.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-New database connection        <br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-        (type=<a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a>)</em>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Binary"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Binary</span>(<span class="sig-arg">buffer</span>)</span>\r
-  </h3>\r
-<p>Build an object capable to hold a bynary string value.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new binary object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Date"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Date</span>(<span class="sig-arg">year</span>,\r
-          <span class="sig-arg">month</span>,\r
-          <span class="sig-arg">day</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a date value.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new date      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="DateFromTicks"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">DateFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a date value from the given ticks value.</p>\r
-<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new date      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Time"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Time</span>(<span class="sig-arg">hour</span>,\r
-          <span class="sig-arg">minutes</span>,\r
-          <span class="sig-arg">seconds</span>,\r
-          <span class="sig-arg">tzinfo</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a time value.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new time      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="TimeFromTicks"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">TimeFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a time value from the given ticks value.</p>\r
-<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new time      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Timestamp"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Timestamp</span>(<span class="sig-arg">year</span>,\r
-          <span class="sig-arg">month</span>,\r
-          <span class="sig-arg">day</span>,\r
-          <span class="sig-arg">hour</span>,\r
-          <span class="sig-arg">minutes</span>,\r
-          <span class="sig-arg">seconds</span>,\r
-          <span class="sig-arg">tzinfo</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a timestamp value.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new timestamp      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="TimestampFromTicks"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">TimestampFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a timestamp value from the given ticks value.</p>\r
-<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new timestamp      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.DataError-class.html b/psycopg2/doc/api/private/psycopg2.DataError-class.html
deleted file mode 100644 (file)
index 5805400..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.DataError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;DataError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.DataError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.DataError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class DataError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">DataError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to problems with the processed data.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.DatabaseError-class.html b/psycopg2/doc/api/private/psycopg2.DatabaseError-class.html
deleted file mode 100644 (file)
index adc28d4..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.DatabaseError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;DatabaseError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.DatabaseError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.DatabaseError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class DatabaseError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
-            |        \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
-                |    \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
-                    |\r
-                   <strong class="uidshort">DatabaseError</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.DataError-class.html"><code>DataError</code></a>,\r
-    <a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a>,\r
-    <a href="psycopg2.InternalError-class.html"><code>InternalError</code></a>,\r
-    <a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a>,\r
-    <a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a>,\r
-    <a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Error related to the database engine.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.Error-class.html b/psycopg2/doc/api/private/psycopg2.Error-class.html
deleted file mode 100644 (file)
index 33bff57..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.Error</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;Error\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.Error-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.Error-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class Error</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    \r
-            |    \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+\r
-                |\r
-               <strong class="uidshort">Error</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a>,\r
-    <a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a>,\r
-    <a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Base class for error exceptions.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.IntegrityError-class.html b/psycopg2/doc/api/private/psycopg2.IntegrityError-class.html
deleted file mode 100644 (file)
index c1804f6..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.IntegrityError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;IntegrityError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.IntegrityError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.IntegrityError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class IntegrityError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">IntegrityError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to database integrity.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.InterfaceError-class.html b/psycopg2/doc/api/private/psycopg2.InterfaceError-class.html
deleted file mode 100644 (file)
index 099ee90..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.InterfaceError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;InterfaceError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.InterfaceError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.InterfaceError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class InterfaceError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
-            |        \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
-                |    \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
-                    |\r
-                   <strong class="uidshort">InterfaceError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to the database interface.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.InternalError-class.html b/psycopg2/doc/api/private/psycopg2.InternalError-class.html
deleted file mode 100644 (file)
index 5390de5..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.InternalError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;InternalError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.InternalError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.InternalError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class InternalError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">InternalError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>The database encountered an internal error.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.NotSupportedError-class.html b/psycopg2/doc/api/private/psycopg2.NotSupportedError-class.html
deleted file mode 100644 (file)
index c677f5b..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.NotSupportedError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;NotSupportedError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.NotSupportedError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.NotSupportedError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class NotSupportedError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">NotSupportedError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A not supported datbase API was called.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.OperationalError-class.html b/psycopg2/doc/api/private/psycopg2.OperationalError-class.html
deleted file mode 100644 (file)
index 6cca463..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.OperationalError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;OperationalError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.OperationalError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.OperationalError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class OperationalError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">OperationalError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to database operation (disconnect, memory allocation etc).</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.ProgrammingError-class.html b/psycopg2/doc/api/private/psycopg2.ProgrammingError-class.html
deleted file mode 100644 (file)
index 9fcd4ef..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.ProgrammingError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;ProgrammingError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.ProgrammingError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.ProgrammingError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class ProgrammingError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">ProgrammingError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to database programming (SQL error, table not found etc).</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.Warning-class.html b/psycopg2/doc/api/private/psycopg2.Warning-class.html
deleted file mode 100644 (file)
index 741c9a7..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.Warning</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;Warning\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.Warning-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.Warning-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class Warning</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    \r
-            |    \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+\r
-                |\r
-               <strong class="uidshort">Warning</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A database warning.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2._psycopg-module.html b/psycopg2/doc/api/private/psycopg2._psycopg-module.html
deleted file mode 100644 (file)
index 6e4cb25..0000000
+++ /dev/null
@@ -1,1072 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2._psycopg</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;_psycopg\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/psycopg2._psycopg-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2._psycopg</h2>\r
-\r
-<p>psycopg PostgreSQL driver</p>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a></strong></td>\r
-  <td>connection(dsn, ...) -&gt; new connection object</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a></strong></td>\r
-  <td>A database cursor.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>ISQLQuote</code></a></strong></td>\r
-  <td>Abstract ISQLQuote protocol</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new quoted list</td>\r
-  <td><code><a name="List"></a><span class="summary-sig"><span class="summary-sig-name">List</span>(<span class="summary-sig-arg">list</span>,\r
-          <span class="summary-sig-arg">enc</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#__version__"><code>__version__</code></a></strong> = <span title="'2.0b7 (dt ext pq3)'"><code><span class="variable-quote">'</span>2.0b7&nbsp;(dt&nbsp;ext&nbsp;pq3)<span class="variable-quote">'</span>                       </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>PyCObject</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#_C_API"><code>_C_API</code></a></strong> = <span title="&lt;PyCObject object at 0x0076A320&gt;"><code>&lt;PyCObject&nbsp;object&nbsp;at&nbsp;0x0076A320&gt;                </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#adapters"><code>adapters</code></a></strong> = <span title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ..."><code>{(&lt;type&nbsp;'bool'&gt;,&nbsp;&lt;type&nbsp;'psycopg2._psycopg.ISQ<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#apilevel"><code>apilevel</code></a></strong> = <span title="'2.0'"><code><span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>                                         </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#BINARY"><code>BINARY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847A00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847A00&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#binary_types"><code>binary_types</code></a></strong> = <span title="{}"><code>{}                                        </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#BINARYARRAY"><code>BINARYARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847CA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847C<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#BOOLEAN"><code>BOOLEAN</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847880&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847880&gt;  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#BOOLEANARRAY"><code>BOOLEANARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847BA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#DATE"><code>DATE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847960&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847960&gt;     </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#DATEARRAY"><code>DATEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847C20&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847C20<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#DATETIME"><code>DATETIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008478C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008478C0&gt; </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#DATETIMEARRAY"><code>DATETIMEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847BC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0084<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#DECIMAL"><code>DECIMAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008477A0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008477A0&gt;  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#DECIMALARRAY"><code>DECIMALARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847B20&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#encodings"><code>encodings</code></a></strong> = <span title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}"><code>{'UTF8':&nbsp;'utf_8',&nbsp;'LATIN-1':&nbsp;'latin_1',&nbsp;'SQL<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#FLOAT"><code>FLOAT</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847740&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847740&gt;    </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#FLOATARRAY"><code>FLOATARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847AE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847AE<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#INTEGER"><code>INTEGER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847700&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847700&gt;  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#INTEGERARRAY"><code>INTEGERARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847AC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#INTERVAL"><code>INTERVAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008479A0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008479A0&gt; </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#INTERVALARRAY"><code>INTERVALARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847C60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0084<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#LONGINTEGER"><code>LONGINTEGER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008476C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008476<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#LONGINTEGERARRAY"><code>LONGINTEGERARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847AA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#NUMBER"><code>NUMBER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847680&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847680&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#paramstyle"><code>paramstyle</code></a></strong> = <span title="'pyformat'"><code><span class="variable-quote">'</span>pyformat<span class="variable-quote">'</span>                                  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#PYDATE"><code>PYDATE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847DC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847DC0&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#PYDATETIME"><code>PYDATETIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847D20&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847D2<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#PYINTERVAL"><code>PYINTERVAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847DE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847DE<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#PYTIME"><code>PYTIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847D60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847D60&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#ROWID"><code>ROWID</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847A60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847A60&gt;    </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#ROWIDARRAY"><code>ROWIDARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847CC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847CC<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#STRING"><code>STRING</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847820&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847820&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#string_types"><code>string_types</code></a></strong> = <span title="{1028: &lt;psycopg2._psycopg.type object at 0x00847CC0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00847AC0&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00847880&gt;, 17: &lt;psycopg2._psycopg.type object at 0x00847A00&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 20: &lt;psycopg2._psycopg.type object at 0x008476C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 26: &lt;psycopg2._psycopg.type object at 0x00847A60&gt;, 1182: &lt;psycopg2._psycopg.ty..."><code>{1028:&nbsp;&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#STRINGARRAY"><code>STRINGARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847B60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847B<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#threadsafety"><code>threadsafety</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#TIME"><code>TIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847900&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847900&gt;     </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#TIMEARRAY"><code>TIMEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847BE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847BE0<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#UNICODE"><code>UNICODE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008477E0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008477E0&gt;  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="../private/psycopg2._psycopg-module.html#UNICODEARRAY"><code>UNICODEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847B40&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="List"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">List</span>(<span class="sig-arg">list</span>,\r
-          <span class="sig-arg">enc</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new quoted list      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="__version__"></a>\r
-<h3>__version__</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>str</code>\r
-\r
-      </dd>\r
-      <dt title="'2.0b7 (dt ext pq3)'">Value:</dt>\r
-      <dd title="'2.0b7 (dt ext pq3)'"><table><tr><td>\r
-<pre class="variable">\r
-<span class="variable-quote">'</span>2.0b7 (dt ext pq3)<span class="variable-quote">'</span>                                                   </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="_C_API"></a>\r
-<h3>_C_API</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>PyCObject</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;PyCObject object at 0x0076A320&gt;">Value:</dt>\r
-      <dd title="&lt;PyCObject object at 0x0076A320&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;PyCObject object at 0x0076A320&gt;                                       </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="adapters"></a>\r
-<h3>adapters</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>dict</code>\r
-\r
-      </dd>\r
-      <dt title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ...">Value:</dt>\r
-      <dd title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ..."><table><tr><td>\r
-<pre class="variable">\r
-{(&lt;type 'datetime.timedelta'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): <span class="variable-linewrap">\</span>\r
-&lt;built-in function IntervalFromPy&gt;,\r
- (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;buil<span class="variable-linewrap">\</span>\r
-t-in function DateFromPy&gt;,\r
- (&lt;type 'datetime.time'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;buil<span class="variable-linewrap">\</span>\r
-t-in function TimeFromPy&gt;,\r
- (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;<span class="variable-linewrap">\</span>\r
-built-in function TimestampFromPy&gt;,\r
-<span class="variable-ellipsis">...</span>                                                                    </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="apilevel"></a>\r
-<h3>apilevel</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>str</code>\r
-\r
-      </dd>\r
-      <dt title="'2.0'">Value:</dt>\r
-      <dd title="'2.0'"><table><tr><td>\r
-<pre class="variable">\r
-<span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>                                                                  </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="BINARY"></a>\r
-<h3>BINARY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847A00&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847A00&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847A00&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="binary_types"></a>\r
-<h3>binary_types</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>dict</code>\r
-\r
-      </dd>\r
-      <dt title="{}">Value:</dt>\r
-      <dd title="{}"><table><tr><td>\r
-<pre class="variable">\r
-{}                                                                     </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="BINARYARRAY"></a>\r
-<h3>BINARYARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847CA0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847CA0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847CA0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="BOOLEAN"></a>\r
-<h3>BOOLEAN</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847880&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847880&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847880&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="BOOLEANARRAY"></a>\r
-<h3>BOOLEANARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847BA0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847BA0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847BA0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DATE"></a>\r
-<h3>DATE</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847960&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847960&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847960&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DATEARRAY"></a>\r
-<h3>DATEARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847C20&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847C20&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847C20&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DATETIME"></a>\r
-<h3>DATETIME</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x008478C0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x008478C0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x008478C0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DATETIMEARRAY"></a>\r
-<h3>DATETIMEARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847BC0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847BC0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847BC0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DECIMAL"></a>\r
-<h3>DECIMAL</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x008477A0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x008477A0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x008477A0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DECIMALARRAY"></a>\r
-<h3>DECIMALARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847B20&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847B20&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847B20&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="encodings"></a>\r
-<h3>encodings</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>dict</code>\r
-\r
-      </dd>\r
-      <dt title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}">Value:</dt>\r
-      <dd title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}"><table><tr><td>\r
-<pre class="variable">\r
-{'LATIN-1': 'latin_1',\r
- 'LATIN1': 'latin_1',\r
- 'SQL_ASCII': 'ascii',\r
- 'UNICODE': 'utf_8',\r
- 'UTF8': 'utf_8'}                                                      </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="FLOAT"></a>\r
-<h3>FLOAT</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847740&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847740&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847740&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="FLOATARRAY"></a>\r
-<h3>FLOATARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847AE0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847AE0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847AE0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="INTEGER"></a>\r
-<h3>INTEGER</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847700&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847700&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847700&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="INTEGERARRAY"></a>\r
-<h3>INTEGERARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847AC0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847AC0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847AC0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="INTERVAL"></a>\r
-<h3>INTERVAL</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x008479A0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x008479A0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x008479A0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="INTERVALARRAY"></a>\r
-<h3>INTERVALARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847C60&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847C60&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847C60&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="LONGINTEGER"></a>\r
-<h3>LONGINTEGER</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x008476C0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x008476C0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x008476C0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="LONGINTEGERARRAY"></a>\r
-<h3>LONGINTEGERARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847AA0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847AA0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847AA0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="NUMBER"></a>\r
-<h3>NUMBER</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847680&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847680&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847680&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="paramstyle"></a>\r
-<h3>paramstyle</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>str</code>\r
-\r
-      </dd>\r
-      <dt title="'pyformat'">Value:</dt>\r
-      <dd title="'pyformat'"><table><tr><td>\r
-<pre class="variable">\r
-<span class="variable-quote">'</span>pyformat<span class="variable-quote">'</span>                                                             </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="PYDATE"></a>\r
-<h3>PYDATE</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847DC0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847DC0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847DC0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="PYDATETIME"></a>\r
-<h3>PYDATETIME</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847D20&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847D20&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847D20&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="PYINTERVAL"></a>\r
-<h3>PYINTERVAL</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847DE0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847DE0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847DE0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="PYTIME"></a>\r
-<h3>PYTIME</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847D60&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847D60&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847D60&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ROWID"></a>\r
-<h3>ROWID</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847A60&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847A60&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847A60&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ROWIDARRAY"></a>\r
-<h3>ROWIDARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847CC0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847CC0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847CC0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="STRING"></a>\r
-<h3>STRING</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847820&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847820&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847820&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="string_types"></a>\r
-<h3>string_types</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>dict</code>\r
-\r
-      </dd>\r
-      <dt title="{1028: &lt;psycopg2._psycopg.type object at 0x00847CC0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00847AC0&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00847880&gt;, 17: &lt;psycopg2._psycopg.type object at 0x00847A00&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 20: &lt;psycopg2._psycopg.type object at 0x008476C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 26: &lt;psycopg2._psycopg.type object at 0x00847A60&gt;, 1182: &lt;psycopg2._psycopg.ty...">Value:</dt>\r
-      <dd title="{1028: &lt;psycopg2._psycopg.type object at 0x00847CC0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00847AC0&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00847880&gt;, 17: &lt;psycopg2._psycopg.type object at 0x00847A00&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 20: &lt;psycopg2._psycopg.type object at 0x008476C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 26: &lt;psycopg2._psycopg.type object at 0x00847A60&gt;, 1182: &lt;psycopg2._psycopg.ty..."><table><tr><td>\r
-<pre class="variable">\r
-{16: &lt;psycopg2._psycopg.type object at 0x00847880&gt;,\r
- 17: &lt;psycopg2._psycopg.type object at 0x00847A00&gt;,\r
- 18: &lt;psycopg2._psycopg.type object at 0x00847820&gt;,\r
- 19: &lt;psycopg2._psycopg.type object at 0x00847820&gt;,\r
- 20: &lt;psycopg2._psycopg.type object at 0x008476C0&gt;,\r
- 21: &lt;psycopg2._psycopg.type object at 0x00847700&gt;,\r
- 23: &lt;psycopg2._psycopg.type object at 0x00847700&gt;,\r
- 25: &lt;psycopg2._psycopg.type object at 0x00847820&gt;,\r
-<span class="variable-ellipsis">...</span>                                                                    </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="STRINGARRAY"></a>\r
-<h3>STRINGARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847B60&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847B60&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847B60&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="threadsafety"></a>\r
-<h3>threadsafety</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="2">Value:</dt>\r
-      <dd title="2"><table><tr><td>\r
-<pre class="variable">\r
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="TIME"></a>\r
-<h3>TIME</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847900&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847900&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847900&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="TIMEARRAY"></a>\r
-<h3>TIMEARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847BE0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847BE0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847BE0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="UNICODE"></a>\r
-<h3>UNICODE</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x008477E0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x008477E0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x008477E0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="UNICODEARRAY"></a>\r
-<h3>UNICODEARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00847B40&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00847B40&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00847B40&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:33 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2._psycopg.ISQLQuote-class.html b/psycopg2/doc/api/private/psycopg2._psycopg.ISQLQuote-class.html
deleted file mode 100644 (file)
index 3a7db8e..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2._psycopg.ISQLQuote</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="../private/psycopg2._psycopg-module.html">Module&nbsp;_psycopg</a> ::\r
-        Class&nbsp;ISQLQuote\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/psycopg2._psycopg.ISQLQuote-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type ISQLQuote</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">ISQLQuote</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Abstract ISQLQuote protocol</p>\r
-<p>An object conform to this protocol should expose a <tt class="docutils literal"><span class="pre">getquoted()</span></tt> method\r
-returning the SQL representation of the object.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getbinary" class="summary-sig-name"><code>getbinary</code></a>()</span></code>\r
-<br />\r
-return SQL-quoted binary representation of this object</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getbuffer" class="summary-sig-name"><code>getbuffer</code></a>()</span></code>\r
-<br />\r
-return this object</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getquoted" class="summary-sig-name"><code>getquoted</code></a>()</span></code>\r
-<br />\r
-return SQL-quoted representation of this object</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="_wrapped"></a><strong><code>_wrapped</code></strong></td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getbinary"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getbinary</span>()</span>\r
-  </h3>\r
-<p>return SQL-quoted binary representation of this object</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getbuffer"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getbuffer</span>()</span>\r
-  </h3>\r
-<p>return this object</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getquoted"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getquoted</span>()</span>\r
-  </h3>\r
-<p>return SQL-quoted representation of this object</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2._psycopg.connection-class.html b/psycopg2/doc/api/private/psycopg2._psycopg.connection-class.html
deleted file mode 100644 (file)
index 0b6076e..0000000
+++ /dev/null
@@ -1,405 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2._psycopg.connection</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="../private/psycopg2._psycopg-module.html">Module&nbsp;_psycopg</a> ::\r
-        Class&nbsp;connection\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/psycopg2._psycopg.connection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type connection</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">connection</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a>,\r
-    <a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>connection(dsn, ...) -&gt; new connection object</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
-<br />\r
-Close the connection.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#commit" class="summary-sig-name"><code>commit</code></a>()</span></code>\r
-<br />\r
-Commit all changes to database.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype"><a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>extensions.cursor</code></a></td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#cursor" class="summary-sig-name"><code>cursor</code></a>(<span class="summary-sig-arg">cursor_factory</span>)</span></code>\r
-<br />\r
-new cursor</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#rollback" class="summary-sig-name"><code>rollback</code></a>()</span></code>\r
-<br />\r
-Roll back all changes done to database.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_client_encoding" class="summary-sig-name"><code>set_client_encoding</code></a>(<span class="summary-sig-arg">encoding</span>)</span></code>\r
-<br />\r
-Set client encoding to <tt class="docutils literal docutils literal"><span class="pre">encoding</span></tt>.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_isolation_level" class="summary-sig-name"><code>set_isolation_level</code></a>(<span class="summary-sig-arg">level</span>)</span></code>\r
-<br />\r
-Switch isolation level to <tt class="docutils literal docutils literal"><span class="pre">level</span></tt>.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#closed"><code>closed</code></a></strong>: True if the connection is closed.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#dsn"><code>dsn</code></a></strong>: The current connection string.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#encoding"><code>encoding</code></a></strong>: The current client encoding.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#isolation_level"><code>isolation_level</code></a></strong>: The current isolation level.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="notices"></a><strong><code>notices</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="notifies"></a><strong><code>notifies</code></strong></td></tr><tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;DBAPI-2.0 errors</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Error"><code>Error</code></a></strong>: Base class for error exceptions.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Warning"><code>Warning</code></a></strong>: A database warning.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InterfaceError"><code>InterfaceError</code></a></strong>: Error related to the database interface.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DatabaseError"><code>DatabaseError</code></a></strong>: Error related to the database engine.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InternalError"><code>InternalError</code></a></strong>: The database encountered an internal error.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#OperationalError"><code>OperationalError</code></a></strong>: Error related to database operation (disconnect, memory allocation etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#ProgrammingError"><code>ProgrammingError</code></a></strong>: Error related to database programming (SQL error, table not found etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#IntegrityError"><code>IntegrityError</code></a></strong>: Error related to database integrity.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DataError"><code>DataError</code></a></strong>: Error related to problems with the processed data.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#NotSupportedError"><code>NotSupportedError</code></a></strong>: A not supported datbase API was called.</td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__repr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-repr(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__str__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Informal representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-str(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="close"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">close</span>()</span>\r
-  </h3>\r
-<p>Close the connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="commit"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">commit</span>()</span>\r
-  </h3>\r
-<p>Commit all changes to database.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="cursor"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">cursor</span>(<span class="sig-arg">cursor_factory</span>=<span class="sig-default">extensions.cursor</span>)</span>\r
-  </h3>\r
-<p>new cursor</p>\r
-<p>Return a new cursor.</p>\r
-<p>The <tt class="docutils literal"><span class="pre">cursor_factory</span></tt> argument can be used to\r
-create non-standard cursors by passing a class different from the\r
-default. Note that the new class <em>should</em> be a sub-class of\r
-<a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>extensions.cursor</code></a>.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>extensions.cursor</code></a>      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="rollback"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">rollback</span>()</span>\r
-  </h3>\r
-<p>Roll back all changes done to database.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="set_client_encoding"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">set_client_encoding</span>(<span class="sig-arg">encoding</span>)</span>\r
-  </h3>\r
-<p>Set client encoding to <tt class="docutils literal docutils literal docutils literal"><span class="pre">encoding</span></tt>.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="set_isolation_level"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">set_isolation_level</span>(<span class="sig-arg">level</span>)</span>\r
-  </h3>\r
-<p>Switch isolation level to <tt class="docutils literal docutils literal docutils literal"><span class="pre">level</span></tt>.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Property Details</th></tr>\r
-</table>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="Error"></a>\r
-<h3>Error</h3>\r
-<p>Base class for error exceptions.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="Warning"></a>\r
-<h3>Warning</h3>\r
-<p>A database warning.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="InterfaceError"></a>\r
-<h3>InterfaceError</h3>\r
-<p>Error related to the database interface.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="DatabaseError"></a>\r
-<h3>DatabaseError</h3>\r
-<p>Error related to the database engine.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="InternalError"></a>\r
-<h3>InternalError</h3>\r
-<p>The database encountered an internal error.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="OperationalError"></a>\r
-<h3>OperationalError</h3>\r
-<p>Error related to database operation (disconnect, memory allocation etc).</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="ProgrammingError"></a>\r
-<h3>ProgrammingError</h3>\r
-<p>Error related to database programming (SQL error, table not found etc).</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="IntegrityError"></a>\r
-<h3>IntegrityError</h3>\r
-<p>Error related to database integrity.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="DataError"></a>\r
-<h3>DataError</h3>\r
-<p>Error related to problems with the processed data.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="NotSupportedError"></a>\r
-<h3>NotSupportedError</h3>\r
-<p>A not supported datbase API was called.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="closed"></a>\r
-<h3>closed</h3>\r
-<p>True if the connection is closed.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="dsn"></a>\r
-<h3>dsn</h3>\r
-<p>The current connection string.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="encoding"></a>\r
-<h3>encoding</h3>\r
-<p>The current client encoding.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="isolation_level"></a>\r
-<h3>isolation_level</h3>\r
-<p>The current isolation level.</p>\r
-</td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:31 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2._psycopg.cursor-class.html b/psycopg2/doc/api/private/psycopg2._psycopg.cursor-class.html
deleted file mode 100644 (file)
index d3947aa..0000000
+++ /dev/null
@@ -1,599 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2._psycopg.cursor</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="../private/psycopg2._psycopg-module.html">Module&nbsp;_psycopg</a> ::\r
-        Class&nbsp;cursor\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/psycopg2._psycopg.cursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type cursor</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">cursor</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a>,\r
-    <a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>A database cursor.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__iter__"></a><span class="summary-sig"><span class="summary-sig-name">__iter__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return iter(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#callproc" class="summary-sig-name"><code>callproc</code></a>(<span class="summary-sig-arg">procname</span>,\r
-          <span class="summary-sig-arg">parameters</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-<br />\r
-Execute stored procedure.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
-<br />\r
-Close the cursor.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_from" class="summary-sig-name"><code>copy_from</code></a>(<span class="summary-sig-arg">file</span>,\r
-          <span class="summary-sig-arg">table</span>,\r
-          <span class="summary-sig-arg">sep</span>,\r
-          <span class="summary-sig-arg">null</span>)</span></code>\r
-<br />\r
-Copy table from file.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_to" class="summary-sig-name"><code>copy_to</code></a>(<span class="summary-sig-arg">file</span>,\r
-          <span class="summary-sig-arg">table</span>,\r
-          <span class="summary-sig-arg">sep</span>,\r
-          <span class="summary-sig-arg">null</span>)</span></code>\r
-<br />\r
-Copy table to file.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#execute" class="summary-sig-name"><code>execute</code></a>(<span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-<br />\r
-Execute query with bound vars.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#executemany" class="summary-sig-name"><code>executemany</code></a>(<span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars_list</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-<br />\r
-Execute many queries with bound vars.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">list of tuple</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall" class="summary-sig-name"><code>fetchall</code></a>()</span></code>\r
-<br />\r
-Return all the remaining rows of a query result set.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">list of tuple</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="summary-sig-name"><code>fetchmany</code></a>(<span class="summary-sig-arg">size</span>)</span></code>\r
-<br />\r
-Return the next <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>size</code></a> rows of a query result set in the form of a list\r
-of tuples (by default) or using the sequence factory previously set in\r
-the <a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">tuple or None</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone" class="summary-sig-name"><code>fetchone</code></a>()</span></code>\r
-<br />\r
-Return the next row of a query result set in the form of a tuple (by\r
-default) or using the sequence factory previously set in the\r
-<a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">int</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>()</span></code>\r
-<br />\r
-Return file descriptor associated to database connection.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">bool</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#isready" class="summary-sig-name"><code>isready</code></a>()</span></code>\r
-<br />\r
-Return True if data is ready after an async query.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">str</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#mogrify" class="summary-sig-name"><code>mogrify</code></a>(<span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars</span>)</span></code>\r
-<br />\r
-Return query after vars binding.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="next"></a><span class="summary-sig"><span class="summary-sig-name">next</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return the next value, or raise StopIteration...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#nextset" class="summary-sig-name"><code>nextset</code></a>()</span></code>\r
-<br />\r
-Skip to next set of data.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#scroll" class="summary-sig-name"><code>scroll</code></a>(<span class="summary-sig-arg">value</span>,\r
-          <span class="summary-sig-arg">mode</span>)</span></code>\r
-<br />\r
-Scroll to new position according to mode.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setinputsizes" class="summary-sig-name"><code>setinputsizes</code></a>(<span class="summary-sig-arg">sizes</span>)</span></code>\r
-<br />\r
-Set memory areas before execute.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setoutputsize" class="summary-sig-name"><code>setoutputsize</code></a>(<span class="summary-sig-arg">size</span>,\r
-          <span class="summary-sig-arg">column</span>)</span></code>\r
-<br />\r
-Set column buffer size.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#arraysize"><code>arraysize</code></a></strong>: Number of records <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>fetchmany()</code></a> must fetch if not explicitely specified.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="binary_types"></a><strong><code>binary_types</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#connection"><code>connection</code></a></strong>: The connection where the cursor comes from.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#description"><code>description</code></a></strong>: Cursor description as defined in DBAPI-2.0.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#lastrowid"><code>lastrowid</code></a></strong>: The <tt class="docutils literal docutils literal docutils literal"><span class="pre">oid</span></tt> of the last row inserted by the cursor.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="name"></a><strong><code>name</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#query"><code>query</code></a></strong>: The last query text sent to the backend.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="row_factory"></a><strong><code>row_factory</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rowcount"><code>rowcount</code></a></strong>: Number of rows read from the backend in the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rownumber"><code>rownumber</code></a></strong>: The current row position.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#statusmessage"><code>statusmessage</code></a></strong>: The return message of the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="string_types"></a><strong><code>string_types</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="typecaster"></a><strong><code>typecaster</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="tzinfo_factory"></a><strong><code>tzinfo_factory</code></strong></td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__iter__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__iter__</span>(<span class="sig-arg">x</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-iter(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__repr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-repr(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__str__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Informal representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-str(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="callproc"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">callproc</span>(<span class="sig-arg">procname</span>,\r
-          <span class="sig-arg">parameters</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
-  </h3>\r
-<p>Execute stored procedure.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="close"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">close</span>()</span>\r
-  </h3>\r
-<p>Close the cursor.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="copy_from"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">copy_from</span>(<span class="sig-arg">file</span>,\r
-          <span class="sig-arg">table</span>,\r
-          <span class="sig-arg">sep</span>=<span class="sig-default">'\t'</span>,\r
-          <span class="sig-arg">null</span>=<span class="sig-default">'\N'</span>)</span>\r
-  </h3>\r
-<p>Copy table from file.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="copy_to"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">copy_to</span>(<span class="sig-arg">file</span>,\r
-          <span class="sig-arg">table</span>,\r
-          <span class="sig-arg">sep</span>=<span class="sig-default">'\t'</span>,\r
-          <span class="sig-arg">null</span>=<span class="sig-default">'\N'</span>)</span>\r
-  </h3>\r
-<p>Copy table to file.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="execute"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">execute</span>(<span class="sig-arg">query</span>,\r
-          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
-  </h3>\r
-<p>Execute query with bound vars.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="executemany"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">executemany</span>(<span class="sig-arg">query</span>,\r
-          <span class="sig-arg">vars_list</span>=<span class="sig-default">()</span>,\r
-          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
-  </h3>\r
-<p>Execute many queries with bound vars.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchall</span>()</span>\r
-  </h3>\r
-<p>Return all the remaining rows of a query result set.</p>\r
-<p>Rows are returned in the form of a list of tuples (by default) or using\r
-the sequence factory previously set in the <a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.\r
-Return <code>None</code> when no more data is available.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-list of tuple      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchmany"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchmany</span>(<span class="sig-arg">size</span>=<span class="sig-default">self.arraysize</span>)</span>\r
-  </h3>\r
-<p>Return the next <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>size</code></a> rows of a query result set in the form of a list\r
-of tuples (by default) or using the sequence factory previously set in\r
-the <a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute. Return <code>None</code> when no more data is available.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-list of tuple      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchone"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchone</span>()</span>\r
-  </h3>\r
-<p>Return the next row of a query result set in the form of a tuple (by\r
-default) or using the sequence factory previously set in the\r
-<a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute. Return <code>None</code> when no more data is available.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-tuple or None      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fileno"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fileno</span>()</span>\r
-  </h3>\r
-<p>Return file descriptor associated to database connection.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-int      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="isready"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">isready</span>()</span>\r
-  </h3>\r
-<p>Return True if data is ready after an async query.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-bool      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="mogrify"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">mogrify</span>(<span class="sig-arg">query</span>,\r
-          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Return query after vars binding.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-str      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="next"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">next</span>(<span class="sig-arg">x</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-the next value, or raise StopIteration\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="nextset"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">nextset</span>()</span>\r
-  </h3>\r
-<p>Skip to next set of data.</p>\r
-<p>This method is not supported (PostgreSQL does not have multiple data \r
-sets) and will raise a NotSupportedError exception.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="scroll"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">scroll</span>(<span class="sig-arg">value</span>,\r
-          <span class="sig-arg">mode</span>=<span class="sig-default">'relative'</span>)</span>\r
-  </h3>\r
-<p>Scroll to new position according to mode.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="setinputsizes"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">setinputsizes</span>(<span class="sig-arg">sizes</span>)</span>\r
-  </h3>\r
-<p>Set memory areas before execute.</p>\r
-<p>This method currently does nothing but it is safe to call it.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="setoutputsize"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">setoutputsize</span>(<span class="sig-arg">size</span>,\r
-          <span class="sig-arg">column</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Set column buffer size.</p>\r
-<p>This method currently does nothing but it is safe to call it.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Property Details</th></tr>\r
-</table>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="arraysize"></a>\r
-<h3>arraysize</h3>\r
-<p>Number of records <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>fetchmany()</code></a> must fetch if not explicitely specified.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="connection"></a>\r
-<h3>connection</h3>\r
-<p>The connection where the cursor comes from.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="description"></a>\r
-<h3>description</h3>\r
-<p>Cursor description as defined in DBAPI-2.0.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="lastrowid"></a>\r
-<h3>lastrowid</h3>\r
-<p>The <tt class="docutils literal docutils literal docutils literal docutils literal"><span class="pre">oid</span></tt> of the last row inserted by the cursor.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="query"></a>\r
-<h3>query</h3>\r
-<p>The last query text sent to the backend.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="rowcount"></a>\r
-<h3>rowcount</h3>\r
-<p>Number of rows read from the backend in the last command.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="rownumber"></a>\r
-<h3>rownumber</h3>\r
-<p>The current row position.</p>\r
-</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-\r
-<a name="statusmessage"></a>\r
-<h3>statusmessage</h3>\r
-<p>The return message of the last command.</p>\r
-</td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.extensions-module.html b/psycopg2/doc/api/private/psycopg2.extensions-module.html
deleted file mode 100644 (file)
index a78fd66..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extensions</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;extensions\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extensions-module.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extensions-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.extensions</h2>\r
-\r
-<p>psycopg extensions to the DBAPI-2.0</p>\r
-<p>This module holds all the extensions to the DBAPI-2.0 provided by psycopg.</p>\r
-<ul class="rst-simple">\r
-<li><a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>connection</code></a> -- the new-type inheritable connection class</li>\r
-<li><a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>cursor</code></a> -- the new-type inheritable cursor class</li>\r
-<li><a href="psycopg2.extensions-module.html#adapt" class="link"><code>adapt()</code></a> -- exposes the <a class="reference" href="http://www.python.org/peps/pep-0246.html">PEP-246</a> compatible adapting mechanism used\r
-by psycopg to adapt Python types to PostgreSQL ones</li>\r
-</ul>\r
-<hr/>\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">object</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#adapt" class="summary-sig-name"><code>adapt</code></a>(<span class="summary-sig-arg">obj</span>,\r
-          <span class="summary-sig-arg">protocol</span>,\r
-          <span class="summary-sig-arg">alternate</span>)</span></code>\r
-<br />\r
-adapt obj to given protocol</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new AsIs wrapper object</td>\r
-  <td><code><a name="AsIs"></a><span class="summary-sig"><span class="summary-sig-name">AsIs</span>(<span class="summary-sig-arg">obj</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new boolean value</td>\r
-  <td><code><a name="Boolean"></a><span class="summary-sig"><span class="summary-sig-name">Boolean</span>(<span class="summary-sig-arg">obj</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
-  <td><code><a name="DateFromPy"></a><span class="summary-sig"><span class="summary-sig-name">DateFromPy</span>(<span class="summary-sig-arg">datetime.date</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
-  <td><code><a name="IntervalFromPy"></a><span class="summary-sig"><span class="summary-sig-name">IntervalFromPy</span>(<span class="summary-sig-arg">datetime.timedelta</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new type object</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#new_type" class="summary-sig-name"><code>new_type</code></a>(<span class="summary-sig-arg">oids</span>,\r
-          <span class="summary-sig-arg">name</span>,\r
-          <span class="summary-sig-arg">adapter</span>)</span></code>\r
-<br />\r
-Create a new binding object.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new quoted string</td>\r
-  <td><code><a name="QuotedString"></a><span class="summary-sig"><span class="summary-sig-name">QuotedString</span>(<span class="summary-sig-arg">str</span>,\r
-          <span class="summary-sig-arg">enc</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#register_adapter" class="summary-sig-name"><code>register_adapter</code></a>(<span class="summary-sig-arg">typ</span>,\r
-          <span class="summary-sig-arg">callable</span>)</span></code>\r
-<br />\r
-Register 'callable' as an ISQLQuote adapter for type 'typ'.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">None</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#register_type" class="summary-sig-name"><code>register_type</code></a>(<span class="summary-sig-arg">obj</span>)</span></code>\r
-<br />\r
-register obj with psycopg type system</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
-  <td><code><a name="TimeFromPy"></a><span class="summary-sig"><span class="summary-sig-name">TimeFromPy</span>(<span class="summary-sig-arg">datetime.time</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
-  <td><code><a name="TimestampFromPy"></a><span class="summary-sig"><span class="summary-sig-name">TimestampFromPy</span>(<span class="summary-sig-arg">datetime.datetime</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><code>ISOLATION_LEVEL_AUTOCOMMIT</code></a></strong> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED"><code>ISOLATION_LEVEL_READ_COMMITTED</code></a></strong> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED"><code>ISOLATION_LEVEL_READ_UNCOMMITTED</code></a></strong> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ"><code>ISOLATION_LEVEL_REPEATABLE_READ</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><code>ISOLATION_LEVEL_SERIALIZABLE</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="adapt"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">adapt</span>(<span class="sig-arg">obj</span>,\r
-          <span class="sig-arg">protocol</span>,\r
-          <span class="sig-arg">alternate</span>)</span>\r
-  </h3>\r
-<p>adapt obj to given protocol</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="AsIs"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">AsIs</span>(<span class="sig-arg">obj</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new AsIs wrapper object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Boolean"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Boolean</span>(<span class="sig-arg">obj</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new boolean value      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="DateFromPy"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">DateFromPy</span>(<span class="sig-arg">datetime.date</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new wrapper      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="IntervalFromPy"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">IntervalFromPy</span>(<span class="sig-arg">datetime.timedelta</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new wrapper      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="new_type"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">new_type</span>(<span class="sig-arg">oids</span>,\r
-          <span class="sig-arg">name</span>,\r
-          <span class="sig-arg">adapter</span>)</span>\r
-  </h3>\r
-<p>Create a new binding object. The object can be used with the\r
-<a href="psycopg2.extensions-module.html#register_type" class="link"><code>register_type()</code></a> function to bind PostgreSQL objects to python objects.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Parameters:</dt>\r
-      <dd><code><strong class="pname">oids</strong></code> -\r
- Tuple of <tt class="docutils literal"><span class="pre">oid</span></tt> of the PostgreSQL types to convert.\r
-      </dd>\r
-      <dd><code><strong class="pname">name</strong></code> -\r
- Name for the new type\r
-      </dd>\r
-      <dd><code><strong class="pname">adapter</strong></code> -\r
- Callable to perform type conversion.\r
-It must have the signature <tt class="docutils literal"><span class="pre">fun(value,</span> <span class="pre">cur)</span></tt> where <tt class="docutils literal"><span class="pre">value</span></tt> is\r
-the string representation returned by PostgreSQL (<code>None</code> if <tt class="docutils literal"><span class="pre">NULL</span></tt>)\r
-and <tt class="docutils literal"><span class="pre">cur</span></tt> is the cursor from which data are read.\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new type object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="QuotedString"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">QuotedString</span>(<span class="sig-arg">str</span>,\r
-          <span class="sig-arg">enc</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new quoted string      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="register_adapter"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">register_adapter</span>(<span class="sig-arg">typ</span>,\r
-          <span class="sig-arg">callable</span>)</span>\r
-  </h3>\r
-<p>Register 'callable' as an ISQLQuote adapter for type 'typ'.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="register_type"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">register_type</span>(<span class="sig-arg">obj</span>)</span>\r
-  </h3>\r
-<p>register obj with psycopg type system</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Parameters:</dt>\r
-      <dd><code><strong class="pname">obj</strong></code> -\r
- A type adapter created by <a href="psycopg2.extensions-module.html#new_type" class="link"><code>new_type()</code></a>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-None      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="TimeFromPy"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">TimeFromPy</span>(<span class="sig-arg">datetime.time</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new wrapper      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="TimestampFromPy"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">TimestampFromPy</span>(<span class="sig-arg">datetime.datetime</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new wrapper      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_AUTOCOMMIT"></a>\r
-<h3>ISOLATION_LEVEL_AUTOCOMMIT</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="0">Value:</dt>\r
-      <dd title="0"><table><tr><td>\r
-<pre class="variable">\r
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_READ_COMMITTED"></a>\r
-<h3>ISOLATION_LEVEL_READ_COMMITTED</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="1">Value:</dt>\r
-      <dd title="1"><table><tr><td>\r
-<pre class="variable">\r
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_READ_UNCOMMITTED"></a>\r
-<h3>ISOLATION_LEVEL_READ_UNCOMMITTED</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="1">Value:</dt>\r
-      <dd title="1"><table><tr><td>\r
-<pre class="variable">\r
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_REPEATABLE_READ"></a>\r
-<h3>ISOLATION_LEVEL_REPEATABLE_READ</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="2">Value:</dt>\r
-      <dd title="2"><table><tr><td>\r
-<pre class="variable">\r
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_SERIALIZABLE"></a>\r
-<h3>ISOLATION_LEVEL_SERIALIZABLE</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="2">Value:</dt>\r
-      <dd title="2"><table><tr><td>\r
-<pre class="variable">\r
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.extras-module.html b/psycopg2/doc/api/private/psycopg2.extras-module.html
deleted file mode 100644 (file)
index 463fc22..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;extras\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras-module.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.extras</h2>\r
-\r
-<p>Miscellaneous goodies for psycopg2</p>\r
-<p>This module is a generic place used to hold little helper functions\r
-and classes untill a better place in the distribution is found.</p>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></strong></td>\r
-  <td>A connection that uses DictCursor automatically.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></strong></td>\r
-  <td>A cursor that keeps a list of column name -&gt; index mappings.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></strong></td>\r
-  <td>A row object that allow by-colun-name access to data.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a></strong></td>\r
-  <td>Adapt any iterable to an SQL quotable object.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.extras.DictConnection-class.html b/psycopg2/doc/api/private/psycopg2.extras.DictConnection-class.html
deleted file mode 100644 (file)
index 73989b5..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras.DictConnection</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
-        Class&nbsp;DictConnection\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras.DictConnection-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictConnection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type DictConnection</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-<a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a> --+\r
-             |\r
-            <strong class="uidshort">DictConnection</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A connection that uses DictCursor automatically.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="cursor"></a><span class="summary-sig"><span class="summary-sig-name">cursor</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from connection</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
-<br />\r
-Close the connection.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#commit" class="summary-sig-name"><code>commit</code></a>()</span></code>\r
-<br />\r
-Commit all changes to database.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#rollback" class="summary-sig-name"><code>rollback</code></a>()</span></code>\r
-<br />\r
-Roll back all changes done to database.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_client_encoding" class="summary-sig-name"><code>set_client_encoding</code></a>(<span class="summary-sig-arg">encoding</span>)</span></code>\r
-<br />\r
-Set client encoding to <tt class="docutils literal"><span class="pre">encoding</span></tt>.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_isolation_level" class="summary-sig-name"><code>set_isolation_level</code></a>(<span class="summary-sig-arg">level</span>)</span></code>\r
-<br />\r
-Switch isolation level to <tt class="docutils literal"><span class="pre">level</span></tt>.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from connection</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#closed"><code>closed</code></a></strong>: True if the connection is closed.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DatabaseError"><code>DatabaseError</code></a></strong>: Error related to the database engine.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DataError"><code>DataError</code></a></strong>: Error related to problems with the processed data.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#dsn"><code>dsn</code></a></strong>: The current connection string.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#encoding"><code>encoding</code></a></strong>: The current client encoding.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Error"><code>Error</code></a></strong>: Base class for error exceptions.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#IntegrityError"><code>IntegrityError</code></a></strong>: Error related to database integrity.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InterfaceError"><code>InterfaceError</code></a></strong>: Error related to the database interface.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InternalError"><code>InternalError</code></a></strong>: The database encountered an internal error.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#isolation_level"><code>isolation_level</code></a></strong>: The current isolation level.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#notices"><code>notices</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#notifies"><code>notifies</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#NotSupportedError"><code>NotSupportedError</code></a></strong>: A not supported datbase API was called.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#OperationalError"><code>OperationalError</code></a></strong>: Error related to database operation (disconnect, memory allocation etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#ProgrammingError"><code>ProgrammingError</code></a></strong>: Error related to database programming (SQL error, table not found etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Warning"><code>Warning</code></a></strong>: A database warning.</td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="cursor"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">cursor</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>psycopg2._psycopg.connection.cursor</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:31 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.extras.DictCursor-class.html b/psycopg2/doc/api/private/psycopg2.extras.DictCursor-class.html
deleted file mode 100644 (file)
index 80a05c9..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras.DictCursor</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
-        Class&nbsp;DictCursor\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras.DictCursor-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictCursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type DictCursor</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a> --+\r
-             |\r
-            <strong class="uidshort">DictCursor</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A cursor that keeps a list of column name -&gt; index mappings.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="callproc"></a><span class="summary-sig"><span class="summary-sig-name">callproc</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">procname</span>,\r
-          <span class="summary-sig-arg">vars</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="execute"></a><span class="summary-sig"><span class="summary-sig-name">execute</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="fetchall"></a><span class="summary-sig"><span class="summary-sig-name">fetchall</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="fetchmany"></a><span class="summary-sig"><span class="summary-sig-name">fetchmany</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">size</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="fetchone"></a><span class="summary-sig"><span class="summary-sig-name">fetchone</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="_build_index"></a><span class="summary-sig"><span class="summary-sig-name">_build_index</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from cursor</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return iter(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
-<br />\r
-Close the cursor.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_from" class="summary-sig-name"><code>copy_from</code></a>(<span class="summary-sig-arg">file</span>,\r
-          <span class="summary-sig-arg">table</span>,\r
-          <span class="summary-sig-arg">sep</span>,\r
-          <span class="summary-sig-arg">null</span>)</span></code>\r
-<br />\r
-Copy table from file.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_to" class="summary-sig-name"><code>copy_to</code></a>(<span class="summary-sig-arg">file</span>,\r
-          <span class="summary-sig-arg">table</span>,\r
-          <span class="summary-sig-arg">sep</span>,\r
-          <span class="summary-sig-arg">null</span>)</span></code>\r
-<br />\r
-Copy table to file.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#executemany" class="summary-sig-name"><code>executemany</code></a>(<span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars_list</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-<br />\r
-Execute many queries with bound vars.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">int</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>()</span></code>\r
-<br />\r
-Return file descriptor associated to database connection.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">bool</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#isready" class="summary-sig-name"><code>isready</code></a>()</span></code>\r
-<br />\r
-Return True if data is ready after an async query.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">str</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#mogrify" class="summary-sig-name"><code>mogrify</code></a>(<span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars</span>)</span></code>\r
-<br />\r
-Return query after vars binding.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return the next value, or raise StopIteration...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#nextset" class="summary-sig-name"><code>nextset</code></a>()</span></code>\r
-<br />\r
-Skip to next set of data.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#scroll" class="summary-sig-name"><code>scroll</code></a>(<span class="summary-sig-arg">value</span>,\r
-          <span class="summary-sig-arg">mode</span>)</span></code>\r
-<br />\r
-Scroll to new position according to mode.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setinputsizes" class="summary-sig-name"><code>setinputsizes</code></a>(<span class="summary-sig-arg">sizes</span>)</span></code>\r
-<br />\r
-Set memory areas before execute.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setoutputsize" class="summary-sig-name"><code>setoutputsize</code></a>(<span class="summary-sig-arg">size</span>,\r
-          <span class="summary-sig-arg">column</span>)</span></code>\r
-<br />\r
-Set column buffer size.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from cursor</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#arraysize"><code>arraysize</code></a></strong>: Number of records <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>fetchmany()</code></a> must fetch if not explicitely specified.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#binary_types"><code>binary_types</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#connection"><code>connection</code></a></strong>: The connection where the cursor comes from.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#description"><code>description</code></a></strong>: Cursor description as defined in DBAPI-2.0.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#lastrowid"><code>lastrowid</code></a></strong>: The <tt class="docutils literal"><span class="pre">oid</span></tt> of the last row inserted by the cursor.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#name"><code>name</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#query"><code>query</code></a></strong>: The last query text sent to the backend.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#row_factory"><code>row_factory</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rowcount"><code>rowcount</code></a></strong>: Number of rows read from the backend in the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rownumber"><code>rownumber</code></a></strong>: The current row position.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#statusmessage"><code>statusmessage</code></a></strong>: The return message of the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#string_types"><code>string_types</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#typecaster"><code>typecaster</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#tzinfo_factory"><code>tzinfo_factory</code></a></strong></td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Class Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="../private/psycopg2.extras.DictCursor-class.html#__query_executed"><code>_DictCursor__query_executed</code></a></strong> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="callproc"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">callproc</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">procname</span>,\r
-          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#callproc"><code>psycopg2._psycopg.cursor.callproc</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="execute"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">execute</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">query</span>,\r
-          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#execute"><code>psycopg2._psycopg.cursor.execute</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall"><code>psycopg2._psycopg.cursor.fetchall</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchmany"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchmany</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany"><code>psycopg2._psycopg.cursor.fetchmany</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchone"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchone</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone"><code>psycopg2._psycopg.cursor.fetchone</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_build_index"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">_build_index</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Class Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="_DictCursor__query_executed"></a>\r
-<h3>_DictCursor__query_executed</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="0">Value:</dt>\r
-      <dd title="0"><table><tr><td>\r
-<pre class="variable">\r
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.extras.DictRow-class.html b/psycopg2/doc/api/private/psycopg2.extras.DictRow-class.html
deleted file mode 100644 (file)
index db74990..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras.DictRow</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
-        Class&nbsp;DictRow\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras.DictRow-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictRow-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type DictRow</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-      <a href="__builtin__.list-class.html"><code>list</code></a> --+\r
-             |\r
-            <strong class="uidshort">DictRow</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A row object that allow by-colun-name access to data.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">cursor</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">x</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="get"></a><span class="summary-sig"><span class="summary-sig-name">get</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">default</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="has_key"></a><span class="summary-sig"><span class="summary-sig-name">has_key</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">x</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="items"></a><span class="summary-sig"><span class="summary-sig-name">items</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="keys"></a><span class="summary-sig"><span class="summary-sig-name">keys</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="values"></a><span class="summary-sig"><span class="summary-sig-name">values</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from list</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__add__" class="summary-sig-name"><code>__add__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x+y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__contains__" class="summary-sig-name"><code>__contains__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return y in x...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delitem__" class="summary-sig-name"><code>__delitem__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return del x[y]...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delslice__" class="summary-sig-name"><code>__delslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>)</span></code>\r
-<br />\r
-Use of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__eq__" class="summary-sig-name"><code>__eq__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x==y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__ge__" class="summary-sig-name"><code>__ge__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&gt;=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getslice__" class="summary-sig-name"><code>__getslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>)</span></code>\r
-<br />\r
-Use of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__gt__" class="summary-sig-name"><code>__gt__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&gt;y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__iadd__" class="summary-sig-name"><code>__iadd__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x+=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__imul__" class="summary-sig-name"><code>__imul__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x*=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return iter(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__le__" class="summary-sig-name"><code>__le__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&lt;=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__len__" class="summary-sig-name"><code>__len__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return len(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__lt__" class="summary-sig-name"><code>__lt__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&lt;y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__mul__" class="summary-sig-name"><code>__mul__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">n</span>)</span></code>\r
-<br />\r
-Return x*n...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__ne__" class="summary-sig-name"><code>__ne__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x!=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__rmul__" class="summary-sig-name"><code>__rmul__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">n</span>)</span></code>\r
-<br />\r
-Return n*x...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setitem__" class="summary-sig-name"><code>__setitem__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x[i]=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setslice__" class="summary-sig-name"><code>__setslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Use  of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#append" class="summary-sig-name"><code>append</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">object</span>)</span></code>\r
-<br />\r
-append object to end</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#count" class="summary-sig-name"><code>count</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">value</span>)</span></code>\r
-<br />\r
-return number of occurrences of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#extend" class="summary-sig-name"><code>extend</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">iterable</span>)</span></code>\r
-<br />\r
-extend list by appending elements from the iterable</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#index" class="summary-sig-name"><code>index</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">index</span>,\r
-          <span class="summary-sig-arg">object</span>)</span></code>\r
-<br />\r
-insert object before index</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#pop" class="summary-sig-name"><code>pop</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">index</span>)</span></code>\r
-<br />\r
-remove and return item at index (default last)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">value</span>)</span></code>\r
-<br />\r
-remove first occurrence of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#reverse" class="summary-sig-name"><code>reverse</code></a>(<span class="summary-sig-arg">L</span>)</span></code>\r
-<br />\r
-reverse <em>IN PLACE</em></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#sort" class="summary-sig-name"><code>sort</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">cmpfunc</span>)</span></code>\r
-<br />\r
-stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">cursor</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.list-class.html#__init__"><code>__builtin__.list.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Indexing operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.list-class.html#__getitem__"><code>__builtin__.list.__getitem__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="get"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">get</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">x</span>,\r
-          <span class="sig-arg">default</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="has_key"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">has_key</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">x</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="items"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">items</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="keys"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">keys</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="values"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">values</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.extras.SQL_IN-class.html b/psycopg2/doc/api/private/psycopg2.extras.SQL_IN-class.html
deleted file mode 100644 (file)
index 6b7009b..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras.SQL_IN</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
-        Class&nbsp;SQL_IN\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras.SQL_IN-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.SQL_IN-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type SQL_IN</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">SQL_IN</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Adapt any iterable to an SQL quotable object.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">seq</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="getquoted"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="getquoted"></a><span class="summary-sig"><span class="summary-sig-name">getquoted</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">seq</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getquoted"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>\r
-    <br /><em class="fname">(Informal representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getquoted"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getquoted</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.pool-module.html b/psycopg2/doc/api/private/psycopg2.pool-module.html
deleted file mode 100644 (file)
index 64e53c1..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;pool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool-module.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.pool</h2>\r
-\r
-<p>Connection pooling for psycopg2</p>\r
-<p>This module implements thread-safe (and not) connection pools.</p>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a></strong></td>\r
-  <td>Generic key-based pooling code.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a></strong></td>\r
-  <td>A pool that assigns persistent connections to different threads.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a></strong></td>\r
-  <td>A connection pool that can't be shared across different threads.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></strong></td>\r
-  <td>A connection pool that works with the threading module.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF EXCEPTIONS =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Exceptions</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></strong></td>\r
-  <td>&nbsp;</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dbg"></a><span class="summary-sig"><span class="summary-sig-name">dbg</span>(<span class="summary-sig-vararg">*args</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="dbg"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dbg</span>(<span class="sig-vararg">*args</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.pool.AbstractConnectionPool-class.html b/psycopg2/doc/api/private/psycopg2.pool.AbstractConnectionPool-class.html
deleted file mode 100644 (file)
index be79964..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.AbstractConnectionPool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;AbstractConnectionPool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.AbstractConnectionPool-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.AbstractConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type AbstractConnectionPool</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">AbstractConnectionPool</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a>,\r
-    <a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a>,\r
-    <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Generic key-based pooling code.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">minconn</span>,\r
-          <span class="summary-sig-arg">maxconn</span>,\r
-          <span class="summary-sig-vararg">*args</span>,\r
-          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
-<br />\r
-Initialize the connection pool.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall" class="summary-sig-name"><code>_closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect" class="summary-sig-name"><code>_connect</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Create a new connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn" class="summary-sig-name"><code>_getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Get a free connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey" class="summary-sig-name"><code>_getkey</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Return a new unique key.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn" class="summary-sig-name"><code>_putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">key</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away a connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">minconn</span>,\r
-          <span class="sig-arg">maxconn</span>,\r
-          <span class="sig-vararg">*args</span>,\r
-          <span class="sig-kwarg">**kwargs</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>Initialize the connection pool.</p>\r
-<p>New 'minconn' connections are created immediately calling 'connfunc'\r
-with given parameters. The connection pool will support a maximum of\r
-about 'maxconn' connections.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_closeall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">_closeall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Close all connections.</p>\r
-<p>Note that this can lead to some code fail badly when trying to use\r
-an already closed connection. If you call .closeall() make sure\r
-your code can deal with it.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_connect"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">_connect</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Create a new connection and assign it to 'key' if not None.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_getconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">_getconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Get a free connection and assign it to 'key' if not None.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_getkey"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">_getkey</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Return a new unique key.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_putconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">_putconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">conn</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
-  </h3>\r
-<p>Put away a connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.pool.PersistentConnectionPool-class.html b/psycopg2/doc/api/private/psycopg2.pool.PersistentConnectionPool-class.html
deleted file mode 100644 (file)
index 4656713..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.PersistentConnectionPool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;PersistentConnectionPool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.PersistentConnectionPool-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.PersistentConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type PersistentConnectionPool</h2>\r
-\r
-<pre class="base-tree">\r
-            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-                     |    \r
-<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
-                         |\r
-                        <strong class="uidshort">PersistentConnectionPool</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A pool that assigns persistent connections to different threads.</p>\r
-<p>Note that this connection pool generates by itself the required keys\r
-using the current thread id.  This means that untill a thread put away\r
-a connection it will always get the same connection object by successive\r
-.getconn() calls. This also means that a thread can't use more than one\r
-single connection from the pool.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">minconn</span>,\r
-          <span class="summary-sig-arg">maxconn</span>,\r
-          <span class="summary-sig-vararg">*args</span>,\r
-          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
-<br />\r
-Initialize the threading lock.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections (even the one currently in use.)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Generate thread id and return a connection.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away an unused connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from AbstractConnectionPool</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall" class="summary-sig-name"><code>_closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect" class="summary-sig-name"><code>_connect</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Create a new connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn" class="summary-sig-name"><code>_getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Get a free connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey" class="summary-sig-name"><code>_getkey</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Return a new unique key.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn" class="summary-sig-name"><code>_putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">key</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away a connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">minconn</span>,\r
-          <span class="sig-arg">maxconn</span>,\r
-          <span class="sig-vararg">*args</span>,\r
-          <span class="sig-kwarg">**kwargs</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>Initialize the threading lock.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>psycopg2.pool.AbstractConnectionPool.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="closeall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Close all connections (even the one currently in use.)</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Generate thread id and return a connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="putconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">conn</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
-  </h3>\r
-<p>Put away an unused connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.pool.PoolError-class.html b/psycopg2/doc/api/private/psycopg2.pool.PoolError-class.html
deleted file mode 100644 (file)
index 83a85cf..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.PoolError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;PoolError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.PoolError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.PoolError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class PoolError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
-            |        \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
-                |    \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
-                    |\r
-                   <strong class="uidshort">PoolError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.pool.SimpleConnectionPool-class.html b/psycopg2/doc/api/private/psycopg2.pool.SimpleConnectionPool-class.html
deleted file mode 100644 (file)
index 06c9bb6..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.SimpleConnectionPool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;SimpleConnectionPool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.SimpleConnectionPool-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.SimpleConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type SimpleConnectionPool</h2>\r
-\r
-<pre class="base-tree">\r
-            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-                     |    \r
-<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
-                         |\r
-                        <strong class="uidshort">SimpleConnectionPool</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A connection pool that can't be shared across different threads.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.SimpleConnectionPool-class.html#_closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.SimpleConnectionPool-class.html#_getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Get a free connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.SimpleConnectionPool-class.html#_putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">key</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away a connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from AbstractConnectionPool</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">minconn</span>,\r
-          <span class="summary-sig-arg">maxconn</span>,\r
-          <span class="summary-sig-vararg">*args</span>,\r
-          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
-<br />\r
-Initialize the connection pool.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall" class="summary-sig-name"><code>_closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect" class="summary-sig-name"><code>_connect</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Create a new connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn" class="summary-sig-name"><code>_getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Get a free connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey" class="summary-sig-name"><code>_getkey</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Return a new unique key.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn" class="summary-sig-name"><code>_putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">key</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away a connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="_closeall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Close all connections.</p>\r
-<p>Note that this can lead to some code fail badly when trying to use\r
-an already closed connection. If you call .closeall() make sure\r
-your code can deal with it.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_getconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Get a free connection and assign it to 'key' if not None.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_putconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">conn</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
-  </h3>\r
-<p>Put away a connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.pool.ThreadedConnectionPool-class.html b/psycopg2/doc/api/private/psycopg2.pool.ThreadedConnectionPool-class.html
deleted file mode 100644 (file)
index 1ad34cb..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.ThreadedConnectionPool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;ThreadedConnectionPool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.ThreadedConnectionPool-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.ThreadedConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type ThreadedConnectionPool</h2>\r
-\r
-<pre class="base-tree">\r
-            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-                     |    \r
-<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
-                         |\r
-                        <strong class="uidshort">ThreadedConnectionPool</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A connection pool that works with the threading module.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">minconn</span>,\r
-          <span class="summary-sig-arg">maxconn</span>,\r
-          <span class="summary-sig-vararg">*args</span>,\r
-          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
-<br />\r
-Initialize the threading lock.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections (even the one currently in use.)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Get a free connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">key</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away an unused connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from AbstractConnectionPool</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall" class="summary-sig-name"><code>_closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect" class="summary-sig-name"><code>_connect</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Create a new connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn" class="summary-sig-name"><code>_getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Get a free connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey" class="summary-sig-name"><code>_getkey</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Return a new unique key.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn" class="summary-sig-name"><code>_putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">key</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away a connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">minconn</span>,\r
-          <span class="sig-arg">maxconn</span>,\r
-          <span class="sig-vararg">*args</span>,\r
-          <span class="sig-kwarg">**kwargs</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>Initialize the threading lock.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>psycopg2.pool.AbstractConnectionPool.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="closeall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Close all connections (even the one currently in use.)</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Get a free connection and assign it to 'key' if not None.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="putconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">conn</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
-  </h3>\r
-<p>Put away an unused connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.psycopg1-module.html b/psycopg2/doc/api/private/psycopg2.psycopg1-module.html
deleted file mode 100644 (file)
index f535cb9..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.psycopg1</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;psycopg1\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.psycopg1-module.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.psycopg1</h2>\r
-\r
-<p>psycopg 1.1.x compatibility module</p>\r
-<p>This module uses the new style connection and cursor types to build a psycopg\r
-1.1.1.x compatibility layer. It should be considered a temporary hack to run\r
-old code while porting to psycopg 2. Import it as follows:</p>\r
-<pre class="literal-block">\r
-from psycopg2 import psycopg1 as psycopg\r
-</pre>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a></strong></td>\r
-  <td>psycopg 1.1.x connection.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a></strong></td>\r
-  <td>psycopg 1.1.x cursor.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new psycopg 1.1.x compatible connection object</td>\r
-  <td><code><a name="connect"></a><span class="summary-sig"><span class="summary-sig-name">connect</span>(<span class="summary-sig-arg">dsn</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="connect"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">connect</span>(<span class="sig-arg">dsn</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new psycopg 1.1.x compatible connection object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.psycopg1.connection-class.html b/psycopg2/doc/api/private/psycopg2.psycopg1.connection-class.html
deleted file mode 100644 (file)
index 6d52ff8..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.psycopg1.connection</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.psycopg1-module.html">Module&nbsp;psycopg1</a> ::\r
-        Class&nbsp;connection\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.psycopg1.connection-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1.connection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type connection</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-<a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a> --+\r
-             |\r
-            <strong class="uidshort">connection</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>psycopg 1.1.x connection.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">switch autocommit on (1) or off (0)</td>\r
-  <td><code><a name="autocommit"></a><span class="summary-sig"><span class="summary-sig-name">autocommit</span>(<span class="summary-sig-arg">on_off</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new psycopg 1.1.x compatible cursor object</td>\r
-  <td><code><a name="cursor"></a><span class="summary-sig"><span class="summary-sig-name">cursor</span>()</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from connection</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
-<br />\r
-Close the connection.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#commit" class="summary-sig-name"><code>commit</code></a>()</span></code>\r
-<br />\r
-Commit all changes to database.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#rollback" class="summary-sig-name"><code>rollback</code></a>()</span></code>\r
-<br />\r
-Roll back all changes done to database.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_client_encoding" class="summary-sig-name"><code>set_client_encoding</code></a>(<span class="summary-sig-arg">encoding</span>)</span></code>\r
-<br />\r
-Set client encoding to <tt class="docutils literal docutils literal docutils literal docutils literal"><span class="pre">encoding</span></tt>.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_isolation_level" class="summary-sig-name"><code>set_isolation_level</code></a>(<span class="summary-sig-arg">level</span>)</span></code>\r
-<br />\r
-Switch isolation level to <tt class="docutils literal docutils literal docutils literal docutils literal"><span class="pre">level</span></tt>.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from connection</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#closed"><code>closed</code></a></strong>: True if the connection is closed.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DatabaseError"><code>DatabaseError</code></a></strong>: Error related to the database engine.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DataError"><code>DataError</code></a></strong>: Error related to problems with the processed data.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#dsn"><code>dsn</code></a></strong>: The current connection string.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#encoding"><code>encoding</code></a></strong>: The current client encoding.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Error"><code>Error</code></a></strong>: Base class for error exceptions.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#IntegrityError"><code>IntegrityError</code></a></strong>: Error related to database integrity.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InterfaceError"><code>InterfaceError</code></a></strong>: Error related to the database interface.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InternalError"><code>InternalError</code></a></strong>: The database encountered an internal error.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#isolation_level"><code>isolation_level</code></a></strong>: The current isolation level.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#notices"><code>notices</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#notifies"><code>notifies</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#NotSupportedError"><code>NotSupportedError</code></a></strong>: A not supported datbase API was called.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#OperationalError"><code>OperationalError</code></a></strong>: Error related to database operation (disconnect, memory allocation etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#ProgrammingError"><code>ProgrammingError</code></a></strong>: Error related to database programming (SQL error, table not found etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Warning"><code>Warning</code></a></strong>: A database warning.</td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="autocommit"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">autocommit</span>(<span class="sig-arg">on_off</span>=<span class="sig-default">1</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-switch autocommit on (1) or off (0)      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="cursor"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">cursor</span>()</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new psycopg 1.1.x compatible cursor object      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>psycopg2._psycopg.connection.cursor</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.psycopg1.cursor-class.html b/psycopg2/doc/api/private/psycopg2.psycopg1.cursor-class.html
deleted file mode 100644 (file)
index 17d22e0..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.psycopg1.cursor</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.psycopg1-module.html">Module&nbsp;psycopg1</a> ::\r
-        Class&nbsp;cursor\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.psycopg1.cursor-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1.cursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type cursor</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a> --+\r
-             |\r
-            <strong class="uidshort">cursor</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>psycopg 1.1.x cursor.</p>\r
-<p>Note that this cursor implements the exact procedure used by psycopg 1 to\r
-build dictionaries out of result rows. The DictCursor in the\r
-psycopg.extras modules implements a much better and faster algorithm.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dictfetchall"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchall</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dictfetchmany"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchmany</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">size</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dictfetchone"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchone</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__build_dict"></a><span class="summary-sig"><span class="summary-sig-name">__build_dict</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">row</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from cursor</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return iter(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#callproc" class="summary-sig-name"><code>callproc</code></a>(<span class="summary-sig-arg">procname</span>,\r
-          <span class="summary-sig-arg">parameters</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-<br />\r
-Execute stored procedure.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
-<br />\r
-Close the cursor.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_from" class="summary-sig-name"><code>copy_from</code></a>(<span class="summary-sig-arg">file</span>,\r
-          <span class="summary-sig-arg">table</span>,\r
-          <span class="summary-sig-arg">sep</span>,\r
-          <span class="summary-sig-arg">null</span>)</span></code>\r
-<br />\r
-Copy table from file.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_to" class="summary-sig-name"><code>copy_to</code></a>(<span class="summary-sig-arg">file</span>,\r
-          <span class="summary-sig-arg">table</span>,\r
-          <span class="summary-sig-arg">sep</span>,\r
-          <span class="summary-sig-arg">null</span>)</span></code>\r
-<br />\r
-Copy table to file.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#execute" class="summary-sig-name"><code>execute</code></a>(<span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-<br />\r
-Execute query with bound vars.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#executemany" class="summary-sig-name"><code>executemany</code></a>(<span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars_list</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-<br />\r
-Execute many queries with bound vars.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">list of tuple</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall" class="summary-sig-name"><code>fetchall</code></a>()</span></code>\r
-<br />\r
-Return all the remaining rows of a query result set.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">list of tuple</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="summary-sig-name"><code>fetchmany</code></a>(<span class="summary-sig-arg">size</span>)</span></code>\r
-<br />\r
-Return the next <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>size</code></a> rows of a query result set in the form of a list\r
-of tuples (by default) or using the sequence factory previously set in\r
-the <a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">tuple or None</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone" class="summary-sig-name"><code>fetchone</code></a>()</span></code>\r
-<br />\r
-Return the next row of a query result set in the form of a tuple (by\r
-default) or using the sequence factory previously set in the\r
-<a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">int</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>()</span></code>\r
-<br />\r
-Return file descriptor associated to database connection.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">bool</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#isready" class="summary-sig-name"><code>isready</code></a>()</span></code>\r
-<br />\r
-Return True if data is ready after an async query.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">str</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#mogrify" class="summary-sig-name"><code>mogrify</code></a>(<span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars</span>)</span></code>\r
-<br />\r
-Return query after vars binding.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return the next value, or raise StopIteration...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#nextset" class="summary-sig-name"><code>nextset</code></a>()</span></code>\r
-<br />\r
-Skip to next set of data.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#scroll" class="summary-sig-name"><code>scroll</code></a>(<span class="summary-sig-arg">value</span>,\r
-          <span class="summary-sig-arg">mode</span>)</span></code>\r
-<br />\r
-Scroll to new position according to mode.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setinputsizes" class="summary-sig-name"><code>setinputsizes</code></a>(<span class="summary-sig-arg">sizes</span>)</span></code>\r
-<br />\r
-Set memory areas before execute.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setoutputsize" class="summary-sig-name"><code>setoutputsize</code></a>(<span class="summary-sig-arg">size</span>,\r
-          <span class="summary-sig-arg">column</span>)</span></code>\r
-<br />\r
-Set column buffer size.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from cursor</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#arraysize"><code>arraysize</code></a></strong>: Number of records <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>fetchmany()</code></a> must fetch if not explicitely specified.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#binary_types"><code>binary_types</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#connection"><code>connection</code></a></strong>: The connection where the cursor comes from.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#description"><code>description</code></a></strong>: Cursor description as defined in DBAPI-2.0.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#lastrowid"><code>lastrowid</code></a></strong>: The <tt class="docutils literal docutils literal"><span class="pre">oid</span></tt> of the last row inserted by the cursor.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#name"><code>name</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#query"><code>query</code></a></strong>: The last query text sent to the backend.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#row_factory"><code>row_factory</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rowcount"><code>rowcount</code></a></strong>: Number of rows read from the backend in the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rownumber"><code>rownumber</code></a></strong>: The current row position.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#statusmessage"><code>statusmessage</code></a></strong>: The return message of the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#string_types"><code>string_types</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#typecaster"><code>typecaster</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#tzinfo_factory"><code>tzinfo_factory</code></a></strong></td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="dictfetchall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dictfetchall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="dictfetchmany"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dictfetchmany</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">size</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="dictfetchone"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dictfetchone</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__build_dict"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__build_dict</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">row</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:33 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.tz-module.html b/psycopg2/doc/api/private/psycopg2.tz-module.html
deleted file mode 100644 (file)
index 9b8244a..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.tz</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;tz\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.tz-module.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.tz</h2>\r
-\r
-<p>tzinfo implementations for psycopg2</p>\r
-<p>This module holds two different tzinfo implementations that can be used as\r
-the 'tzinfo' argument to datetime constructors, directly passed to psycopg\r
-functions or used to set the .tzinfo_factory attribute in cursors.</p>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a></strong></td>\r
-  <td>Fixed offset in minutes east from UTC.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></strong></td>\r
-  <td>Platform idea of local timezone.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
-<td><strong><a href="psycopg2.tz-module.html#DSTDIFF"><code>DSTDIFF</code></a></strong> = <span title="datetime.timedelta(0, 3600)"><code>datetime.timedelta(0,&nbsp;3600)                    </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>LocalTimezone</code></td>\r
-<td><strong><a href="psycopg2.tz-module.html#LOCAL"><code>LOCAL</code></a></strong> = <span title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;"><code>&lt;psycopg2.tz.LocalTimezone&nbsp;object&nbsp;at&nbsp;0x00847090&gt; </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
-<td><strong><a href="psycopg2.tz-module.html#STDOFFSET"><code>STDOFFSET</code></a></strong> = <span title="datetime.timedelta(0, 3600)"><code>datetime.timedelta(0,&nbsp;3600)                  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
-<td><strong><a href="psycopg2.tz-module.html#ZERO"><code>ZERO</code></a></strong> = <span title="datetime.timedelta(0)"><code>datetime.timedelta(0)                             </code>\r
-</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DSTDIFF"></a>\r
-<h3>DSTDIFF</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>timedelta</code>\r
-\r
-      </dd>\r
-      <dt title="datetime.timedelta(0, 3600)">Value:</dt>\r
-      <dd title="datetime.timedelta(0, 3600)"><table><tr><td>\r
-<pre class="variable">\r
-datetime.timedelta(0, 3600)                                            </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="LOCAL"></a>\r
-<h3>LOCAL</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>LocalTimezone</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;                       </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="STDOFFSET"></a>\r
-<h3>STDOFFSET</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>timedelta</code>\r
-\r
-      </dd>\r
-      <dt title="datetime.timedelta(0, 3600)">Value:</dt>\r
-      <dd title="datetime.timedelta(0, 3600)"><table><tr><td>\r
-<pre class="variable">\r
-datetime.timedelta(0, 3600)                                            </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ZERO"></a>\r
-<h3>ZERO</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>timedelta</code>\r
-\r
-      </dd>\r
-      <dt title="datetime.timedelta(0)">Value:</dt>\r
-      <dd title="datetime.timedelta(0)"><table><tr><td>\r
-<pre class="variable">\r
-datetime.timedelta(0)                                                  </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.tz.FixedOffsetTimezone-class.html b/psycopg2/doc/api/private/psycopg2.tz.FixedOffsetTimezone-class.html
deleted file mode 100644 (file)
index 4e6d658..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.tz.FixedOffsetTimezone</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.tz-module.html">Module&nbsp;tz</a> ::\r
-        Class&nbsp;FixedOffsetTimezone\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.tz.FixedOffsetTimezone-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz.FixedOffsetTimezone-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type FixedOffsetTimezone</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a> --+\r
-             |\r
-            <strong class="uidshort">FixedOffsetTimezone</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Fixed offset in minutes east from UTC.</p>\r
-<p>This is exactly the implementation found in Python 2.3.x documentation,\r
-with a small change to the __init__ method to allow for pickling and a\r
-default name in the form 'sHH:MM' ('s' is the sign.)</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">offset</span>,\r
-          <span class="summary-sig-arg">name</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dst"></a><span class="summary-sig"><span class="summary-sig-name">dst</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="tzname"></a><span class="summary-sig"><span class="summary-sig-name">tzname</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="utcoffset"></a><span class="summary-sig"><span class="summary-sig-name">utcoffset</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from tzinfo</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
--&gt; (cls, state)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime in UTC -&gt; datetime in local time.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Class Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>NoneType</code></td>\r
-<td><strong><a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html#_name"><code>_name</code></a></strong> = <span title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
-<td><strong><a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html#_offset"><code>_offset</code></a></strong> = <span title="datetime.timedelta(0)"><code>datetime.timedelta(0)                          </code>\r
-</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">offset</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">name</span>=<span class="sig-default">None</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="dst"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#dst"><code>datetime.tzinfo.dst</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="tzname"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#tzname"><code>datetime.tzinfo.tzname</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="utcoffset"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#utcoffset"><code>datetime.tzinfo.utcoffset</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Class Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="_name"></a>\r
-<h3>_name</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>NoneType</code>\r
-\r
-      </dd>\r
-      <dt title="None">Value:</dt>\r
-      <dd title="None"><table><tr><td>\r
-<pre class="variable">\r
-None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="_offset"></a>\r
-<h3>_offset</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>timedelta</code>\r
-\r
-      </dd>\r
-      <dt title="datetime.timedelta(0)">Value:</dt>\r
-      <dd title="datetime.timedelta(0)"><table><tr><td>\r
-<pre class="variable">\r
-datetime.timedelta(0)                                                  </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/psycopg2.tz.LocalTimezone-class.html b/psycopg2/doc/api/private/psycopg2.tz.LocalTimezone-class.html
deleted file mode 100644 (file)
index 0954549..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.tz.LocalTimezone</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.tz-module.html">Module&nbsp;tz</a> ::\r
-        Class&nbsp;LocalTimezone\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.tz.LocalTimezone-class.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz.LocalTimezone-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type LocalTimezone</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a> --+\r
-             |\r
-            <strong class="uidshort">LocalTimezone</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Platform idea of local timezone.</p>\r
-<p>This is the exact implementation from the Pyhton 2.3 documentation.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dst"></a><span class="summary-sig"><span class="summary-sig-name">dst</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="tzname"></a><span class="summary-sig"><span class="summary-sig-name">tzname</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="utcoffset"></a><span class="summary-sig"><span class="summary-sig-name">utcoffset</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="_isdst"></a><span class="summary-sig"><span class="summary-sig-name">_isdst</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from tzinfo</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
--&gt; (cls, state)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime in UTC -&gt; datetime in local time.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="dst"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#dst"><code>datetime.tzinfo.dst</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="tzname"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#tzname"><code>datetime.tzinfo.tzname</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="utcoffset"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#utcoffset"><code>datetime.tzinfo.utcoffset</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="_isdst"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">_isdst</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc-everything.html b/psycopg2/doc/api/private/toc-everything.html
deleted file mode 100644 (file)
index 2b60e36..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Everything</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading">Everything</h1>\r
-<hr />\r
-\r
-<!-- =========== START OF ALL CLASSES =========== -->\r
-<h2 class="tocheading">All&nbsp;Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.connection-class.html">psycopg2._psycopg.connection</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.cursor-class.html">psycopg2._psycopg.cursor</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.ISQLQuote-class.html">psycopg2._psycopg.ISQLQuote</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictConnection-class.html">psycopg2.extras.DictConnection</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictCursor-class.html">psycopg2.extras.DictCursor</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictRow-class.html">psycopg2.extras.DictRow</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.SQL_IN-class.html">psycopg2.extras.SQL_IN</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.AbstractConnectionPool-class.html">psycopg2.pool.AbstractConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.PersistentConnectionPool-class.html">psycopg2.pool.PersistentConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.SimpleConnectionPool-class.html">psycopg2.pool.SimpleConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.ThreadedConnectionPool-class.html">psycopg2.pool.ThreadedConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.connection-class.html">psycopg2.psycopg1.connection</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.cursor-class.html">psycopg2.psycopg1.cursor</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz.FixedOffsetTimezone-class.html">psycopg2.tz.FixedOffsetTimezone</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz.LocalTimezone-class.html">psycopg2.tz.LocalTimezone</a></p>\r
-\r
-<!-- =========== START OF ALL EXCEPTIONS =========== -->\r
-<h2 class="tocheading">All&nbsp;Exceptions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.DatabaseError-class.html">psycopg2.DatabaseError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.DataError-class.html">psycopg2.DataError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.Error-class.html">psycopg2.Error</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.IntegrityError-class.html">psycopg2.IntegrityError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.InterfaceError-class.html">psycopg2.InterfaceError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.InternalError-class.html">psycopg2.InternalError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.NotSupportedError-class.html">psycopg2.NotSupportedError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.OperationalError-class.html">psycopg2.OperationalError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.PoolError-class.html">psycopg2.pool.PoolError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.ProgrammingError-class.html">psycopg2.ProgrammingError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.Warning-class.html">psycopg2.Warning</a></p>\r
-\r
-<!-- =========== START OF ALL FUNCTIONS =========== -->\r
-<h2 class="tocheading">All&nbsp;Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#adapt">adapt</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#AsIs">AsIs</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Binary">Binary</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#Boolean">Boolean</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#connect">connect</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html#connect">connect</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Date">Date</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#DateFromPy">DateFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#DateFromTicks">DateFromTicks</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html#dbg">dbg</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#IntervalFromPy">IntervalFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#List">List</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#new_type">new_type</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#QuotedString">QuotedString</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_adapter">register_adapter</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_type">register_type</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Time">Time</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimeFromPy">TimeFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimeFromTicks">TimeFromTicks</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Timestamp">Timestamp</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimestampFromPy">TimestampFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimestampFromTicks">TimestampFromTicks</a></p>\r
-\r
-<!-- =========== START OF ALL VARIABLES =========== -->\r
-<h2 class="tocheading">All&nbsp;Variables</h2>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#__version__">__version__</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#_C_API">_C_API</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#adapters">adapters</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#apilevel">apilevel</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BINARY">BINARY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#binary_types">binary_types</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BINARYARRAY">BINARYARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BOOLEAN">BOOLEAN</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BOOLEANARRAY">BOOLEANARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATE">DATE</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATEARRAY">DATEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATETIME">DATETIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATETIMEARRAY">DATETIMEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DECIMAL">DECIMAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DECIMALARRAY">DECIMALARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#DSTDIFF">DSTDIFF</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#encodings">encodings</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#FLOAT">FLOAT</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#FLOATARRAY">FLOATARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTEGER">INTEGER</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTEGERARRAY">INTEGERARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTERVAL">INTERVAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTERVALARRAY">INTERVALARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT">ISOLATION_LEVEL_AUTOCOMMIT</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED">ISOLATION_LEVEL_READ_COMMITTED</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED">ISOLATION_LEVEL_READ_UNCOMMITTED</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ">ISOLATION_LEVEL_REPEATABLE_READ</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE">ISOLATION_LEVEL_SERIALIZABLE</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#LOCAL">LOCAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#LONGINTEGER">LONGINTEGER</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#LONGINTEGERARRAY">LONGINTEGERARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#NUMBER">NUMBER</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#paramstyle">paramstyle</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYDATE">PYDATE</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYDATETIME">PYDATETIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYINTERVAL">PYINTERVAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYTIME">PYTIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#ROWID">ROWID</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#ROWIDARRAY">ROWIDARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#STDOFFSET">STDOFFSET</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#STRING">STRING</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#string_types">string_types</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#STRINGARRAY">STRINGARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#threadsafety">threadsafety</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#TIME">TIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#TIMEARRAY">TIMEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#UNICODE">UNICODE</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#UNICODEARRAY">UNICODEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#ZERO">ZERO</a></p>\r
-\r
-<hr />\r
-<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-everything.html">hide&nbsp;private</a>]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc-psycopg2-module.html b/psycopg2/doc/api/private/toc-psycopg2-module.html
deleted file mode 100644 (file)
index e07c73c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2-module.html">psycopg2</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF MODULES =========== -->\r
-<h2 class="tocheading">Modules</h2>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html">_psycopg</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html">extensions</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras-module.html">extras</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html">pool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html">psycopg1</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html">tz</a></p>\r
-\r
-<!-- =========== START OF EXCEPTIONS =========== -->\r
-<h2 class="tocheading">Exceptions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.DatabaseError-class.html">DatabaseError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.DataError-class.html">DataError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.Error-class.html">Error</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.IntegrityError-class.html">IntegrityError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.InterfaceError-class.html">InterfaceError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.InternalError-class.html">InternalError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.NotSupportedError-class.html">NotSupportedError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.OperationalError-class.html">OperationalError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.ProgrammingError-class.html">ProgrammingError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.Warning-class.html">Warning</a></p>\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Binary">Binary</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#connect">connect</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Date">Date</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#DateFromTicks">DateFromTicks</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Time">Time</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimeFromTicks">TimeFromTicks</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Timestamp">Timestamp</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimestampFromTicks">TimestampFromTicks</a></p>\r
-\r
-<hr />\r
-<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2-module.html">hide&nbsp;private</a>]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc-psycopg2._psycopg-module.html b/psycopg2/doc/api/private/toc-psycopg2._psycopg-module.html
deleted file mode 100644 (file)
index 49975f5..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2._psycopg</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html">_psycopg</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.connection-class.html">connection</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.cursor-class.html">cursor</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.ISQLQuote-class.html">ISQLQuote</a></p>\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#List">List</a></p>\r
-\r
-<!-- =========== START OF VARIABLES =========== -->\r
-<h2 class="tocheading">Variables</h2>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#__version__">__version__</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#_C_API">_C_API</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#adapters">adapters</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#apilevel">apilevel</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BINARY">BINARY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#binary_types">binary_types</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BINARYARRAY">BINARYARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BOOLEAN">BOOLEAN</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BOOLEANARRAY">BOOLEANARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATE">DATE</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATEARRAY">DATEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATETIME">DATETIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATETIMEARRAY">DATETIMEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DECIMAL">DECIMAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DECIMALARRAY">DECIMALARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#encodings">encodings</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#FLOAT">FLOAT</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#FLOATARRAY">FLOATARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTEGER">INTEGER</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTEGERARRAY">INTEGERARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTERVAL">INTERVAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTERVALARRAY">INTERVALARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#LONGINTEGER">LONGINTEGER</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#LONGINTEGERARRAY">LONGINTEGERARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#NUMBER">NUMBER</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#paramstyle">paramstyle</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYDATE">PYDATE</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYDATETIME">PYDATETIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYINTERVAL">PYINTERVAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYTIME">PYTIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#ROWID">ROWID</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#ROWIDARRAY">ROWIDARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#STRING">STRING</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#string_types">string_types</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#STRINGARRAY">STRINGARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#threadsafety">threadsafety</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#TIME">TIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#TIMEARRAY">TIMEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#UNICODE">UNICODE</a></p>\r
-<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#UNICODEARRAY">UNICODEARRAY</a></p>\r
-\r
-<hr />\r
-<span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc-psycopg2.extensions-module.html b/psycopg2/doc/api/private/toc-psycopg2.extensions-module.html
deleted file mode 100644 (file)
index 2e7c983..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extensions</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.extensions-module.html">extensions</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#adapt">adapt</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#AsIs">AsIs</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#Boolean">Boolean</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#DateFromPy">DateFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#IntervalFromPy">IntervalFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#new_type">new_type</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#QuotedString">QuotedString</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_adapter">register_adapter</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_type">register_type</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimeFromPy">TimeFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimestampFromPy">TimestampFromPy</a></p>\r
-\r
-<!-- =========== START OF VARIABLES =========== -->\r
-<h2 class="tocheading">Variables</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT">ISOLATION_LEVEL_AUTOCOMMIT</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED">ISOLATION_LEVEL_READ_COMMITTED</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED">ISOLATION_LEVEL_READ_UNCOMMITTED</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ">ISOLATION_LEVEL_REPEATABLE_READ</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE">ISOLATION_LEVEL_SERIALIZABLE</a></p>\r
-\r
-<hr />\r
-<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.extensions-module.html">hide&nbsp;private</a>]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc-psycopg2.extras-module.html b/psycopg2/doc/api/private/toc-psycopg2.extras-module.html
deleted file mode 100644 (file)
index 505d1d8..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.extras-module.html">extras</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictConnection-class.html">DictConnection</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictCursor-class.html">DictCursor</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictRow-class.html">DictRow</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.SQL_IN-class.html">SQL_IN</a></p>\r
-\r
-<hr />\r
-<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.extras-module.html">hide&nbsp;private</a>]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc-psycopg2.pool-module.html b/psycopg2/doc/api/private/toc-psycopg2.pool-module.html
deleted file mode 100644 (file)
index 2b2a8cc..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.pool-module.html">pool</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.AbstractConnectionPool-class.html">AbstractConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.PersistentConnectionPool-class.html">PersistentConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.SimpleConnectionPool-class.html">SimpleConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.ThreadedConnectionPool-class.html">ThreadedConnectionPool</a></p>\r
-\r
-<!-- =========== START OF EXCEPTIONS =========== -->\r
-<h2 class="tocheading">Exceptions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.PoolError-class.html">PoolError</a></p>\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html#dbg">dbg</a></p>\r
-\r
-<hr />\r
-<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.pool-module.html">hide&nbsp;private</a>]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc-psycopg2.psycopg1-module.html b/psycopg2/doc/api/private/toc-psycopg2.psycopg1-module.html
deleted file mode 100644 (file)
index 20971b2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.psycopg1</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.psycopg1-module.html">psycopg1</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.connection-class.html">connection</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.cursor-class.html">cursor</a></p>\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html#connect">connect</a></p>\r
-\r
-<hr />\r
-<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.psycopg1-module.html">hide&nbsp;private</a>]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc-psycopg2.tz-module.html b/psycopg2/doc/api/private/toc-psycopg2.tz-module.html
deleted file mode 100644 (file)
index fce1191..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.tz</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.tz-module.html">tz</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz.FixedOffsetTimezone-class.html">FixedOffsetTimezone</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz.LocalTimezone-class.html">LocalTimezone</a></p>\r
-\r
-<!-- =========== START OF VARIABLES =========== -->\r
-<h2 class="tocheading">Variables</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#DSTDIFF">DSTDIFF</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#LOCAL">LOCAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#STDOFFSET">STDOFFSET</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#ZERO">ZERO</a></p>\r
-\r
-<hr />\r
-<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.tz-module.html">hide&nbsp;private</a>]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/toc.html b/psycopg2/doc/api/private/toc.html
deleted file mode 100644 (file)
index 1e31df5..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Table of Contents</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading">Table&nbsp;of&nbsp;Contents</h1>\r
-<hr />\r
-<p class="toc"><a target="moduleFrame" href="toc-everything.html">Everything</a></p>\r
-\r
-<!-- =========== START OF PACKAGES =========== -->\r
-<h2 class="tocheading">Packages</h2>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2-module.html" onclick="setFrame('toc-psycopg2-module.html', 'psycopg2-module.html');">psycopg2</a></p>\r
-\r
-<!-- =========== START OF MODULES =========== -->\r
-<h2 class="tocheading">Modules</h2>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2._psycopg-module.html" onclick="setFrame('toc-psycopg2._psycopg-module.html', 'psycopg2._psycopg-module.html');">psycopg2._psycopg</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.extensions-module.html" onclick="setFrame('toc-psycopg2.extensions-module.html', 'psycopg2.extensions-module.html');">psycopg2.extensions</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.extras-module.html" onclick="setFrame('toc-psycopg2.extras-module.html', 'psycopg2.extras-module.html');">psycopg2.extras</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.pool-module.html" onclick="setFrame('toc-psycopg2.pool-module.html', 'psycopg2.pool-module.html');">psycopg2.pool</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.psycopg1-module.html" onclick="setFrame('toc-psycopg2.psycopg1-module.html', 'psycopg2.psycopg1-module.html');">psycopg2.psycopg1</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.tz-module.html" onclick="setFrame('toc-psycopg2.tz-module.html', 'psycopg2.tz-module.html');">psycopg2.tz</a></p>\r
-\r
-<hr />\r
-<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc.html">hide&nbsp;private</a>]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/private/trees.html b/psycopg2/doc/api/private/trees.html
deleted file mode 100644 (file)
index 5907cfa..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Module and Class Hierarchies</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/trees.html">hide&nbsp;private</a>]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE HIERARCHY =========== -->\r
-<h2>Module Hierarchy</h2>\r
-<ul>\r
-<li> <strong class="uidlink"><a href="psycopg2-module.html"><code>psycopg2</code></a></strong>: <em class="summary">A Python driver for PostgreSQL</em>  <ul>\r
-    <li> <strong class="uidlink"><a href="../private/psycopg2._psycopg-module.html"><code>_psycopg</code></a></strong>: <em class="summary">psycopg PostgreSQL driver</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></strong>: <em class="summary">psycopg extensions to the DBAPI-2.0</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.extras-module.html"><code>extras</code></a></strong>: <em class="summary">Miscellaneous goodies for psycopg2</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.pool-module.html"><code>pool</code></a></strong>: <em class="summary">Connection pooling for psycopg2</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></strong>: <em class="summary">psycopg 1.1.x compatibility module</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.tz-module.html"><code>tz</code></a></strong>: <em class="summary">tzinfo implementations for psycopg2</em></li>\r
-  </ul>\r
-</li>\r
-</ul>\r
-\r
-<!-- =========== START OF CLASS HIERARCHY =========== -->\r
-<h2>Class Hierarchy</h2>\r
-<ul>\r
-  <li> <strong class="uidlink"><a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></strong>: <em class="summary">\r
-The most base type</em>\r
-   <ul>\r
-    <li> <strong class="uidlink"><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></strong>: <em class="summary">\r
-Generic key-based pooling code.</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></strong>: <em class="summary">\r
-A pool that assigns persistent connections to different threads.</em>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>psycopg2.pool.SimpleConnectionPool</code></a></strong>: <em class="summary">\r
-A connection pool that can't be shared across different threads.</em>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></strong>: <em class="summary">\r
-A connection pool that works with the threading module.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></strong>: <em class="summary">\r
-list() -&gt; new list\r
-list(sequence) -&gt; new list initialized from sequence's items</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></strong>: <em class="summary">\r
-A row object that allow by-colun-name access to data.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></strong>: <em class="summary">\r
-Adapt any iterable to an SQL quotable object.</em>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></strong>: <em class="summary">\r
-type(object) -&gt; the object's type\r
-type(name, bases, dict) -&gt; a new type</em>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></strong>: <em class="summary">\r
-Abstract base class for time zone info objects.</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></strong>: <em class="summary">\r
-Fixed offset in minutes east from UTC.</em>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></strong>: <em class="summary">\r
-Platform idea of local timezone.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></strong>: <em class="summary">\r
-connection(dsn, ...) -&gt; new connection object</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></strong>: <em class="summary">\r
-psycopg 1.1.x connection.</em>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.extras.DictConnection-class.html"><code>psycopg2.extras.DictConnection</code></a></strong>: <em class="summary">\r
-A connection that uses DictCursor automatically.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></strong>: <em class="summary">\r
-A database cursor.</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></strong>: <em class="summary">\r
-psycopg 1.1.x cursor.</em>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></strong>: <em class="summary">\r
-A cursor that keeps a list of column name -&gt; index mappings.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></strong>: <em class="summary">\r
-Abstract ISQLQuote protocol</em>\r
-    </li>\r
-   </ul>\r
-  </li>\r
-  <li> <strong class="uidlink"><a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></strong>: <em class="summary">\r
-Common base class for all exceptions.</em>\r
-   <ul>\r
-    <li> <strong class="uidlink"><a href="exceptions.StandardError-class.html"><code>exceptions.StandardError</code></a></strong>: <em class="summary">\r
-Base class for all standard Python exceptions.</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.Error-class.html"><code>psycopg2.Error</code></a></strong>: <em class="summary">\r
-Base class for error exceptions.</em>\r
-       <ul>\r
-        <li> <strong class="uidlink"><a href="psycopg2.DatabaseError-class.html"><code>psycopg2.DatabaseError</code></a></strong>: <em class="summary">\r
-Error related to the database engine.</em>\r
-         <ul>\r
-          <li> <strong class="uidlink"><a href="psycopg2.DataError-class.html"><code>psycopg2.DataError</code></a></strong>: <em class="summary">\r
-Error related to problems with the processed data.</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.IntegrityError-class.html"><code>psycopg2.IntegrityError</code></a></strong>: <em class="summary">\r
-Error related to database integrity.</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.InternalError-class.html"><code>psycopg2.InternalError</code></a></strong>: <em class="summary">\r
-The database encountered an internal error.</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.NotSupportedError-class.html"><code>psycopg2.NotSupportedError</code></a></strong>: <em class="summary">\r
-A not supported datbase API was called.</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.OperationalError-class.html"><code>psycopg2.OperationalError</code></a></strong>: <em class="summary">\r
-Error related to database operation (disconnect, memory allocation etc).</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.ProgrammingError-class.html"><code>psycopg2.ProgrammingError</code></a></strong>: <em class="summary">\r
-Error related to database programming (SQL error, table not found etc).</em>\r
-          </li>\r
-         </ul>\r
-        </li>\r
-        <li> <strong class="uidlink"><a href="psycopg2.InterfaceError-class.html"><code>psycopg2.InterfaceError</code></a></strong>: <em class="summary">\r
-Error related to the database interface.</em>\r
-        </li>\r
-        <li> <strong class="uidlink"><a href="psycopg2.pool.PoolError-class.html"><code>psycopg2.pool.PoolError</code></a></strong>\r
-        </li>\r
-       </ul>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.Warning-class.html"><code>psycopg2.Warning</code></a></strong>: <em class="summary">\r
-A database warning.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-   </ul>\r
-  </li>\r
-</ul>\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/__builtin__.list-class.html b/psycopg2/doc/api/public/__builtin__.list-class.html
deleted file mode 100644 (file)
index 4ede43e..0000000
+++ /dev/null
@@ -1,817 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>__builtin__.list</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;__builtin__ ::\r
-        Class&nbsp;list\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/__builtin__.list-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.list-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type list</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">list</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>list() -&gt; new list\r
-list(sequence) -&gt; new list initialized from sequence's items</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__add__"></a><span class="summary-sig"><span class="summary-sig-name">__add__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x+y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__contains__"></a><span class="summary-sig"><span class="summary-sig-name">__contains__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return y in x...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__delitem__"></a><span class="summary-sig"><span class="summary-sig-name">__delitem__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return del x[y]...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delslice__" class="summary-sig-name"><code>__delslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>)</span></code>\r
-<br />\r
-Use of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__eq__"></a><span class="summary-sig"><span class="summary-sig-name">__eq__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x==y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__ge__"></a><span class="summary-sig"><span class="summary-sig-name">__ge__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&gt;=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x[y]...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getslice__" class="summary-sig-name"><code>__getslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>)</span></code>\r
-<br />\r
-Use of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__gt__"></a><span class="summary-sig"><span class="summary-sig-name">__gt__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&gt;y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__iadd__"></a><span class="summary-sig"><span class="summary-sig-name">__iadd__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x+=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__imul__"></a><span class="summary-sig"><span class="summary-sig-name">__imul__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x*=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__iter__"></a><span class="summary-sig"><span class="summary-sig-name">__iter__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return iter(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__le__"></a><span class="summary-sig"><span class="summary-sig-name">__le__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&lt;=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__len__"></a><span class="summary-sig"><span class="summary-sig-name">__len__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return len(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__lt__"></a><span class="summary-sig"><span class="summary-sig-name">__lt__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&lt;y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__mul__"></a><span class="summary-sig"><span class="summary-sig-name">__mul__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">n</span>)</span></code>\r
-<br />\r
-Return x*n...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__ne__"></a><span class="summary-sig"><span class="summary-sig-name">__ne__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x!=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__rmul__"></a><span class="summary-sig"><span class="summary-sig-name">__rmul__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">n</span>)</span></code>\r
-<br />\r
-Return n*x...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__setitem__"></a><span class="summary-sig"><span class="summary-sig-name">__setitem__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x[i]=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setslice__" class="summary-sig-name"><code>__setslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Use  of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#append" class="summary-sig-name"><code>append</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">object</span>)</span></code>\r
-<br />\r
-append object to end</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#count" class="summary-sig-name"><code>count</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">value</span>)</span></code>\r
-<br />\r
-return number of occurrences of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#extend" class="summary-sig-name"><code>extend</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">iterable</span>)</span></code>\r
-<br />\r
-extend list by appending elements from the iterable</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#index" class="summary-sig-name"><code>index</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">index</span>,\r
-          <span class="summary-sig-arg">object</span>)</span></code>\r
-<br />\r
-insert object before index</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#pop" class="summary-sig-name"><code>pop</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">index</span>)</span></code>\r
-<br />\r
-remove and return item at index (default last)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">value</span>)</span></code>\r
-<br />\r
-remove first occurrence of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#reverse" class="summary-sig-name"><code>reverse</code></a>(<span class="summary-sig-arg">L</span>)</span></code>\r
-<br />\r
-reverse <em>IN PLACE</em></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#sort" class="summary-sig-name"><code>sort</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">cmpfunc</span>)</span></code>\r
-<br />\r
-stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__add__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__add__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Addition operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x+y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__contains__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__contains__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(In operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-y in x\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__delitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__delitem__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Index deletion operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-del x[y]\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__delslice__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__delslice__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">i</span>,\r
-          <span class="sig-arg">j</span>)</span>\r
-    <br /><em class="fname">(Slice deletion operator)</em>\r
-  </h3>\r
-<p>Use of negative indices is not supported.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-del x[i:j]\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__eq__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__eq__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Equality operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x==y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__ge__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__ge__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Greater-than-or-equals operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x&gt;=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getattribute__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Indexing operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x[y]\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getslice__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getslice__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">i</span>,\r
-          <span class="sig-arg">j</span>)</span>\r
-    <br /><em class="fname">(Slicling operator)</em>\r
-  </h3>\r
-<p>Use of negative indices is not supported.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x[i:j]\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__gt__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__gt__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Greater-than operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x&gt;y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__hash__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Hashing function)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-hash(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__iadd__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__iadd__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x+=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__imul__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__imul__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x*=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__iter__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__iter__</span>(<span class="sig-arg">x</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-iter(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__le__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__le__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Less-than-or-equals operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x&lt;=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__len__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__len__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Length operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-len(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__lt__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__lt__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Less-than operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x&lt;y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__mul__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__mul__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">n</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x*n\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__ne__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__ne__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Inequality operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x!=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__repr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-repr(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__rmul__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__rmul__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">n</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-n*x\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__setitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__setitem__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">i</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Index assignment operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x[i]=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__setslice__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__setslice__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">i</span>,\r
-          <span class="sig-arg">j</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Slice assignment operator)</em>\r
-  </h3>\r
-<p>Use  of negative indices is not supported.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x[i:j]=y\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="append"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">append</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">object</span>)</span>\r
-  </h3>\r
-<p>append object to end</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="count"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">count</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">value</span>)</span>\r
-  </h3>\r
-<p>return number of occurrences of value</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-integer\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="extend"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">extend</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">iterable</span>)</span>\r
-  </h3>\r
-<p>extend list by appending elements from the iterable</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="index"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">index</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="insert"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">insert</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">index</span>,\r
-          <span class="sig-arg">object</span>)</span>\r
-  </h3>\r
-<p>insert object before index</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="pop"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">pop</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">index</span>=<span class="sig-default">...</span>)</span>\r
-  </h3>\r
-<p>remove and return item at index (default last)</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-item\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="remove"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">remove</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">value</span>)</span>\r
-  </h3>\r
-<p>remove first occurrence of value</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="reverse"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">reverse</span>(<span class="sig-arg">L</span>)</span>\r
-  </h3>\r
-<p>reverse <em>IN PLACE</em></p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="sort"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">sort</span>(<span class="sig-arg">L</span>,\r
-          <span class="sig-arg">cmpfunc</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/__builtin__.object-class.html b/psycopg2/doc/api/public/__builtin__.object-class.html
deleted file mode 100644 (file)
index e9638da..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>__builtin__.object</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;__builtin__ ::\r
-        Class&nbsp;object\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/__builtin__.object-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.object-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type object</h2>\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a>,\r
-    <a href="__builtin__.list-class.html"><code>list</code></a>,\r
-    <a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a>,\r
-    <a href="__builtin__.type-class.html"><code>type</code></a>,\r
-    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>The most base type</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Class Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-  <td><a name="__class__"></a><strong><code class="vname">__class__</code></strong> = <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__delattr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__delattr__('name') &lt;==&gt; del x.name</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getattribute__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__hash__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Hashing function)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-hash(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__reduce__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>helper for pickle</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__reduce_ex__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__reduce_ex__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>helper for pickle</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__repr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-repr(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__setattr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__str__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Informal representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-str(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/__builtin__.type-class.html b/psycopg2/doc/api/public/__builtin__.type-class.html
deleted file mode 100644 (file)
index 7af340f..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>__builtin__.type</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;__builtin__ ::\r
-        Class&nbsp;type\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/__builtin__.type-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.type-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type type</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">type</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>type(object) -&gt; the object's type\r
-type(name, bases, dict) -&gt; a new type</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__call__"></a><span class="summary-sig"><span class="summary-sig-name">__call__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return x(...)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__cmp__"></a><span class="summary-sig"><span class="summary-sig-name">__cmp__</span>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return cmp(x,y)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">list of immediate subclasses</td>\r
-  <td><code><a name="__subclasses__"></a><span class="summary-sig"><span class="summary-sig-name">__subclasses__</span>()</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">list</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#mro" class="summary-sig-name"><code>mro</code></a>()</span></code>\r
-<br />\r
-return a type's method resolution order</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Property Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__base__"></a><strong><code>__base__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__basicsize__"></a><strong><code>__basicsize__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__dictoffset__"></a><strong><code>__dictoffset__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__flags__"></a><strong><code>__flags__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__itemsize__"></a><strong><code>__itemsize__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__mro__"></a><strong><code>__mro__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
-  <td><a name="__weakrefoffset__"></a><strong><code>__weakrefoffset__</code></strong></td></tr></table><br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Class Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>tuple</code></td>\r
-<td><strong><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></strong> = <span title="(&lt;type 'object'&gt;,)"><code>(&lt;type&nbsp;'object'&gt;,)                           </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
-<td><strong><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></strong> = <span title="'type'"><code><span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                        </code>\r
-</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__call__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__call__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Call operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-x(...)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__cmp__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class="sig-arg">x</span>,\r
-          <span class="sig-arg">y</span>)</span>\r
-    <br /><em class="fname">(Comparison operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-cmp(x,y)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__delattr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__delattr__('name') &lt;==&gt; del x.name</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__delattr__"><code>__builtin__.object.__delattr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getattribute__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__hash__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Hashing function)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-hash(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__repr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-repr(x)\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__setattr__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__setattr__"><code>__builtin__.object.__setattr__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__subclasses__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__subclasses__</span>()</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-list of immediate subclasses      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="mro"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">mro</span>()</span>\r
-  </h3>\r
-<p>return a type's method resolution order</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-list      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Class Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="__bases__"></a>\r
-<h3>__bases__</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>tuple</code>\r
-\r
-      </dd>\r
-      <dt title="(&lt;type 'object'&gt;,)">Value:</dt>\r
-      <dd title="(&lt;type 'object'&gt;,)"><table><tr><td>\r
-<pre class="variable">\r
-(&lt;type 'object'&gt;,)                                                     </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="__name__"></a>\r
-<h3>__name__</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>str</code>\r
-\r
-      </dd>\r
-      <dt title="'type'">Value:</dt>\r
-      <dd title="'type'"><table><tr><td>\r
-<pre class="variable">\r
-<span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                                                 </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/datetime.tzinfo-class.html b/psycopg2/doc/api/public/datetime.tzinfo-class.html
deleted file mode 100644 (file)
index 080afa2..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>datetime.tzinfo</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;datetime ::\r
-        Class&nbsp;tzinfo\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/datetime.tzinfo-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="datetime.tzinfo-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type tzinfo</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">tzinfo</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a>,\r
-    <a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Abstract base class for time zone info objects.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
--&gt; (cls, state)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#dst" class="summary-sig-name"><code>dst</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime -&gt; DST offset in minutes east of UTC.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime in UTC -&gt; datetime in local time.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#tzname" class="summary-sig-name"><code>tzname</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime -&gt; string name of time zone.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#utcoffset" class="summary-sig-name"><code>utcoffset</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime -&gt; minutes east of UTC (negative for west of UTC).</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__getattribute__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__new__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
-          <span class="sig-arg">S</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-<pre class="literalblock">\r
-a new object with type S, a subtype of T\r
-</pre>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__reduce__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>-&gt; (cls, state)</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__reduce__"><code>__builtin__.object.__reduce__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="dst"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>datetime -&gt; DST offset in minutes east of UTC.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fromutc"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fromutc</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>datetime in UTC -&gt; datetime in local time.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="tzname"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>datetime -&gt; string name of time zone.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="utcoffset"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>datetime -&gt; minutes east of UTC (negative for west of UTC).</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/epydoc.css b/psycopg2/doc/api/public/epydoc.css
deleted file mode 100644 (file)
index 22e8f7e..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Based on the Epydoc "default.css"\r
-** with some missing reST-related classes\r
-** and Python syntax support (from SilverCity)\r
-*/\r
-\r
-/* Body color */ \r
-body               { background: #ffffff; color: #000000; } \r
\r
-/* Tables */ \r
-table.summary, table.details, table.index\r
-                   { background: #e8f0f8; color: #000000; } \r
-tr.summary, tr.details, tr.index\r
-                   { background: #70b0f0; color: #000000;  \r
-                     text-align: left; font-size: 120%; } \r
-tr.group           { background: #c0e0f8; color: #000000;\r
-                     text-align: left; font-size: 120%;\r
-                     font-style: italic; } \r
-\r
-/* Documentation page titles */\r
-h2.module          { margin-top: 0.2em; }\r
-h2.class           { margin-top: 0.2em; }\r
\r
-/* Headings */\r
-h1.heading         { font-size: +140%; font-style: italic;\r
-                     font-weight: bold; }\r
-h2.heading         { font-size: +125%; font-style: italic;\r
-                     font-weight: bold; }\r
-h3.heading         { font-size: +110%; font-style: italic;\r
-                     font-weight: normal; }\r
-                    \r
-/* Base tree */\r
-pre.base-tree      { font-size: 80%; margin: 0; }\r
-\r
-/* TOC */\r
-p.toc { margin: 0; }\r
-\r
-/* Details Sections */\r
-table.func-details { background: #e8f0f8; color: #000000;\r
-                     border: 2px groove #c0d0d0;\r
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
-h3.func-detail     { background: transparent; color: #000000;\r
-                     margin: 0 0 1em 0; }\r
-\r
-table.var-details  { background: #e8f0f8; color: #000000;\r
-                     border: 2px groove #c0d0d0;\r
-                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
-h3.var-details     { background: transparent; color: #000000;\r
-                     margin: 0 0 1em 0; }\r
-\r
-/* Function signatures */\r
-.sig               { background: transparent; color: #000000;\r
-                     font-weight: bold; }  \r
-.sig-name          { background: transparent; color: #006080; }  \r
-.sig-arg, .sig-kwarg, .sig-vararg\r
-                   { background: transparent; color: #008060; }  \r
-.sig-default       { background: transparent; color: #602000; }  \r
-.summary-sig       { background: transparent; color: #000000; }  \r
-.summary-sig-name  { background: transparent; color: #204080; }\r
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg\r
-                   { background: transparent; color: #008060; }  \r
-\r
-/* Doctest blocks */\r
-.py-src            { background: transparent; color: #000000; }\r
-.py-prompt         { background: transparent; color: #005050;\r
-                     font-weight: bold;}\r
-.py-string         { background: transparent; color: #006030; }\r
-.py-comment        { background: transparent; color: #003060; }\r
-.py-keyword        { background: transparent; color: #600000; }\r
-.py-output         { background: transparent; color: #404040; }\r
-div.code-block,\r
-pre.literal-block,\r
-pre.doctestblock   { background: #f4faff; color: #000000; \r
-                     padding: .5em; margin: 1em;\r
-                     border: 1px solid #708890; }\r
-table pre.doctestblock\r
-                   { background: #dce4ec; color: #000000; \r
-                     padding: .5em; margin: 1em;\r
-                     border: 1px solid #708890; }\r
-div.code-block     { font-family: monospace; }\r
-\r
-/* Variable values */\r
-pre.variable       { background: #dce4ec; color: #000000;\r
-                     padding: .5em; margin: 0;\r
-                     border: 1px solid #708890; }\r
-.variable-linewrap { background: transparent; color: #604000; }\r
-.variable-ellipsis { background: transparent; color: #604000; }\r
-.variable-quote    { background: transparent; color: #604000; }\r
-.re                { background: transparent; color: #000000; }\r
-.re-char           { background: transparent; color: #006030; }\r
-.re-op             { background: transparent; color: #600000; }\r
-.re-group          { background: transparent; color: #003060; }\r
-.re-ref            { background: transparent; color: #404040; }\r
-\r
-/* Navigation bar */ \r
-table.navbar       { background: #a0c0ff; color: #0000ff;\r
-                     border: 2px groove #c0d0d0; }\r
-th.navbar          { background: #a0c0ff; color: #0000ff; } \r
-th.navselect       { background: #70b0ff; color: #000000; } \r
-.nomargin          { margin: 0; }\r
-\r
-/* Links */ \r
-a:link             { background: transparent; color: #0000ff; }  \r
-a:visited          { background: transparent; color: #204080; }  \r
-a.navbar:link      { background: transparent; color: #0000ff; \r
-                     text-decoration: none; }  \r
-a.navbar:visited   { background: transparent; color: #204080; \r
-                     text-decoration: none; }  \r
-\r
-/* Admonitions */\r
-div.warning,\r
-div.note                { background-color: #c0e0f8;\r
-                          border: thin solid black;\r
-                          padding: 1em;\r
-                          margin-left: 1em;\r
-                          margin-right: 1em; }\r
-div.warning .first,\r
-div.note .first      { font-family: sans-serif;\r
-                          font-size: 110%;\r
-                          margin-right: 0.5em; }\r
-\r
-/* Lists */\r
-ul { margin-top: 0; }\r
-\r
-/* Python syntax */\r
-.p_character { color: olive; }\r
-.p_classname { color: blue; font-weight: bold; }\r
-.p_commentblock {color: gray; font-style: italic; }\r
-.p_commentline { color: green; font-style: italic; }\r
-.p_default {}\r
-.p_defname { color: #009999; font-weight: bold; }\r
-.p_identifier { color: black; }\r
-.p_number { color: #009999; }\r
-.p_operator { color: black; }\r
-.p_string { color: #7F007F; }\r
-.p_stringeol { color: #7F007F; }\r
-.p_triple { color: #7F0000; }\r
-.p_tripledouble { color: #7F0000; }\r
-.p_word { color: navy; font-weight: bold; }\r
diff --git a/psycopg2/doc/api/public/exceptions.Exception-class.html b/psycopg2/doc/api/public/exceptions.Exception-class.html
deleted file mode 100644 (file)
index d7e7ba4..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>exceptions.Exception</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;exceptions ::\r
-        Class&nbsp;Exception\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/exceptions.Exception-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.Exception-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class Exception</h2>\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="exceptions.StandardError-class.html"><code>StandardError</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Common base class for all exceptions.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Indexing operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__str__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-vararg">...</span>)</span>\r
-    <br /><em class="fname">(Informal representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/exceptions.StandardError-class.html b/psycopg2/doc/api/public/exceptions.StandardError-class.html
deleted file mode 100644 (file)
index ab0a1c3..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>exceptions.StandardError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Module&nbsp;exceptions ::\r
-        Class&nbsp;StandardError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/exceptions.StandardError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.StandardError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class StandardError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+\r
-            |\r
-           <strong class="uidshort">StandardError</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.Error-class.html"><code>Error</code></a>,\r
-    <a href="psycopg2.Warning-class.html"><code>Warning</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Base class for all standard Python exceptions.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/frames.html b/psycopg2/doc/api/public/frames.html
deleted file mode 100644 (file)
index ffd6536..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
-          "DTD/xhtml1-frameset.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title> API Documentation </title>\r
-</head>\r
-<frameset cols="20%,80%">\r
-  <frameset rows="30%,70%">\r
-    <frame src="toc.html" name="moduleListFrame" id="moduleListFrame" />\r
-    <frame src="toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
-  </frameset>\r
-  <frame src="psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
-</frameset>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/help.html b/psycopg2/doc/api/public/help.html
deleted file mode 100644 (file)
index 0e9a1cf..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Help</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/help.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<h1 class="help"> API Documentation </h1>\r
-\r
-<p> This document contains the API (Application Programming Interface)\r
-documentation for this project.  Documentation for the Python\r
-objects defined by the project is divided into separate pages for each\r
-package, module, and class.  The API documentation also includes two\r
-pages containing information about the project as a whole: a trees\r
-page, and an index page.  </p>\r
-\r
-<h2> Object Documentation </h2>\r
-\r
-  <p>Each <strong>Package Documentation</strong> page contains: </p>\r
-  <ul>\r
-    <li> A description of the package. </li>\r
-    <li> A list of the modules and sub-packages contained by the\r
-    package.  </li>\r
-    <li> A summary of the classes defined by the package. </li>\r
-    <li> A summary of the functions defined by the package. </li>\r
-    <li> A summary of the variables defined by the package. </li>\r
-    <li> A detailed description of each function defined by the\r
-    package. </li>\r
-    <li> A detailed description of each variable defined by the\r
-    package. </li>\r
-  </ul>\r
-  \r
-  <p>Each <strong>Module Documentation</strong> page contains:</p>\r
-  <ul>\r
-    <li> A description of the module. </li>\r
-    <li> A summary of the classes defined by the module. </li>\r
-    <li> A summary of the functions defined by the module. </li>\r
-    <li> A summary of the variables defined by the module. </li>\r
-    <li> A detailed description of each function defined by the\r
-    module. </li>\r
-    <li> A detailed description of each variable defined by the\r
-    module. </li>\r
-  </ul>\r
-  \r
-  <p>Each <strong>Class Documentation</strong> page contains: </p>\r
-  <ul>\r
-    <li> A class inheritance diagram. </li>\r
-    <li> A list of known subclasses. </li>\r
-    <li> A description of the class. </li>\r
-    <li> A summary of the methods defined by the class. </li>\r
-    <li> A summary of the instance variables defined by the class. </li>\r
-    <li> A summary of the class (static) variables defined by the\r
-    class. </li> \r
-    <li> A detailed description of each method defined by the\r
-    class. </li>\r
-    <li> A detailed description of each instance variable defined by the\r
-    class. </li> \r
-    <li> A detailed description of each class (static) variable defined\r
-    by the class. </li> \r
-  </ul>\r
-\r
-<h2> Project Documentation </h2>\r
-\r
-  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>\r
-  <ul>\r
-    <li> The <em>module hierarchy</em> lists every package and module, with\r
-    modules grouped into packages.  At the top level, and within each\r
-    package, modules and sub-packages are listed alphabetically. </li>\r
-    <li> The <em>class hierarchy</em> lists every class, grouped by base\r
-    class.  If a class has more than one base class, then it will be\r
-    listed under each base class.  At the top level, and under each base\r
-    class, classes are listed alphabetically. </li>\r
-  </ul>\r
-  \r
-  <p> The <strong>Index</strong> page contains indices of terms and\r
-  identifiers: </p>\r
-  <ul>\r
-    <li> The <em>term index</em> lists every term indexed by any object's\r
-    documentation.  For each term, the index provides links to each\r
-    place where the term is indexed. </li>\r
-    <li> The <em>identifier index</em> lists the (short) name of every package,\r
-    module, class, method, function, variable, and parameter.  For each\r
-    identifier, the index provides a short description, and a link to\r
-    its documentation. </li>\r
-  </ul>\r
-\r
-<h2> The Table of Contents </h2>\r
-\r
-<p> The table of contents occupies the two frames on the left side of\r
-the window.  The upper-left frame displays the <em>project\r
-contents</em>, and the lower-left frame displays the <em>module\r
-contents</em>: </p>\r
-\r
-<table class="help summary" border="1" cellspacing="0" cellpadding="3">\r
-  <tr style="height: 30%">\r
-    <td align="center" style="font-size: small">\r
-       Project<br />Contents<hr />...</td>\r
-    <td align="center" style="font-size: small" rowspan="2" width="70%">\r
-      API<br />Documentation<br />Frame<br /><br /><br />\r
-    </td>\r
-  </tr>\r
-  <tr>\r
-    <td align="center" style="font-size: small">\r
-      Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;\r
-    </td>\r
-  </tr>\r
-</table><br />\r
-\r
-<p> The <strong>project contents frame</strong> contains a list of all packages\r
-and modules that are defined by the project.  Clicking on an entry\r
-will display its contents in the module contents frame.  Clicking on a\r
-special entry, labeled "Everything," will display the contents of\r
-the entire project. </p>\r
-\r
-<p> The <strong>module contents frame</strong> contains a list of every\r
-submodule, class, type, exception, function, and variable defined by a\r
-module or package.  Clicking on an entry will display its\r
-documentation in the API documentation frame.  Clicking on the name of\r
-the module, at the top of the frame, will display the documentation\r
-for the module itself. </p>\r
-\r
-<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top\r
-navigation bar can be used to control whether the table of contents is\r
-displayed or not. </p>\r
-\r
-<h2> The Navigation Bar </h2>\r
-\r
-<p> A navigation bar is located at the top and bottom of every page.\r
-It indicates what type of page you are currently viewing, and allows\r
-you to go to related pages.  The following table describes the labels\r
-on the navigation bar.  Note that not some labels (such as\r
-[Parent]) are not displayed on all pages. </p>\r
-\r
-<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">\r
-<tr class="summary">\r
-  <th>Label</th>\r
-  <th>Highlighted when...</th>\r
-  <th>Links to...</th>\r
-</tr>\r
-  <tr><td valign="top"><strong>[Parent]</strong></td>\r
-      <td valign="top"><em>(never highlighted)</em></td>\r
-      <td valign="top"> the parent of the current package </td></tr>\r
-  <tr><td valign="top"><strong>[Package]</strong></td>\r
-      <td valign="top">viewing a package</td>\r
-      <td valign="top">the package containing the current object\r
-      </td></tr>\r
-  <tr><td valign="top"><strong>[Module]</strong></td>\r
-      <td valign="top">viewing a module</td>\r
-      <td valign="top">the module containing the current object\r
-      </td></tr> \r
-  <tr><td valign="top"><strong>[Class]</strong></td>\r
-      <td valign="top">viewing a class </td>\r
-      <td valign="top">the class containing the current object</td></tr>\r
-  <tr><td valign="top"><strong>[Trees]</strong></td>\r
-      <td valign="top">viewing the trees page</td>\r
-      <td valign="top"> the trees page </td></tr>\r
-  <tr><td valign="top"><strong>[Index]</strong></td>\r
-      <td valign="top">viewing the index page</td>\r
-      <td valign="top"> the index page </td></tr>\r
-  <tr><td valign="top"><strong>[Help]</strong></td>\r
-      <td valign="top">viewing the help page</td>\r
-      <td valign="top"> the help page </td></tr>\r
-</table>\r
-\r
-<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below\r
-the top navigation bar can be used to control whether documentation\r
-for private objects is displayed.  Private objects are usually defined\r
-as objects whose (short) names begin with a single underscore, but do\r
-not end with an underscore.  For example, "<code>_x</code>",\r
-"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"\r
-are private objects; but "<code>re.sub</code>",\r
-"<code>__init__</code>", and "<code>type_</code>" are not.  However,\r
-if a module defines the "<code>__all__</code>" variable, then its\r
-contents are used to decide which objects are private. </p>\r
-\r
-<p> A timestamp below the bottom navigation bar indicates when each\r
-page was last updated. </p>\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/index.html b/psycopg2/doc/api/public/index.html
deleted file mode 100644 (file)
index ffd6536..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
-          "DTD/xhtml1-frameset.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title> API Documentation </title>\r
-</head>\r
-<frameset cols="20%,80%">\r
-  <frameset rows="30%,70%">\r
-    <frame src="toc.html" name="moduleListFrame" id="moduleListFrame" />\r
-    <frame src="toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
-  </frameset>\r
-  <frame src="psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
-</frameset>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/indices.html b/psycopg2/doc/api/public/indices.html
deleted file mode 100644 (file)
index a6d0fad..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Index</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/indices.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-<br />\r
-\r
-<!-- =========== START OF IDENTIFIER INDEX =========== -->\r
-<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="index">\r
-  <th colspan="2">Identifier Index</th></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__add__"><code>__add__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__base__"><code>__base__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></td>\r
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__call__"><code>__call__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>\r
-    <td>Class in module <code>__builtin__</code></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__cmp__"><code>__cmp__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__contains__"><code>__contains__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__delattr__"><code>__delattr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__delattr__"><code>__delattr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__delitem__"><code>__delitem__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__delslice__"><code>__delslice__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__eq__"><code>__eq__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__ge__"><code>__ge__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__getitem__"><code>__getitem__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.Exception-class.html#__getitem__"><code>__getitem__</code></a></td>\r
-    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#__getitem__"><code>__getitem__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__getslice__"><code>__getslice__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__gt__"><code>__gt__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__hash__"><code>__hash__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__hash__"><code>__hash__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__hash__"><code>__hash__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__iadd__"><code>__iadd__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__imul__"><code>__imul__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.Exception-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#__init__"><code>__init__</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__iter__"><code>__iter__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__le__"><code>__le__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__len__"><code>__len__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__lt__"><code>__lt__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__mul__"><code>__mul__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></td>\r
-    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__ne__"><code>__ne__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__new__"><code>__new__</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce__"><code>__reduce__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__reduce__"><code>__reduce__</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce_ex__"><code>__reduce_ex__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__repr__"><code>__repr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__repr__"><code>__repr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__repr__"><code>__repr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__rmul__"><code>__rmul__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__setattr__"><code>__setattr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__setattr__"><code>__setattr__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__setitem__"><code>__setitem__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#__setslice__"><code>__setslice__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html#__str__"><code>__str__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.Exception-class.html#__str__"><code>__str__</code></a></td>\r
-    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__subclasses__"><code>__subclasses__</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></td>\r
-    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#adapt"><code>adapt</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#append"><code>append</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#AsIs"><code>AsIs</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html#autocommit"><code>autocommit</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#Binary"><code>Binary</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#Boolean"><code>Boolean</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#callproc"><code>callproc</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#closeall"><code>closeall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#closeall"><code>closeall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#connect"><code>connect</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1-module.html#connect"><code>connect</code></a></td>\r
-    <td>Function in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a></td>\r
-    <td>Class in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#count"><code>count</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictConnection-class.html#cursor"><code>cursor</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictConnection-class.html"><code>psycopg2.extras.DictConnection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html#cursor"><code>cursor</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a></td>\r
-    <td>Class in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.DataError-class.html"><code>DataError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#Date"><code>Date</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#DateFromPy"><code>DateFromPy</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#DateFromTicks"><code>DateFromTicks</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool-module.html#dbg"><code>dbg</code></a></td>\r
-    <td>Function in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></td>\r
-    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></td>\r
-    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchall"><code>dictfetchall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchmany"><code>dictfetchmany</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchone"><code>dictfetchone</code></a></td>\r
-    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></td>\r
-    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#dst"><code>dst</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#dst"><code>dst</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#dst"><code>dst</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html#DSTDIFF"><code>DSTDIFF</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.Error-class.html"><code>Error</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.Exception-class.html"><code>Exception</code></a></td>\r
-    <td>Class in module <code>exceptions</code></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#execute"><code>execute</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#extend"><code>extend</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras-module.html"><code>extras</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchall"><code>fetchall</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchmany"><code>fetchmany</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchone"><code>fetchone</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a></td>\r
-    <td>Class in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#fromutc"><code>fromutc</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#get"><code>get</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#getconn"><code>getconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#getconn"><code>getconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html#getquoted"><code>getquoted</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#has_key"><code>has_key</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#index"><code>index</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#insert"><code>insert</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.InternalError-class.html"><code>InternalError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#IntervalFromPy"><code>IntervalFromPy</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><code>ISOLATION_LEVEL_AUTOCOMMIT</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED"><code>ISOLATION_LEVEL_READ_COMMITTED</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED"><code>ISOLATION_LEVEL_READ_UNCOMMITTED</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ"><code>ISOLATION_LEVEL_REPEATABLE_READ</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><code>ISOLATION_LEVEL_SERIALIZABLE</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#items"><code>items</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#keys"><code>keys</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html"><code>list</code></a></td>\r
-    <td>Class in module <code>__builtin__</code></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html#LOCAL"><code>LOCAL</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></td>\r
-    <td>Class in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html#mro"><code>mro</code></a></td>\r
-    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#new_type"><code>new_type</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>\r
-    <td>Class in module <code>__builtin__</code></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool-module.html"><code>pool</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#pop"><code>pop</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html"><code>psycopg2</code></a></td>\r
-    <td>Package</td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#putconn"><code>putconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#putconn"><code>putconn</code></a></td>\r
-    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#QuotedString"><code>QuotedString</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#register_adapter"><code>register_adapter</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#register_type"><code>register_type</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#remove"><code>remove</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#reverse"><code>reverse</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.list-class.html#sort"><code>sort</code></a></td>\r
-    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a></td>\r
-    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
-  <tr><td width="15%"><a href="exceptions.StandardError-class.html"><code>StandardError</code></a></td>\r
-    <td>Class in module <code>exceptions</code></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html#STDOFFSET"><code>STDOFFSET</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></td>\r
-    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#Time"><code>Time</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#TimeFromPy"><code>TimeFromPy</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#TimeFromTicks"><code>TimeFromTicks</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#Timestamp"><code>Timestamp</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extensions-module.html#TimestampFromPy"><code>TimestampFromPy</code></a></td>\r
-    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2-module.html#TimestampFromTicks"><code>TimestampFromTicks</code></a></td>\r
-    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>\r
-    <td>Class in module <code>__builtin__</code></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html"><code>tz</code></a></td>\r
-    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html"><code>tzinfo</code></a></td>\r
-    <td>Class in module <code>datetime</code></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#tzname"><code>tzname</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#tzname"><code>tzname</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#tzname"><code>tzname</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="datetime.tzinfo-class.html#utcoffset"><code>utcoffset</code></a></td>\r
-    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#utcoffset"><code>utcoffset</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#utcoffset"><code>utcoffset</code></a></td>\r
-    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#values"><code>values</code></a></td>\r
-    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.Warning-class.html"><code>Warning</code></a></td>\r
-    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
-  <tr><td width="15%"><a href="psycopg2.tz-module.html#ZERO"><code>ZERO</code></a></td>\r
-    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
-</table>\r
-<br />\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2-module.html b/psycopg2/doc/api/public/psycopg2-module.html
deleted file mode 100644 (file)
index 052c338..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        Package&nbsp;psycopg2\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF PACKAGE DESCRIPTION =========== -->\r
-<h2 class="package">Package psycopg2</h2>\r
-\r
-<p>A Python driver for PostgreSQL</p>\r
-<p>psycopg is a <a class="reference" href="http://www.postgresql.org/">PostgreSQL</a> database adapter for the <a class="reference" href="http://www.python.org/">Python</a> programming\r
-language. This is version 2, a complete rewrite of the original code to\r
-provide new-style classes for connection and cursor objects and other sweet\r
-candies. Like the original, psycopg 2 was written with the aim of being very\r
-small and fast, and stable as a rock.</p>\r
-<p>Homepage: <a class="reference" href="http://initd.org/projects/psycopg2">http://initd.org/projects/psycopg2</a></p>\r
-<hr/>\r
-\r
-<!-- =========== START OF SUBMODULES =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Submodules</th></tr>\r
-  <tr><td><ul>\r
-<li> <strong class="uidlink"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></strong>: <em class="summary">psycopg extensions to the DBAPI-2.0</em></li>\r
-<li> <strong class="uidlink"><a href="psycopg2.extras-module.html"><code>extras</code></a></strong>: <em class="summary">Miscellaneous goodies for psycopg2</em></li>\r
-<li> <strong class="uidlink"><a href="psycopg2.pool-module.html"><code>pool</code></a></strong>: <em class="summary">Connection pooling for psycopg2</em></li>\r
-<li> <strong class="uidlink"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></strong>: <em class="summary">psycopg 1.1.x compatibility module</em></li>\r
-<li> <strong class="uidlink"><a href="psycopg2.tz-module.html"><code>tz</code></a></strong>: <em class="summary">tzinfo implementations for psycopg2</em></li>\r
-  </ul></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF EXCEPTIONS =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Exceptions</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a></strong></td>\r
-  <td>Error related to the database engine.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.DataError-class.html"><code>DataError</code></a></strong></td>\r
-  <td>Error related to problems with the processed data.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.Error-class.html"><code>Error</code></a></strong></td>\r
-  <td>Base class for error exceptions.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a></strong></td>\r
-  <td>Error related to database integrity.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a></strong></td>\r
-  <td>Error related to the database interface.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.InternalError-class.html"><code>InternalError</code></a></strong></td>\r
-  <td>The database encountered an internal error.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a></strong></td>\r
-  <td>A not supported datbase API was called.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a></strong></td>\r
-  <td>Error related to database operation (disconnect, memory allocation etc).</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></strong></td>\r
-  <td>Error related to database programming (SQL error, table not found etc).</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.Warning-class.html"><code>Warning</code></a></strong></td>\r
-  <td>A database warning.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Connections creation</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype"><a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a></td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#connect" class="summary-sig-name"><code>connect</code></a>(<span class="summary-sig-arg">dsn</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Create a new database connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Value objects constructors</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new binary object</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Binary" class="summary-sig-name"><code>Binary</code></a>(<span class="summary-sig-arg">buffer</span>)</span></code>\r
-<br />\r
-Build an object capable to hold a bynary string value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new date</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Date" class="summary-sig-name"><code>Date</code></a>(<span class="summary-sig-arg">year</span>,\r
-          <span class="summary-sig-arg">month</span>,\r
-          <span class="summary-sig-arg">day</span>)</span></code>\r
-<br />\r
-Build an object holding a date value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new date</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#DateFromTicks" class="summary-sig-name"><code>DateFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
-<br />\r
-Build an object holding a date value from the given ticks value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new time</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Time" class="summary-sig-name"><code>Time</code></a>(<span class="summary-sig-arg">hour</span>,\r
-          <span class="summary-sig-arg">minutes</span>,\r
-          <span class="summary-sig-arg">seconds</span>,\r
-          <span class="summary-sig-arg">tzinfo</span>)</span></code>\r
-<br />\r
-Build an object holding a time value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new time</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#TimeFromTicks" class="summary-sig-name"><code>TimeFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
-<br />\r
-Build an object holding a time value from the given ticks value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new timestamp</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Timestamp" class="summary-sig-name"><code>Timestamp</code></a>(<span class="summary-sig-arg">year</span>,\r
-          <span class="summary-sig-arg">month</span>,\r
-          <span class="summary-sig-arg">day</span>,\r
-          <span class="summary-sig-arg">hour</span>,\r
-          <span class="summary-sig-arg">minutes</span>,\r
-          <span class="summary-sig-arg">seconds</span>,\r
-          <span class="summary-sig-arg">tzinfo</span>)</span></code>\r
-<br />\r
-Build an object holding a timestamp value.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new timestamp</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2-module.html#TimestampFromTicks" class="summary-sig-name"><code>TimestampFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
-<br />\r
-Build an object holding a timestamp value from the given ticks value.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="connect"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">connect</span>(<span class="sig-arg">dsn</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-<p>Create a new database connection.</p>\r
-<p>This function supports two different but equivalent sets of arguments.\r
-A single data source name or <tt class="docutils literal"><span class="pre">dsn</span></tt> string can be used to specify the\r
-connection parameters, as follows:</p>\r
-<pre class="literal-block">\r
-psycopg2.connect(&quot;dbname=xxx user=xxx ...&quot;)\r
-</pre>\r
-<p>If <tt class="docutils literal"><span class="pre">dsn</span></tt> is not provided it is possible to pass the parameters as\r
-keyword arguments; e.g.:</p>\r
-<pre class="literal-block">\r
-psycopg2.connect(database='xxx', user='xxx', ...)\r
-</pre>\r
-<p>The full list of available parameters is:</p>\r
-<ul class="rst-simple">\r
-<li><tt class="docutils literal"><span class="pre">dbname</span></tt> -- database name (only in 'dsn')</li>\r
-<li><tt class="docutils literal"><span class="pre">database</span></tt> -- database name (only as keyword argument)</li>\r
-<li><tt class="docutils literal"><span class="pre">host</span></tt> -- host address (defaults to UNIX socket if not provided)</li>\r
-<li><tt class="docutils literal"><span class="pre">port</span></tt> -- port number (defaults to 5432 if not provided)</li>\r
-<li><tt class="docutils literal"><span class="pre">user</span></tt> -- user name used to authenticate</li>\r
-<li><tt class="docutils literal"><span class="pre">password</span></tt> -- password used to authenticate</li>\r
-<li><tt class="docutils literal"><span class="pre">sslmode</span></tt> -- SSL mode (see PostgreSQL documentation)</li>\r
-</ul>\r
-<p>If the <tt class="docutils literal"><span class="pre">connection_factory</span></tt> keyword argument is not provided this\r
-function always return an instance of the <code>connection</code> class.\r
-Else the given sub-class of <a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a> will be used to\r
-instantiate the connection object.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-New database connection        <br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
-        (type=<a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a>)</em>\r
-      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Binary"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Binary</span>(<span class="sig-arg">buffer</span>)</span>\r
-  </h3>\r
-<p>Build an object capable to hold a bynary string value.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new binary object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Date"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Date</span>(<span class="sig-arg">year</span>,\r
-          <span class="sig-arg">month</span>,\r
-          <span class="sig-arg">day</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a date value.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new date      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="DateFromTicks"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">DateFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a date value from the given ticks value.</p>\r
-<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new date      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Time"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Time</span>(<span class="sig-arg">hour</span>,\r
-          <span class="sig-arg">minutes</span>,\r
-          <span class="sig-arg">seconds</span>,\r
-          <span class="sig-arg">tzinfo</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a time value.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new time      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="TimeFromTicks"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">TimeFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a time value from the given ticks value.</p>\r
-<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new time      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Timestamp"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Timestamp</span>(<span class="sig-arg">year</span>,\r
-          <span class="sig-arg">month</span>,\r
-          <span class="sig-arg">day</span>,\r
-          <span class="sig-arg">hour</span>,\r
-          <span class="sig-arg">minutes</span>,\r
-          <span class="sig-arg">seconds</span>,\r
-          <span class="sig-arg">tzinfo</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a timestamp value.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new timestamp      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="TimestampFromTicks"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">TimestampFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
-  </h3>\r
-<p>Build an object holding a timestamp value from the given ticks value.</p>\r
-<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new timestamp      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.DataError-class.html b/psycopg2/doc/api/public/psycopg2.DataError-class.html
deleted file mode 100644 (file)
index 48749b9..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.DataError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;DataError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.DataError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.DataError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class DataError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">DataError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to problems with the processed data.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.DatabaseError-class.html b/psycopg2/doc/api/public/psycopg2.DatabaseError-class.html
deleted file mode 100644 (file)
index 154af85..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.DatabaseError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;DatabaseError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.DatabaseError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.DatabaseError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class DatabaseError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
-            |        \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
-                |    \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
-                    |\r
-                   <strong class="uidshort">DatabaseError</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.DataError-class.html"><code>DataError</code></a>,\r
-    <a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a>,\r
-    <a href="psycopg2.InternalError-class.html"><code>InternalError</code></a>,\r
-    <a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a>,\r
-    <a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a>,\r
-    <a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Error related to the database engine.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.Error-class.html b/psycopg2/doc/api/public/psycopg2.Error-class.html
deleted file mode 100644 (file)
index ed0b9fa..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.Error</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;Error\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.Error-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.Error-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class Error</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    \r
-            |    \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+\r
-                |\r
-               <strong class="uidshort">Error</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a>,\r
-    <a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a>,\r
-    <a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Base class for error exceptions.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.IntegrityError-class.html b/psycopg2/doc/api/public/psycopg2.IntegrityError-class.html
deleted file mode 100644 (file)
index f2e2752..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.IntegrityError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;IntegrityError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.IntegrityError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.IntegrityError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class IntegrityError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">IntegrityError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to database integrity.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.InterfaceError-class.html b/psycopg2/doc/api/public/psycopg2.InterfaceError-class.html
deleted file mode 100644 (file)
index 40667fa..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.InterfaceError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;InterfaceError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.InterfaceError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.InterfaceError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class InterfaceError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
-            |        \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
-                |    \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
-                    |\r
-                   <strong class="uidshort">InterfaceError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to the database interface.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.InternalError-class.html b/psycopg2/doc/api/public/psycopg2.InternalError-class.html
deleted file mode 100644 (file)
index 13290d4..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.InternalError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;InternalError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.InternalError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.InternalError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class InternalError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">InternalError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>The database encountered an internal error.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.NotSupportedError-class.html b/psycopg2/doc/api/public/psycopg2.NotSupportedError-class.html
deleted file mode 100644 (file)
index 842c79f..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.NotSupportedError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;NotSupportedError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.NotSupportedError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.NotSupportedError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class NotSupportedError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">NotSupportedError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A not supported datbase API was called.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.OperationalError-class.html b/psycopg2/doc/api/public/psycopg2.OperationalError-class.html
deleted file mode 100644 (file)
index e52e8b1..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.OperationalError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;OperationalError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.OperationalError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.OperationalError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class OperationalError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">OperationalError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to database operation (disconnect, memory allocation etc).</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.ProgrammingError-class.html b/psycopg2/doc/api/public/psycopg2.ProgrammingError-class.html
deleted file mode 100644 (file)
index ea995a5..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.ProgrammingError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;ProgrammingError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.ProgrammingError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.ProgrammingError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class ProgrammingError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
-            |            \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
-                |        \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
-                    |    \r
-        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
-                        |\r
-                       <strong class="uidshort">ProgrammingError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Error related to database programming (SQL error, table not found etc).</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.Warning-class.html b/psycopg2/doc/api/public/psycopg2.Warning-class.html
deleted file mode 100644 (file)
index 86631fe..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.Warning</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Class&nbsp;Warning\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.Warning-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.Warning-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class Warning</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    \r
-            |    \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+\r
-                |\r
-               <strong class="uidshort">Warning</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A database warning.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2._psycopg-module.html b/psycopg2/doc/api/public/psycopg2._psycopg-module.html
deleted file mode 100644 (file)
index 034827e..0000000
+++ /dev/null
@@ -1,1001 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2._psycopg</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;_psycopg\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2._psycopg-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2._psycopg-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2._psycopg</h2>\r
-\r
-<p>psycopg PostgreSQL driver</p>\r
-<hr/>\r
-\r
-<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#__version__"><code>__version__</code></a></strong> = <span title="'2.0b7 (dt ext pq3)'"><code><span class="variable-quote">'</span>2.0b7&nbsp;(dt&nbsp;ext&nbsp;pq3)<span class="variable-quote">'</span>                       </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#adapters"><code>adapters</code></a></strong> = <span title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ..."><code>{(&lt;type&nbsp;'bool'&gt;,&nbsp;&lt;type&nbsp;'psycopg2._psycopg.ISQ<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#apilevel"><code>apilevel</code></a></strong> = <span title="'2.0'"><code><span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>                                         </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#BINARY"><code>BINARY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009558C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009558C0&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#binary_types"><code>binary_types</code></a></strong> = <span title="{}"><code>{}                                        </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#BINARYARRAY"><code>BINARYARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955B60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955B<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#BOOLEAN"><code>BOOLEAN</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955760&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955760&gt;  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#BOOLEANARRAY"><code>BOOLEANARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955A20&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#DATE"><code>DATE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009558A0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009558A0&gt;     </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#DATEARRAY"><code>DATEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955AA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955AA0<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#DATETIME"><code>DATETIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009557C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009557C0&gt; </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#DATETIMEARRAY"><code>DATETIMEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955AC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0095<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#DECIMAL"><code>DECIMAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955680&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955680&gt;  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#DECIMALARRAY"><code>DECIMALARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955260&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#encodings"><code>encodings</code></a></strong> = <span title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}"><code>{'UTF8':&nbsp;'utf_8',&nbsp;'LATIN-1':&nbsp;'latin_1',&nbsp;'SQL<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#FLOAT"><code>FLOAT</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955660&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955660&gt;    </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#FLOATARRAY"><code>FLOATARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009559E0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009559E<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#INTEGER"><code>INTEGER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955620&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955620&gt;  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#INTEGERARRAY"><code>INTEGERARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955A00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#INTERVAL"><code>INTERVAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955860&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955860&gt; </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#INTERVALARRAY"><code>INTERVALARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955BA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0095<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#LONGINTEGER"><code>LONGINTEGER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009555C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009555<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#LONGINTEGERARRAY"><code>LONGINTEGERARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955960&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#NUMBER"><code>NUMBER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955540&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955540&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#paramstyle"><code>paramstyle</code></a></strong> = <span title="'pyformat'"><code><span class="variable-quote">'</span>pyformat<span class="variable-quote">'</span>                                  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#PYDATE"><code>PYDATE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955D00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955D00&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#PYDATETIME"><code>PYDATETIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955C00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955C0<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#PYINTERVAL"><code>PYINTERVAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955CE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955CE<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#PYTIME"><code>PYTIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955C40&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955C40&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#ROWID"><code>ROWID</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009559A0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009559A0&gt;    </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#ROWIDARRAY"><code>ROWIDARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955BE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955BE<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#STRING"><code>STRING</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955720&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955720&gt;   </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#string_types"><code>string_types</code></a></strong> = <span title="{1028: &lt;psycopg2._psycopg.type object at 0x00955BE0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00955A00&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00955760&gt;, 17: &lt;psycopg2._psycopg.type object at 0x009558C0&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 20: &lt;psycopg2._psycopg.type object at 0x009555C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 26: &lt;psycopg2._psycopg.type object at 0x009559A0&gt;, 1182: &lt;psycopg2._psycopg.ty..."><code>{1028:&nbsp;&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#STRINGARRAY"><code>STRINGARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955A80&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955A<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#threadsafety"><code>threadsafety</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#TIME"><code>TIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955840&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955840&gt;     </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#TIMEARRAY"><code>TIMEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955B00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955B00<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#UNICODE"><code>UNICODE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009556C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009556C0&gt;  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
-<td><strong><a href="psycopg2._psycopg-module.html#UNICODEARRAY"><code>UNICODEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955A40&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955<span class="variable-ellipsis">...</span></code>\r
-</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="__version__"></a>\r
-<h3>__version__</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>str</code>\r
-\r
-      </dd>\r
-      <dt title="'2.0b7 (dt ext pq3)'">Value:</dt>\r
-      <dd title="'2.0b7 (dt ext pq3)'"><table><tr><td>\r
-<pre class="variable">\r
-<span class="variable-quote">'</span>2.0b7 (dt ext pq3)<span class="variable-quote">'</span>                                                   </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="adapters"></a>\r
-<h3>adapters</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>dict</code>\r
-\r
-      </dd>\r
-      <dt title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ...">Value:</dt>\r
-      <dd title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ..."><table><tr><td>\r
-<pre class="variable">\r
-{(&lt;type 'datetime.timedelta'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): <span class="variable-linewrap">\</span>\r
-&lt;built-in function IntervalFromPy&gt;,\r
- (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;buil<span class="variable-linewrap">\</span>\r
-t-in function DateFromPy&gt;,\r
- (&lt;type 'datetime.time'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;buil<span class="variable-linewrap">\</span>\r
-t-in function TimeFromPy&gt;,\r
- (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;<span class="variable-linewrap">\</span>\r
-built-in function TimestampFromPy&gt;,\r
-<span class="variable-ellipsis">...</span>                                                                    </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="apilevel"></a>\r
-<h3>apilevel</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>str</code>\r
-\r
-      </dd>\r
-      <dt title="'2.0'">Value:</dt>\r
-      <dd title="'2.0'"><table><tr><td>\r
-<pre class="variable">\r
-<span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>                                                                  </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="BINARY"></a>\r
-<h3>BINARY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x009558C0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x009558C0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x009558C0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="binary_types"></a>\r
-<h3>binary_types</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>dict</code>\r
-\r
-      </dd>\r
-      <dt title="{}">Value:</dt>\r
-      <dd title="{}"><table><tr><td>\r
-<pre class="variable">\r
-{}                                                                     </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="BINARYARRAY"></a>\r
-<h3>BINARYARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955B60&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955B60&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955B60&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="BOOLEAN"></a>\r
-<h3>BOOLEAN</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955760&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955760&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955760&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="BOOLEANARRAY"></a>\r
-<h3>BOOLEANARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955A20&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955A20&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955A20&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DATE"></a>\r
-<h3>DATE</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x009558A0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x009558A0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x009558A0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DATEARRAY"></a>\r
-<h3>DATEARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955AA0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955AA0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955AA0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DATETIME"></a>\r
-<h3>DATETIME</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x009557C0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x009557C0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x009557C0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DATETIMEARRAY"></a>\r
-<h3>DATETIMEARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955AC0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955AC0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955AC0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DECIMAL"></a>\r
-<h3>DECIMAL</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955680&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955680&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955680&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DECIMALARRAY"></a>\r
-<h3>DECIMALARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955260&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955260&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955260&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="encodings"></a>\r
-<h3>encodings</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>dict</code>\r
-\r
-      </dd>\r
-      <dt title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}">Value:</dt>\r
-      <dd title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}"><table><tr><td>\r
-<pre class="variable">\r
-{'LATIN-1': 'latin_1',\r
- 'LATIN1': 'latin_1',\r
- 'SQL_ASCII': 'ascii',\r
- 'UNICODE': 'utf_8',\r
- 'UTF8': 'utf_8'}                                                      </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="FLOAT"></a>\r
-<h3>FLOAT</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955660&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955660&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955660&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="FLOATARRAY"></a>\r
-<h3>FLOATARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x009559E0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x009559E0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x009559E0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="INTEGER"></a>\r
-<h3>INTEGER</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955620&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955620&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955620&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="INTEGERARRAY"></a>\r
-<h3>INTEGERARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955A00&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955A00&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955A00&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="INTERVAL"></a>\r
-<h3>INTERVAL</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955860&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955860&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955860&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="INTERVALARRAY"></a>\r
-<h3>INTERVALARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955BA0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955BA0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955BA0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="LONGINTEGER"></a>\r
-<h3>LONGINTEGER</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x009555C0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x009555C0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x009555C0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="LONGINTEGERARRAY"></a>\r
-<h3>LONGINTEGERARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955960&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955960&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955960&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="NUMBER"></a>\r
-<h3>NUMBER</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955540&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955540&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955540&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="paramstyle"></a>\r
-<h3>paramstyle</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>str</code>\r
-\r
-      </dd>\r
-      <dt title="'pyformat'">Value:</dt>\r
-      <dd title="'pyformat'"><table><tr><td>\r
-<pre class="variable">\r
-<span class="variable-quote">'</span>pyformat<span class="variable-quote">'</span>                                                             </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="PYDATE"></a>\r
-<h3>PYDATE</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955D00&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955D00&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955D00&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="PYDATETIME"></a>\r
-<h3>PYDATETIME</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955C00&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955C00&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955C00&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="PYINTERVAL"></a>\r
-<h3>PYINTERVAL</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955CE0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955CE0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955CE0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="PYTIME"></a>\r
-<h3>PYTIME</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955C40&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955C40&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955C40&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ROWID"></a>\r
-<h3>ROWID</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x009559A0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x009559A0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x009559A0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ROWIDARRAY"></a>\r
-<h3>ROWIDARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955BE0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955BE0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955BE0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="STRING"></a>\r
-<h3>STRING</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955720&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955720&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955720&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="string_types"></a>\r
-<h3>string_types</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>dict</code>\r
-\r
-      </dd>\r
-      <dt title="{1028: &lt;psycopg2._psycopg.type object at 0x00955BE0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00955A00&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00955760&gt;, 17: &lt;psycopg2._psycopg.type object at 0x009558C0&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 20: &lt;psycopg2._psycopg.type object at 0x009555C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 26: &lt;psycopg2._psycopg.type object at 0x009559A0&gt;, 1182: &lt;psycopg2._psycopg.ty...">Value:</dt>\r
-      <dd title="{1028: &lt;psycopg2._psycopg.type object at 0x00955BE0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00955A00&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00955760&gt;, 17: &lt;psycopg2._psycopg.type object at 0x009558C0&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 20: &lt;psycopg2._psycopg.type object at 0x009555C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 26: &lt;psycopg2._psycopg.type object at 0x009559A0&gt;, 1182: &lt;psycopg2._psycopg.ty..."><table><tr><td>\r
-<pre class="variable">\r
-{16: &lt;psycopg2._psycopg.type object at 0x00955760&gt;,\r
- 17: &lt;psycopg2._psycopg.type object at 0x009558C0&gt;,\r
- 18: &lt;psycopg2._psycopg.type object at 0x00955720&gt;,\r
- 19: &lt;psycopg2._psycopg.type object at 0x00955720&gt;,\r
- 20: &lt;psycopg2._psycopg.type object at 0x009555C0&gt;,\r
- 21: &lt;psycopg2._psycopg.type object at 0x00955620&gt;,\r
- 23: &lt;psycopg2._psycopg.type object at 0x00955620&gt;,\r
- 25: &lt;psycopg2._psycopg.type object at 0x00955720&gt;,\r
-<span class="variable-ellipsis">...</span>                                                                    </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="STRINGARRAY"></a>\r
-<h3>STRINGARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955A80&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955A80&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955A80&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="threadsafety"></a>\r
-<h3>threadsafety</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="2">Value:</dt>\r
-      <dd title="2"><table><tr><td>\r
-<pre class="variable">\r
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="TIME"></a>\r
-<h3>TIME</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955840&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955840&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955840&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="TIMEARRAY"></a>\r
-<h3>TIMEARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955B00&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955B00&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955B00&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="UNICODE"></a>\r
-<h3>UNICODE</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x009556C0&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x009556C0&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x009556C0&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="UNICODEARRAY"></a>\r
-<h3>UNICODEARRAY</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>type</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2._psycopg.type object at 0x00955A40&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2._psycopg.type object at 0x00955A40&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2._psycopg.type object at 0x00955A40&gt;                          </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Fri Jan 13 10:57:06 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.extensions-module.html b/psycopg2/doc/api/public/psycopg2.extensions-module.html
deleted file mode 100644 (file)
index 4e97448..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extensions</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;extensions\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extensions-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extensions-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.extensions</h2>\r
-\r
-<p>psycopg extensions to the DBAPI-2.0</p>\r
-<p>This module holds all the extensions to the DBAPI-2.0 provided by psycopg.</p>\r
-<ul class="rst-simple">\r
-<li><a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>connection</code></a> -- the new-type inheritable connection class</li>\r
-<li><a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>cursor</code></a> -- the new-type inheritable cursor class</li>\r
-<li><a href="psycopg2.extensions-module.html#adapt" class="link"><code>adapt()</code></a> -- exposes the <a class="reference" href="http://www.python.org/peps/pep-0246.html">PEP-246</a> compatible adapting mechanism used\r
-by psycopg to adapt Python types to PostgreSQL ones</li>\r
-</ul>\r
-<hr/>\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">object</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#adapt" class="summary-sig-name"><code>adapt</code></a>(<span class="summary-sig-arg">obj</span>,\r
-          <span class="summary-sig-arg">protocol</span>,\r
-          <span class="summary-sig-arg">alternate</span>)</span></code>\r
-<br />\r
-adapt obj to given protocol</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new AsIs wrapper object</td>\r
-  <td><code><a name="AsIs"></a><span class="summary-sig"><span class="summary-sig-name">AsIs</span>(<span class="summary-sig-arg">obj</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new boolean value</td>\r
-  <td><code><a name="Boolean"></a><span class="summary-sig"><span class="summary-sig-name">Boolean</span>(<span class="summary-sig-arg">obj</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
-  <td><code><a name="DateFromPy"></a><span class="summary-sig"><span class="summary-sig-name">DateFromPy</span>(<span class="summary-sig-arg">datetime.date</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
-  <td><code><a name="IntervalFromPy"></a><span class="summary-sig"><span class="summary-sig-name">IntervalFromPy</span>(<span class="summary-sig-arg">datetime.timedelta</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new type object</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#new_type" class="summary-sig-name"><code>new_type</code></a>(<span class="summary-sig-arg">oids</span>,\r
-          <span class="summary-sig-arg">name</span>,\r
-          <span class="summary-sig-arg">adapter</span>)</span></code>\r
-<br />\r
-Create a new binding object.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new quoted string</td>\r
-  <td><code><a name="QuotedString"></a><span class="summary-sig"><span class="summary-sig-name">QuotedString</span>(<span class="summary-sig-arg">str</span>,\r
-          <span class="summary-sig-arg">enc</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#register_adapter" class="summary-sig-name"><code>register_adapter</code></a>(<span class="summary-sig-arg">typ</span>,\r
-          <span class="summary-sig-arg">callable</span>)</span></code>\r
-<br />\r
-Register 'callable' as an ISQLQuote adapter for type 'typ'.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">None</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#register_type" class="summary-sig-name"><code>register_type</code></a>(<span class="summary-sig-arg">obj</span>)</span></code>\r
-<br />\r
-register obj with psycopg type system</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
-  <td><code><a name="TimeFromPy"></a><span class="summary-sig"><span class="summary-sig-name">TimeFromPy</span>(<span class="summary-sig-arg">datetime.time</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
-  <td><code><a name="TimestampFromPy"></a><span class="summary-sig"><span class="summary-sig-name">TimestampFromPy</span>(<span class="summary-sig-arg">datetime.datetime</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><code>ISOLATION_LEVEL_AUTOCOMMIT</code></a></strong> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED"><code>ISOLATION_LEVEL_READ_COMMITTED</code></a></strong> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED"><code>ISOLATION_LEVEL_READ_UNCOMMITTED</code></a></strong> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ"><code>ISOLATION_LEVEL_REPEATABLE_READ</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
-<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><code>ISOLATION_LEVEL_SERIALIZABLE</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="adapt"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">adapt</span>(<span class="sig-arg">obj</span>,\r
-          <span class="sig-arg">protocol</span>,\r
-          <span class="sig-arg">alternate</span>)</span>\r
-  </h3>\r
-<p>adapt obj to given protocol</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="AsIs"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">AsIs</span>(<span class="sig-arg">obj</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new AsIs wrapper object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="Boolean"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">Boolean</span>(<span class="sig-arg">obj</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new boolean value      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="DateFromPy"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">DateFromPy</span>(<span class="sig-arg">datetime.date</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new wrapper      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="IntervalFromPy"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">IntervalFromPy</span>(<span class="sig-arg">datetime.timedelta</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new wrapper      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="new_type"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">new_type</span>(<span class="sig-arg">oids</span>,\r
-          <span class="sig-arg">name</span>,\r
-          <span class="sig-arg">adapter</span>)</span>\r
-  </h3>\r
-<p>Create a new binding object. The object can be used with the\r
-<a href="psycopg2.extensions-module.html#register_type" class="link"><code>register_type()</code></a> function to bind PostgreSQL objects to python objects.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Parameters:</dt>\r
-      <dd><code><strong class="pname">oids</strong></code> -\r
- Tuple of <tt class="docutils literal"><span class="pre">oid</span></tt> of the PostgreSQL types to convert.\r
-      </dd>\r
-      <dd><code><strong class="pname">name</strong></code> -\r
- Name for the new type\r
-      </dd>\r
-      <dd><code><strong class="pname">adapter</strong></code> -\r
- Callable to perform type conversion.\r
-It must have the signature <tt class="docutils literal"><span class="pre">fun(value,</span> <span class="pre">cur)</span></tt> where <tt class="docutils literal"><span class="pre">value</span></tt> is\r
-the string representation returned by PostgreSQL (<code>None</code> if <tt class="docutils literal"><span class="pre">NULL</span></tt>)\r
-and <tt class="docutils literal"><span class="pre">cur</span></tt> is the cursor from which data are read.\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new type object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="QuotedString"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">QuotedString</span>(<span class="sig-arg">str</span>,\r
-          <span class="sig-arg">enc</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new quoted string      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="register_adapter"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">register_adapter</span>(<span class="sig-arg">typ</span>,\r
-          <span class="sig-arg">callable</span>)</span>\r
-  </h3>\r
-<p>Register 'callable' as an ISQLQuote adapter for type 'typ'.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="register_type"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">register_type</span>(<span class="sig-arg">obj</span>)</span>\r
-  </h3>\r
-<p>register obj with psycopg type system</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Parameters:</dt>\r
-      <dd><code><strong class="pname">obj</strong></code> -\r
- A type adapter created by <a href="psycopg2.extensions-module.html#new_type" class="link"><code>new_type()</code></a>\r
-      </dd>\r
-    </dl>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-None      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="TimeFromPy"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">TimeFromPy</span>(<span class="sig-arg">datetime.time</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new wrapper      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="TimestampFromPy"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">TimestampFromPy</span>(<span class="sig-arg">datetime.datetime</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new wrapper      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_AUTOCOMMIT"></a>\r
-<h3>ISOLATION_LEVEL_AUTOCOMMIT</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="0">Value:</dt>\r
-      <dd title="0"><table><tr><td>\r
-<pre class="variable">\r
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_READ_COMMITTED"></a>\r
-<h3>ISOLATION_LEVEL_READ_COMMITTED</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="1">Value:</dt>\r
-      <dd title="1"><table><tr><td>\r
-<pre class="variable">\r
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_READ_UNCOMMITTED"></a>\r
-<h3>ISOLATION_LEVEL_READ_UNCOMMITTED</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="1">Value:</dt>\r
-      <dd title="1"><table><tr><td>\r
-<pre class="variable">\r
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_REPEATABLE_READ"></a>\r
-<h3>ISOLATION_LEVEL_REPEATABLE_READ</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="2">Value:</dt>\r
-      <dd title="2"><table><tr><td>\r
-<pre class="variable">\r
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ISOLATION_LEVEL_SERIALIZABLE"></a>\r
-<h3>ISOLATION_LEVEL_SERIALIZABLE</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>int</code>\r
-\r
-      </dd>\r
-      <dt title="2">Value:</dt>\r
-      <dd title="2"><table><tr><td>\r
-<pre class="variable">\r
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.extras-module.html b/psycopg2/doc/api/public/psycopg2.extras-module.html
deleted file mode 100644 (file)
index c99a0ce..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;extras\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.extras</h2>\r
-\r
-<p>Miscellaneous goodies for psycopg2</p>\r
-<p>This module is a generic place used to hold little helper functions\r
-and classes untill a better place in the distribution is found.</p>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></strong></td>\r
-  <td>A connection that uses DictCursor automatically.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></strong></td>\r
-  <td>A cursor that keeps a list of column name -&gt; index mappings.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></strong></td>\r
-  <td>A row object that allow by-colun-name access to data.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a></strong></td>\r
-  <td>Adapt any iterable to an SQL quotable object.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.extras.DictConnection-class.html b/psycopg2/doc/api/public/psycopg2.extras.DictConnection-class.html
deleted file mode 100644 (file)
index 988bd79..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras.DictConnection</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
-        Class&nbsp;DictConnection\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras.DictConnection-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictConnection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type DictConnection</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-<a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a> --+\r
-             |\r
-            <strong class="uidshort">DictConnection</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A connection that uses DictCursor automatically.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="cursor"></a><span class="summary-sig"><span class="summary-sig-name">cursor</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="cursor"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">cursor</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>psycopg2._psycopg.connection.cursor</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:31 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.extras.DictCursor-class.html b/psycopg2/doc/api/public/psycopg2.extras.DictCursor-class.html
deleted file mode 100644 (file)
index d546d3a..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras.DictCursor</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
-        Class&nbsp;DictCursor\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras.DictCursor-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictCursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type DictCursor</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a> --+\r
-             |\r
-            <strong class="uidshort">DictCursor</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A cursor that keeps a list of column name -&gt; index mappings.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="callproc"></a><span class="summary-sig"><span class="summary-sig-name">callproc</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">procname</span>,\r
-          <span class="summary-sig-arg">vars</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="execute"></a><span class="summary-sig"><span class="summary-sig-name">execute</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">query</span>,\r
-          <span class="summary-sig-arg">vars</span>,\r
-          <span class="summary-sig-arg">async</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="fetchall"></a><span class="summary-sig"><span class="summary-sig-name">fetchall</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="fetchmany"></a><span class="summary-sig"><span class="summary-sig-name">fetchmany</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">size</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="fetchone"></a><span class="summary-sig"><span class="summary-sig-name">fetchone</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="callproc"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">callproc</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">procname</span>,\r
-          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#callproc"><code>psycopg2._psycopg.cursor.callproc</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="execute"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">execute</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">query</span>,\r
-          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#execute"><code>psycopg2._psycopg.cursor.execute</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall"><code>psycopg2._psycopg.cursor.fetchall</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchmany"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchmany</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany"><code>psycopg2._psycopg.cursor.fetchmany</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="fetchone"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">fetchone</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone"><code>psycopg2._psycopg.cursor.fetchone</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.extras.DictRow-class.html b/psycopg2/doc/api/public/psycopg2.extras.DictRow-class.html
deleted file mode 100644 (file)
index e278ca3..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras.DictRow</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
-        Class&nbsp;DictRow\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras.DictRow-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictRow-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type DictRow</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-      <a href="__builtin__.list-class.html"><code>list</code></a> --+\r
-             |\r
-            <strong class="uidshort">DictRow</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A row object that allow by-colun-name access to data.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">cursor</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">x</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="get"></a><span class="summary-sig"><span class="summary-sig-name">get</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">default</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="has_key"></a><span class="summary-sig"><span class="summary-sig-name">has_key</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">x</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="items"></a><span class="summary-sig"><span class="summary-sig-name">items</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="keys"></a><span class="summary-sig"><span class="summary-sig-name">keys</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="values"></a><span class="summary-sig"><span class="summary-sig-name">values</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from list</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__add__" class="summary-sig-name"><code>__add__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x+y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__contains__" class="summary-sig-name"><code>__contains__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return y in x...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delitem__" class="summary-sig-name"><code>__delitem__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return del x[y]...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delslice__" class="summary-sig-name"><code>__delslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>)</span></code>\r
-<br />\r
-Use of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__eq__" class="summary-sig-name"><code>__eq__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x==y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__ge__" class="summary-sig-name"><code>__ge__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&gt;=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getslice__" class="summary-sig-name"><code>__getslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>)</span></code>\r
-<br />\r
-Use of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__gt__" class="summary-sig-name"><code>__gt__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&gt;y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__iadd__" class="summary-sig-name"><code>__iadd__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x+=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__imul__" class="summary-sig-name"><code>__imul__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x*=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return iter(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__le__" class="summary-sig-name"><code>__le__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&lt;=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__len__" class="summary-sig-name"><code>__len__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return len(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__lt__" class="summary-sig-name"><code>__lt__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x&lt;y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__mul__" class="summary-sig-name"><code>__mul__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">n</span>)</span></code>\r
-<br />\r
-Return x*n...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__ne__" class="summary-sig-name"><code>__ne__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x!=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__rmul__" class="summary-sig-name"><code>__rmul__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">n</span>)</span></code>\r
-<br />\r
-Return n*x...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setitem__" class="summary-sig-name"><code>__setitem__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Return x[i]=y...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setslice__" class="summary-sig-name"><code>__setslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
-          <span class="summary-sig-arg">i</span>,\r
-          <span class="summary-sig-arg">j</span>,\r
-          <span class="summary-sig-arg">y</span>)</span></code>\r
-<br />\r
-Use  of negative indices is not supported.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#append" class="summary-sig-name"><code>append</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">object</span>)</span></code>\r
-<br />\r
-append object to end</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#count" class="summary-sig-name"><code>count</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">value</span>)</span></code>\r
-<br />\r
-return number of occurrences of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#extend" class="summary-sig-name"><code>extend</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">iterable</span>)</span></code>\r
-<br />\r
-extend list by appending elements from the iterable</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#index" class="summary-sig-name"><code>index</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">index</span>,\r
-          <span class="summary-sig-arg">object</span>)</span></code>\r
-<br />\r
-insert object before index</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#pop" class="summary-sig-name"><code>pop</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">index</span>)</span></code>\r
-<br />\r
-remove and return item at index (default last)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">value</span>)</span></code>\r
-<br />\r
-remove first occurrence of value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#reverse" class="summary-sig-name"><code>reverse</code></a>(<span class="summary-sig-arg">L</span>)</span></code>\r
-<br />\r
-reverse <em>IN PLACE</em></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#sort" class="summary-sig-name"><code>sort</code></a>(<span class="summary-sig-arg">L</span>,\r
-          <span class="summary-sig-arg">cmpfunc</span>)</span></code>\r
-<br />\r
-stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">cursor</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.list-class.html#__init__"><code>__builtin__.list.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="__getitem__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">x</span>)</span>\r
-    <br /><em class="fname">(Indexing operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.list-class.html#__getitem__"><code>__builtin__.list.__getitem__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="get"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">get</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">x</span>,\r
-          <span class="sig-arg">default</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="has_key"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">has_key</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">x</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="items"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">items</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="keys"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">keys</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="values"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">values</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.extras.SQL_IN-class.html b/psycopg2/doc/api/public/psycopg2.extras.SQL_IN-class.html
deleted file mode 100644 (file)
index 0b05cd2..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras.SQL_IN</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
-        Class&nbsp;SQL_IN\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras.SQL_IN-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.SQL_IN-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type SQL_IN</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">SQL_IN</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Adapt any iterable to an SQL quotable object.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">seq</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="getquoted"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="getquoted"></a><span class="summary-sig"><span class="summary-sig-name">getquoted</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">seq</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getquoted"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>\r
-    <br /><em class="fname">(Informal representation operator)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getquoted"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getquoted</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.pool-module.html b/psycopg2/doc/api/public/psycopg2.pool-module.html
deleted file mode 100644 (file)
index 34fbebd..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;pool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.pool</h2>\r
-\r
-<p>Connection pooling for psycopg2</p>\r
-<p>This module implements thread-safe (and not) connection pools.</p>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a></strong></td>\r
-  <td>Generic key-based pooling code.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a></strong></td>\r
-  <td>A pool that assigns persistent connections to different threads.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a></strong></td>\r
-  <td>A connection pool that can't be shared across different threads.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></strong></td>\r
-  <td>A connection pool that works with the threading module.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF EXCEPTIONS =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Exceptions</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></strong></td>\r
-  <td>&nbsp;</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dbg"></a><span class="summary-sig"><span class="summary-sig-name">dbg</span>(<span class="summary-sig-vararg">*args</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="dbg"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dbg</span>(<span class="sig-vararg">*args</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.pool.AbstractConnectionPool-class.html b/psycopg2/doc/api/public/psycopg2.pool.AbstractConnectionPool-class.html
deleted file mode 100644 (file)
index 41d63b9..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.AbstractConnectionPool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;AbstractConnectionPool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.AbstractConnectionPool-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.AbstractConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type AbstractConnectionPool</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
-         |\r
-        <strong class="uidshort">AbstractConnectionPool</strong>\r
-</pre><br />\r
-\r
-<dl><dt>Known Subclasses:</dt>\r
-<dd>\r
-    <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a>,\r
-    <a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a>,\r
-    <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></dd></dl>\r
-\r
-<hr/>\r
-\r
-<p>Generic key-based pooling code.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">minconn</span>,\r
-          <span class="summary-sig-arg">maxconn</span>,\r
-          <span class="summary-sig-vararg">*args</span>,\r
-          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
-<br />\r
-Initialize the connection pool.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">minconn</span>,\r
-          <span class="sig-arg">maxconn</span>,\r
-          <span class="sig-vararg">*args</span>,\r
-          <span class="sig-kwarg">**kwargs</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>Initialize the connection pool.</p>\r
-<p>New 'minconn' connections are created immediately calling 'connfunc'\r
-with given parameters. The connection pool will support a maximum of\r
-about 'maxconn' connections.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.pool.PersistentConnectionPool-class.html b/psycopg2/doc/api/public/psycopg2.pool.PersistentConnectionPool-class.html
deleted file mode 100644 (file)
index 954b8b5..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.PersistentConnectionPool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;PersistentConnectionPool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.PersistentConnectionPool-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.PersistentConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type PersistentConnectionPool</h2>\r
-\r
-<pre class="base-tree">\r
-            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-                     |    \r
-<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
-                         |\r
-                        <strong class="uidshort">PersistentConnectionPool</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A pool that assigns persistent connections to different threads.</p>\r
-<p>Note that this connection pool generates by itself the required keys\r
-using the current thread id.  This means that untill a thread put away\r
-a connection it will always get the same connection object by successive\r
-.getconn() calls. This also means that a thread can't use more than one\r
-single connection from the pool.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">minconn</span>,\r
-          <span class="summary-sig-arg">maxconn</span>,\r
-          <span class="summary-sig-vararg">*args</span>,\r
-          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
-<br />\r
-Initialize the threading lock.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections (even the one currently in use.)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Generate thread id and return a connection.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away an unused connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">minconn</span>,\r
-          <span class="sig-arg">maxconn</span>,\r
-          <span class="sig-vararg">*args</span>,\r
-          <span class="sig-kwarg">**kwargs</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>Initialize the threading lock.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>psycopg2.pool.AbstractConnectionPool.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="closeall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Close all connections (even the one currently in use.)</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Generate thread id and return a connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="putconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">conn</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
-  </h3>\r
-<p>Put away an unused connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.pool.PoolError-class.html b/psycopg2/doc/api/public/psycopg2.pool.PoolError-class.html
deleted file mode 100644 (file)
index 89cd4f7..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.PoolError</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;PoolError\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.PoolError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.PoolError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Class PoolError</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
-            |        \r
-<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
-                |    \r
-            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
-                    |\r
-                   <strong class="uidshort">PoolError</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.pool.SimpleConnectionPool-class.html b/psycopg2/doc/api/public/psycopg2.pool.SimpleConnectionPool-class.html
deleted file mode 100644 (file)
index ea8f605..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.SimpleConnectionPool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;SimpleConnectionPool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.SimpleConnectionPool-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.SimpleConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type SimpleConnectionPool</h2>\r
-\r
-<pre class="base-tree">\r
-            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-                     |    \r
-<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
-                         |\r
-                        <strong class="uidshort">SimpleConnectionPool</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A connection pool that can't be shared across different threads.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from AbstractConnectionPool</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">minconn</span>,\r
-          <span class="summary-sig-arg">maxconn</span>,\r
-          <span class="summary-sig-vararg">*args</span>,\r
-          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
-<br />\r
-Initialize the connection pool.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.pool.ThreadedConnectionPool-class.html b/psycopg2/doc/api/public/psycopg2.pool.ThreadedConnectionPool-class.html
deleted file mode 100644 (file)
index 64c95a9..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool.ThreadedConnectionPool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
-        Class&nbsp;ThreadedConnectionPool\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.ThreadedConnectionPool-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.ThreadedConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type ThreadedConnectionPool</h2>\r
-\r
-<pre class="base-tree">\r
-            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-                     |    \r
-<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
-                         |\r
-                        <strong class="uidshort">ThreadedConnectionPool</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>A connection pool that works with the threading module.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">minconn</span>,\r
-          <span class="summary-sig-arg">maxconn</span>,\r
-          <span class="summary-sig-vararg">*args</span>,\r
-          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
-<br />\r
-Initialize the threading lock.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
-<br />\r
-Close all connections (even the one currently in use.)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">key</span>)</span></code>\r
-<br />\r
-Get a free connection and assign it to 'key' if not None.</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">conn</span>,\r
-          <span class="summary-sig-arg">key</span>,\r
-          <span class="summary-sig-arg">close</span>)</span></code>\r
-<br />\r
-Put away an unused connection.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">minconn</span>,\r
-          <span class="sig-arg">maxconn</span>,\r
-          <span class="sig-vararg">*args</span>,\r
-          <span class="sig-kwarg">**kwargs</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-<p>Initialize the threading lock.</p>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>psycopg2.pool.AbstractConnectionPool.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="closeall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-<p>Close all connections (even the one currently in use.)</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="getconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
-  </h3>\r
-<p>Get a free connection and assign it to 'key' if not None.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="putconn"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">conn</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">key</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
-  </h3>\r
-<p>Put away an unused connection.</p>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.psycopg1-module.html b/psycopg2/doc/api/public/psycopg2.psycopg1-module.html
deleted file mode 100644 (file)
index 18a9a75..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.psycopg1</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;psycopg1\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.psycopg1-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.psycopg1</h2>\r
-\r
-<p>psycopg 1.1.x compatibility module</p>\r
-<p>This module uses the new style connection and cursor types to build a psycopg\r
-1.1.1.x compatibility layer. It should be considered a temporary hack to run\r
-old code while porting to psycopg 2. Import it as follows:</p>\r
-<pre class="literal-block">\r
-from psycopg2 import psycopg1 as psycopg\r
-</pre>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a></strong></td>\r
-  <td>psycopg 1.1.x connection.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a></strong></td>\r
-  <td>psycopg 1.1.x cursor.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Function Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new psycopg 1.1.x compatible connection object</td>\r
-  <td><code><a name="connect"></a><span class="summary-sig"><span class="summary-sig-name">connect</span>(<span class="summary-sig-arg">dsn</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF FUNCTION DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Function Details</th></tr>\r
-</table>\r
-\r
-<a name="connect"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">connect</span>(<span class="sig-arg">dsn</span>,\r
-          <span class="sig-vararg">...</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new psycopg 1.1.x compatible connection object      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.psycopg1.connection-class.html b/psycopg2/doc/api/public/psycopg2.psycopg1.connection-class.html
deleted file mode 100644 (file)
index 9b5b429..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.psycopg1.connection</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.psycopg1-module.html">Module&nbsp;psycopg1</a> ::\r
-        Class&nbsp;connection\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.psycopg1.connection-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1.connection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type connection</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-<a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a> --+\r
-             |\r
-            <strong class="uidshort">connection</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>psycopg 1.1.x connection.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">switch autocommit on (1) or off (0)</td>\r
-  <td><code><a name="autocommit"></a><span class="summary-sig"><span class="summary-sig-name">autocommit</span>(<span class="summary-sig-arg">on_off</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">new psycopg 1.1.x compatible cursor object</td>\r
-  <td><code><a name="cursor"></a><span class="summary-sig"><span class="summary-sig-name">cursor</span>()</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="autocommit"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">autocommit</span>(<span class="sig-arg">on_off</span>=<span class="sig-default">1</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-switch autocommit on (1) or off (0)      </dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="cursor"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">cursor</span>()</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Returns:</dt>\r
-      <dd>\r
-new psycopg 1.1.x compatible cursor object      </dd>\r
-    </dl>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>psycopg2._psycopg.connection.cursor</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.psycopg1.cursor-class.html b/psycopg2/doc/api/public/psycopg2.psycopg1.cursor-class.html
deleted file mode 100644 (file)
index f80677d..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.psycopg1.cursor</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.psycopg1-module.html">Module&nbsp;psycopg1</a> ::\r
-        Class&nbsp;cursor\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.psycopg1.cursor-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1.cursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type cursor</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a> --+\r
-             |\r
-            <strong class="uidshort">cursor</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>psycopg 1.1.x cursor.</p>\r
-<p>Note that this cursor implements the exact procedure used by psycopg 1 to\r
-build dictionaries out of result rows. The DictCursor in the\r
-psycopg.extras modules implements a much better and faster algorithm.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dictfetchall"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchall</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dictfetchmany"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchmany</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">size</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dictfetchone"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchone</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="dictfetchall"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dictfetchall</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="dictfetchmany"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dictfetchmany</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">size</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="dictfetchone"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dictfetchone</span>(<span class="sig-arg">self</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:33 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.tz-module.html b/psycopg2/doc/api/public/psycopg2.tz-module.html
deleted file mode 100644 (file)
index 192ac5e..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.tz</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        Module&nbsp;tz\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.tz-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
-<h2 class="module">Module psycopg2.tz</h2>\r
-\r
-<p>tzinfo implementations for psycopg2</p>\r
-<p>This module holds two different tzinfo implementations that can be used as\r
-the 'tzinfo' argument to datetime constructors, directly passed to psycopg\r
-functions or used to set the .tzinfo_factory attribute in cursors.</p>\r
-<hr/>\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Classes</th></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a></strong></td>\r
-  <td>Fixed offset in minutes east from UTC.</td></tr>\r
-<tr><td width="15%">\r
-  <strong><a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></strong></td>\r
-  <td>Platform idea of local timezone.</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Variable Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
-<td><strong><a href="psycopg2.tz-module.html#DSTDIFF"><code>DSTDIFF</code></a></strong> = <span title="datetime.timedelta(0, 3600)"><code>datetime.timedelta(0,&nbsp;3600)                    </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>LocalTimezone</code></td>\r
-<td><strong><a href="psycopg2.tz-module.html#LOCAL"><code>LOCAL</code></a></strong> = <span title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;"><code>&lt;psycopg2.tz.LocalTimezone&nbsp;object&nbsp;at&nbsp;0x00847090&gt; </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
-<td><strong><a href="psycopg2.tz-module.html#STDOFFSET"><code>STDOFFSET</code></a></strong> = <span title="datetime.timedelta(0, 3600)"><code>datetime.timedelta(0,&nbsp;3600)                  </code>\r
-</span></td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
-<td><strong><a href="psycopg2.tz-module.html#ZERO"><code>ZERO</code></a></strong> = <span title="datetime.timedelta(0)"><code>datetime.timedelta(0)                             </code>\r
-</span></td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF VARIABLE DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Variable Details</th></tr>\r
-</table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="DSTDIFF"></a>\r
-<h3>DSTDIFF</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>timedelta</code>\r
-\r
-      </dd>\r
-      <dt title="datetime.timedelta(0, 3600)">Value:</dt>\r
-      <dd title="datetime.timedelta(0, 3600)"><table><tr><td>\r
-<pre class="variable">\r
-datetime.timedelta(0, 3600)                                            </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="LOCAL"></a>\r
-<h3>LOCAL</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>LocalTimezone</code>\r
-\r
-      </dd>\r
-      <dt title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;">Value:</dt>\r
-      <dd title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;"><table><tr><td>\r
-<pre class="variable">\r
-&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;                       </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="STDOFFSET"></a>\r
-<h3>STDOFFSET</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>timedelta</code>\r
-\r
-      </dd>\r
-      <dt title="datetime.timedelta(0, 3600)">Value:</dt>\r
-      <dd title="datetime.timedelta(0, 3600)"><table><tr><td>\r
-<pre class="variable">\r
-datetime.timedelta(0, 3600)                                            </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
-<a name="ZERO"></a>\r
-<h3>ZERO</h3>\r
-<dl>\r
-  <dt></dt>\r
-  <dd>\r
-    <dl>\r
-      <dt>Type:</dt>\r
-      <dd>\r
-          <code>timedelta</code>\r
-\r
-      </dd>\r
-      <dt title="datetime.timedelta(0)">Value:</dt>\r
-      <dd title="datetime.timedelta(0)"><table><tr><td>\r
-<pre class="variable">\r
-datetime.timedelta(0)                                                  </pre>\r
-        </td></tr></table></dd>\r
-    </dl>\r
-  </dd>\r
-</dl></td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.tz.FixedOffsetTimezone-class.html b/psycopg2/doc/api/public/psycopg2.tz.FixedOffsetTimezone-class.html
deleted file mode 100644 (file)
index 71145dd..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.tz.FixedOffsetTimezone</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.tz-module.html">Module&nbsp;tz</a> ::\r
-        Class&nbsp;FixedOffsetTimezone\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz.FixedOffsetTimezone-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type FixedOffsetTimezone</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a> --+\r
-             |\r
-            <strong class="uidshort">FixedOffsetTimezone</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Fixed offset in minutes east from UTC.</p>\r
-<p>This is exactly the implementation found in Python 2.3.x documentation,\r
-with a small change to the __init__ method to allow for pickling and a\r
-default name in the form 'sHH:MM' ('s' is the sign.)</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">offset</span>,\r
-          <span class="summary-sig-arg">name</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dst"></a><span class="summary-sig"><span class="summary-sig-name">dst</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="tzname"></a><span class="summary-sig"><span class="summary-sig-name">tzname</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="utcoffset"></a><span class="summary-sig"><span class="summary-sig-name">utcoffset</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from tzinfo</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
--&gt; (cls, state)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime in UTC -&gt; datetime in local time.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="__init__"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">offset</span>=<span class="sig-default">None</span>,\r
-          <span class="sig-arg">name</span>=<span class="sig-default">None</span>)</span>\r
-    <br /><em class="fname">(Constructor)</em>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="dst"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#dst"><code>datetime.tzinfo.dst</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="tzname"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#tzname"><code>datetime.tzinfo.tzname</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="utcoffset"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#utcoffset"><code>datetime.tzinfo.utcoffset</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/psycopg2.tz.LocalTimezone-class.html b/psycopg2/doc/api/public/psycopg2.tz.LocalTimezone-class.html
deleted file mode 100644 (file)
index 7f95294..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.tz.LocalTimezone</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-      <span class="breadcrumbs">\r
-        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
-        <a href="psycopg2.tz-module.html">Module&nbsp;tz</a> ::\r
-        Class&nbsp;LocalTimezone\r
-      </span><br />\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.tz.LocalTimezone-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz.LocalTimezone-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
-<h2 class="class">Type LocalTimezone</h2>\r
-\r
-<pre class="base-tree">\r
-<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
-         |    \r
-    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a> --+\r
-             |\r
-            <strong class="uidshort">LocalTimezone</strong>\r
-</pre><br />\r
-\r
-<hr/>\r
-\r
-<p>Platform idea of local timezone.</p>\r
-<p>This is the exact implementation from the Pyhton 2.3 documentation.</p>\r
-<hr/>\r
-\r
-\r
-<!-- =========== START OF METHOD SUMMARY =========== -->\r
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="summary">\r
-  <th colspan="2">Method Summary</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="dst"></a><span class="summary-sig"><span class="summary-sig-name">dst</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="tzname"></a><span class="summary-sig"><span class="summary-sig-name">tzname</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><a name="utcoffset"></a><span class="summary-sig"><span class="summary-sig-name">utcoffset</span>(<span class="summary-sig-arg">self</span>,\r
-          <span class="summary-sig-arg">dt</span>)</span></code>\r
-</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from tzinfo</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
-          <span class="summary-sig-arg">S</span>,\r
-          <span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-Return a new object with type S, a subtype of T...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
--&gt; (cls, state)</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-datetime in UTC -&gt; datetime in local time.</td></tr>\r
-<tr bgcolor="#e8f0f8" class="group">\r
-  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return hash(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-helper for pickle</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return repr(x)...</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
-<br />\r
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
-<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
-  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
-<br />\r
-Return str(x)...</td></tr>\r
-</table><br />\r
-\r
-\r
-<!-- =========== START OF METHOD DETAILS =========== -->\r
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
-<tr bgcolor="#70b0f0" class="details">\r
-  <th colspan="2">Method Details</th></tr>\r
-</table>\r
-\r
-<a name="dst"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#dst"><code>datetime.tzinfo.dst</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="tzname"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#tzname"><code>datetime.tzinfo.tzname</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-\r
-<a name="utcoffset"></a>\r
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
-  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-arg">self</span>,\r
-          <span class="sig-arg">dt</span>)</span>\r
-  </h3>\r
-  <dl><dt></dt><dd>\r
-    <dl><dt>Overrides:</dt>\r
-      <dd><a href="datetime.tzinfo-class.html#utcoffset"><code>datetime.tzinfo.utcoffset</code></a></dd>\r
-    </dl>\r
-  </dd></dl>\r
-</td></tr></table>\r
-<br />\r
-\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc-everything.html b/psycopg2/doc/api/public/toc-everything.html
deleted file mode 100644 (file)
index a13c502..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Everything</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading">Everything</h1>\r
-<hr />\r
-\r
-<!-- =========== START OF ALL CLASSES =========== -->\r
-<h2 class="tocheading">All&nbsp;Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictConnection-class.html">psycopg2.extras.DictConnection</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictCursor-class.html">psycopg2.extras.DictCursor</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictRow-class.html">psycopg2.extras.DictRow</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.SQL_IN-class.html">psycopg2.extras.SQL_IN</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.AbstractConnectionPool-class.html">psycopg2.pool.AbstractConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.PersistentConnectionPool-class.html">psycopg2.pool.PersistentConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.SimpleConnectionPool-class.html">psycopg2.pool.SimpleConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.ThreadedConnectionPool-class.html">psycopg2.pool.ThreadedConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.connection-class.html">psycopg2.psycopg1.connection</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.cursor-class.html">psycopg2.psycopg1.cursor</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz.FixedOffsetTimezone-class.html">psycopg2.tz.FixedOffsetTimezone</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz.LocalTimezone-class.html">psycopg2.tz.LocalTimezone</a></p>\r
-\r
-<!-- =========== START OF ALL EXCEPTIONS =========== -->\r
-<h2 class="tocheading">All&nbsp;Exceptions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.DatabaseError-class.html">psycopg2.DatabaseError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.DataError-class.html">psycopg2.DataError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.Error-class.html">psycopg2.Error</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.IntegrityError-class.html">psycopg2.IntegrityError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.InterfaceError-class.html">psycopg2.InterfaceError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.InternalError-class.html">psycopg2.InternalError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.NotSupportedError-class.html">psycopg2.NotSupportedError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.OperationalError-class.html">psycopg2.OperationalError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.PoolError-class.html">psycopg2.pool.PoolError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.ProgrammingError-class.html">psycopg2.ProgrammingError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.Warning-class.html">psycopg2.Warning</a></p>\r
-\r
-<!-- =========== START OF ALL FUNCTIONS =========== -->\r
-<h2 class="tocheading">All&nbsp;Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#adapt">adapt</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#AsIs">AsIs</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Binary">Binary</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#Boolean">Boolean</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#connect">connect</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html#connect">connect</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Date">Date</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#DateFromPy">DateFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#DateFromTicks">DateFromTicks</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html#dbg">dbg</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#IntervalFromPy">IntervalFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#new_type">new_type</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#QuotedString">QuotedString</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_adapter">register_adapter</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_type">register_type</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Time">Time</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimeFromPy">TimeFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimeFromTicks">TimeFromTicks</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Timestamp">Timestamp</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimestampFromPy">TimestampFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimestampFromTicks">TimestampFromTicks</a></p>\r
-\r
-<!-- =========== START OF ALL VARIABLES =========== -->\r
-<h2 class="tocheading">All&nbsp;Variables</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#DSTDIFF">DSTDIFF</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT">ISOLATION_LEVEL_AUTOCOMMIT</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED">ISOLATION_LEVEL_READ_COMMITTED</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED">ISOLATION_LEVEL_READ_UNCOMMITTED</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ">ISOLATION_LEVEL_REPEATABLE_READ</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE">ISOLATION_LEVEL_SERIALIZABLE</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#LOCAL">LOCAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#STDOFFSET">STDOFFSET</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#ZERO">ZERO</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc-everything.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc-psycopg2-module.html b/psycopg2/doc/api/public/toc-psycopg2-module.html
deleted file mode 100644 (file)
index fa15e9b..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2-module.html">psycopg2</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF MODULES =========== -->\r
-<h2 class="tocheading">Modules</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html">extensions</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras-module.html">extras</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html">pool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html">psycopg1</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html">tz</a></p>\r
-\r
-<!-- =========== START OF EXCEPTIONS =========== -->\r
-<h2 class="tocheading">Exceptions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.DatabaseError-class.html">DatabaseError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.DataError-class.html">DataError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.Error-class.html">Error</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.IntegrityError-class.html">IntegrityError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.InterfaceError-class.html">InterfaceError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.InternalError-class.html">InternalError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.NotSupportedError-class.html">NotSupportedError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.OperationalError-class.html">OperationalError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.ProgrammingError-class.html">ProgrammingError</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.Warning-class.html">Warning</a></p>\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Binary">Binary</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#connect">connect</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Date">Date</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#DateFromTicks">DateFromTicks</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Time">Time</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimeFromTicks">TimeFromTicks</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Timestamp">Timestamp</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimestampFromTicks">TimestampFromTicks</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc-psycopg2-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc-psycopg2._psycopg-module.html b/psycopg2/doc/api/public/toc-psycopg2._psycopg-module.html
deleted file mode 100644 (file)
index 6e8fa49..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2._psycopg</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2._psycopg-module.html">_psycopg</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-\r
-<!-- =========== START OF VARIABLES =========== -->\r
-<h2 class="tocheading">Variables</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#__version__">__version__</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#adapters">adapters</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#apilevel">apilevel</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#BINARY">BINARY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#binary_types">binary_types</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#BINARYARRAY">BINARYARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#BOOLEAN">BOOLEAN</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#BOOLEANARRAY">BOOLEANARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DATE">DATE</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DATEARRAY">DATEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DATETIME">DATETIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DATETIMEARRAY">DATETIMEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DECIMAL">DECIMAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DECIMALARRAY">DECIMALARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#encodings">encodings</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#FLOAT">FLOAT</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#FLOATARRAY">FLOATARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#INTEGER">INTEGER</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#INTEGERARRAY">INTEGERARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#INTERVAL">INTERVAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#INTERVALARRAY">INTERVALARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#LONGINTEGER">LONGINTEGER</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#LONGINTEGERARRAY">LONGINTEGERARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#NUMBER">NUMBER</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#paramstyle">paramstyle</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#PYDATE">PYDATE</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#PYDATETIME">PYDATETIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#PYINTERVAL">PYINTERVAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#PYTIME">PYTIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#ROWID">ROWID</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#ROWIDARRAY">ROWIDARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#STRING">STRING</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#string_types">string_types</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#STRINGARRAY">STRINGARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#threadsafety">threadsafety</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#TIME">TIME</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#TIMEARRAY">TIMEARRAY</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#UNICODE">UNICODE</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#UNICODEARRAY">UNICODEARRAY</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc-psycopg2._psycopg-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc-psycopg2.extensions-module.html b/psycopg2/doc/api/public/toc-psycopg2.extensions-module.html
deleted file mode 100644 (file)
index abf93eb..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extensions</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.extensions-module.html">extensions</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#adapt">adapt</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#AsIs">AsIs</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#Boolean">Boolean</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#DateFromPy">DateFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#IntervalFromPy">IntervalFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#new_type">new_type</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#QuotedString">QuotedString</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_adapter">register_adapter</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_type">register_type</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimeFromPy">TimeFromPy</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimestampFromPy">TimestampFromPy</a></p>\r
-\r
-<!-- =========== START OF VARIABLES =========== -->\r
-<h2 class="tocheading">Variables</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT">ISOLATION_LEVEL_AUTOCOMMIT</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED">ISOLATION_LEVEL_READ_COMMITTED</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED">ISOLATION_LEVEL_READ_UNCOMMITTED</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ">ISOLATION_LEVEL_REPEATABLE_READ</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE">ISOLATION_LEVEL_SERIALIZABLE</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc-psycopg2.extensions-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc-psycopg2.extras-module.html b/psycopg2/doc/api/public/toc-psycopg2.extras-module.html
deleted file mode 100644 (file)
index f193b47..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.extras</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.extras-module.html">extras</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictConnection-class.html">DictConnection</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictCursor-class.html">DictCursor</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictRow-class.html">DictRow</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.extras.SQL_IN-class.html">SQL_IN</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc-psycopg2.extras-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc-psycopg2.pool-module.html b/psycopg2/doc/api/public/toc-psycopg2.pool-module.html
deleted file mode 100644 (file)
index 0736019..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.pool</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.pool-module.html">pool</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.AbstractConnectionPool-class.html">AbstractConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.PersistentConnectionPool-class.html">PersistentConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.SimpleConnectionPool-class.html">SimpleConnectionPool</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.ThreadedConnectionPool-class.html">ThreadedConnectionPool</a></p>\r
-\r
-<!-- =========== START OF EXCEPTIONS =========== -->\r
-<h2 class="tocheading">Exceptions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool.PoolError-class.html">PoolError</a></p>\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html#dbg">dbg</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc-psycopg2.pool-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc-psycopg2.psycopg1-module.html b/psycopg2/doc/api/public/toc-psycopg2.psycopg1-module.html
deleted file mode 100644 (file)
index 69b1f79..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.psycopg1</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.psycopg1-module.html">psycopg1</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.connection-class.html">connection</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.cursor-class.html">cursor</a></p>\r
-\r
-<!-- =========== START OF FUNCTIONS =========== -->\r
-<h2 class="tocheading">Functions</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html#connect">connect</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc-psycopg2.psycopg1-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc-psycopg2.tz-module.html b/psycopg2/doc/api/public/toc-psycopg2.tz-module.html
deleted file mode 100644 (file)
index 6f617fe..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>psycopg2.tz</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading"><a target="mainFrame" href="psycopg2.tz-module.html">tz</a></h1>\r
-<hr />\r
-\r
-<!-- =========== START OF CLASSES =========== -->\r
-<h2 class="tocheading">Classes</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz.FixedOffsetTimezone-class.html">FixedOffsetTimezone</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz.LocalTimezone-class.html">LocalTimezone</a></p>\r
-\r
-<!-- =========== START OF VARIABLES =========== -->\r
-<h2 class="tocheading">Variables</h2>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#DSTDIFF">DSTDIFF</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#LOCAL">LOCAL</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#STDOFFSET">STDOFFSET</a></p>\r
-<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#ZERO">ZERO</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc-psycopg2.tz-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/toc.html b/psycopg2/doc/api/public/toc.html
deleted file mode 100644 (file)
index 89021cc..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Table of Contents</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-<h1 class="tocheading">Table&nbsp;of&nbsp;Contents</h1>\r
-<hr />\r
-<p class="toc"><a target="moduleFrame" href="toc-everything.html">Everything</a></p>\r
-\r
-<!-- =========== START OF PACKAGES =========== -->\r
-<h2 class="tocheading">Packages</h2>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2-module.html" onclick="setFrame('toc-psycopg2-module.html', 'psycopg2-module.html');">psycopg2</a></p>\r
-\r
-<!-- =========== START OF MODULES =========== -->\r
-<h2 class="tocheading">Modules</h2>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.extensions-module.html" onclick="setFrame('toc-psycopg2.extensions-module.html', 'psycopg2.extensions-module.html');">psycopg2.extensions</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.extras-module.html" onclick="setFrame('toc-psycopg2.extras-module.html', 'psycopg2.extras-module.html');">psycopg2.extras</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.pool-module.html" onclick="setFrame('toc-psycopg2.pool-module.html', 'psycopg2.pool-module.html');">psycopg2.pool</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.psycopg1-module.html" onclick="setFrame('toc-psycopg2.psycopg1-module.html', 'psycopg2.psycopg1-module.html');">psycopg2.psycopg1</a></p>\r
-<p class="toc"><a target="moduleFrame" href="toc-psycopg2.tz-module.html" onclick="setFrame('toc-psycopg2.tz-module.html', 'psycopg2.tz-module.html');">psycopg2.tz</a></p>\r
-\r
-<hr />\r
-<span class="options">[<a href="../private/toc.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/api/public/trees.html b/psycopg2/doc/api/public/trees.html
deleted file mode 100644 (file)
index 44573d9..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
-          "DTD/xhtml1-transitional.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-  <title>Module and Class Hierarchies</title>\r
-  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
-<script type="text/javascript">\r
-<!--\r
-function setFrame(url1, url2){\r
-    parent.frames[1].location.href = url1;\r
-    parent.frames[2].location.href = url2;\r
-}\r
--->\r
-</script>\r
-</head>\r
-<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
-      alink="#204080">\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-<table width="100%" cellpadding="0" cellspacing="0">\r
-  <tr valign="top">\r
-    <td width="100%">\r
-    </td>\r
-    <td><table cellpadding="0" cellspacing="0">\r
-      <tr><td align="right"><span class="options">[<a href="../private/trees.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
-      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
-    </table></td>\r
-</tr></table>\r
-\r
-<!-- =========== START OF MODULE HIERARCHY =========== -->\r
-<h2>Module Hierarchy</h2>\r
-<ul>\r
-<li> <strong class="uidlink"><a href="psycopg2-module.html"><code>psycopg2</code></a></strong>: <em class="summary">A Python driver for PostgreSQL</em>  <ul>\r
-    <li> <strong class="uidlink"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></strong>: <em class="summary">psycopg extensions to the DBAPI-2.0</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.extras-module.html"><code>extras</code></a></strong>: <em class="summary">Miscellaneous goodies for psycopg2</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.pool-module.html"><code>pool</code></a></strong>: <em class="summary">Connection pooling for psycopg2</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></strong>: <em class="summary">psycopg 1.1.x compatibility module</em></li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.tz-module.html"><code>tz</code></a></strong>: <em class="summary">tzinfo implementations for psycopg2</em></li>\r
-  </ul>\r
-</li>\r
-</ul>\r
-\r
-<!-- =========== START OF CLASS HIERARCHY =========== -->\r
-<h2>Class Hierarchy</h2>\r
-<ul>\r
-  <li> <strong class="uidlink"><a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></strong>: <em class="summary">\r
-The most base type</em>\r
-   <ul>\r
-    <li> <strong class="uidlink"><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></strong>: <em class="summary">\r
-Generic key-based pooling code.</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></strong>: <em class="summary">\r
-A pool that assigns persistent connections to different threads.</em>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>psycopg2.pool.SimpleConnectionPool</code></a></strong>: <em class="summary">\r
-A connection pool that can't be shared across different threads.</em>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></strong>: <em class="summary">\r
-A connection pool that works with the threading module.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></strong>: <em class="summary">\r
-list() -&gt; new list\r
-list(sequence) -&gt; new list initialized from sequence's items</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></strong>: <em class="summary">\r
-A row object that allow by-colun-name access to data.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></strong>: <em class="summary">\r
-Adapt any iterable to an SQL quotable object.</em>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></strong>: <em class="summary">\r
-type(object) -&gt; the object's type\r
-type(name, bases, dict) -&gt; a new type</em>\r
-    </li>\r
-    <li> <strong class="uidlink"><a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></strong>: <em class="summary">\r
-Abstract base class for time zone info objects.</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></strong>: <em class="summary">\r
-Fixed offset in minutes east from UTC.</em>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></strong>: <em class="summary">\r
-Platform idea of local timezone.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-     <ul>\r
-     </ul>\r
-     <ul>\r
-     </ul>\r
-   </ul>\r
-  </li>\r
-  <li> <strong class="uidlink"><a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></strong>: <em class="summary">\r
-Common base class for all exceptions.</em>\r
-   <ul>\r
-    <li> <strong class="uidlink"><a href="exceptions.StandardError-class.html"><code>exceptions.StandardError</code></a></strong>: <em class="summary">\r
-Base class for all standard Python exceptions.</em>\r
-     <ul>\r
-      <li> <strong class="uidlink"><a href="psycopg2.Error-class.html"><code>psycopg2.Error</code></a></strong>: <em class="summary">\r
-Base class for error exceptions.</em>\r
-       <ul>\r
-        <li> <strong class="uidlink"><a href="psycopg2.DatabaseError-class.html"><code>psycopg2.DatabaseError</code></a></strong>: <em class="summary">\r
-Error related to the database engine.</em>\r
-         <ul>\r
-          <li> <strong class="uidlink"><a href="psycopg2.DataError-class.html"><code>psycopg2.DataError</code></a></strong>: <em class="summary">\r
-Error related to problems with the processed data.</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.IntegrityError-class.html"><code>psycopg2.IntegrityError</code></a></strong>: <em class="summary">\r
-Error related to database integrity.</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.InternalError-class.html"><code>psycopg2.InternalError</code></a></strong>: <em class="summary">\r
-The database encountered an internal error.</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.NotSupportedError-class.html"><code>psycopg2.NotSupportedError</code></a></strong>: <em class="summary">\r
-A not supported datbase API was called.</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.OperationalError-class.html"><code>psycopg2.OperationalError</code></a></strong>: <em class="summary">\r
-Error related to database operation (disconnect, memory allocation etc).</em>\r
-          </li>\r
-          <li> <strong class="uidlink"><a href="psycopg2.ProgrammingError-class.html"><code>psycopg2.ProgrammingError</code></a></strong>: <em class="summary">\r
-Error related to database programming (SQL error, table not found etc).</em>\r
-          </li>\r
-         </ul>\r
-        </li>\r
-        <li> <strong class="uidlink"><a href="psycopg2.InterfaceError-class.html"><code>psycopg2.InterfaceError</code></a></strong>: <em class="summary">\r
-Error related to the database interface.</em>\r
-        </li>\r
-        <li> <strong class="uidlink"><a href="psycopg2.pool.PoolError-class.html"><code>psycopg2.pool.PoolError</code></a></strong>\r
-        </li>\r
-       </ul>\r
-      </li>\r
-      <li> <strong class="uidlink"><a href="psycopg2.Warning-class.html"><code>psycopg2.Warning</code></a></strong>: <em class="summary">\r
-A database warning.</em>\r
-      </li>\r
-     </ul>\r
-    </li>\r
-   </ul>\r
-  </li>\r
-</ul>\r
-\r
-<!-- =========== START OF NAVBAR =========== -->\r
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
-  <tr valign="middle">\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
-    <th class="navbar" width="100%"></th>\r
-  </tr>\r
-</table>\r
-\r
-<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
-  <tr>\r
-    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
-    <td align="right" class="footer">\r
-      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
-    </td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>\r
diff --git a/psycopg2/doc/async.txt b/psycopg2/doc/async.txt
deleted file mode 100644 (file)
index 518d5fe..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-psycopg asynchronous API
-************************
-
-** Important: async quaeries are not enabled for 2.0 **
-
-Program code can initiate an asynchronous query by passing an 'async=1' flag
-to the .execute() method. A very simple example, from the connection to the
-query:
-
-    conn = psycopg.connect(database='test')
-    curs = conn.cursor()
-    curs.execute("SEECT * from test WHERE fielda > %s", (1971,), async=1)
-    
-From then on any query on other cursors derived from the same connection is
-doomed to fail (and raise an exception) until the original cursor (the one
-executing the query) complete the asynchronous operation. This can happen in
-a number of different ways:
-
-    1) one of the .fetchXXX() methods is called, effectively blocking untill
-       data has been sent from the backend to the client, terminating the
-       query.
-       
-    2) .cancel() is called. This method tries to abort the current query and
-       will block until the query is aborted or fully executed. The return
-       value is True if the query was successfully aborted or False if it
-       was executed. Query result are discarded in both cases.
-       
-    3) .execute() is called again on the same cursor (.execute() on a
-       different cursor will simply raise an exception.) This waits for the
-       complete execution of the current query, discard any data and execute
-       the new one.
-
-Note that calling .execute() two times in a row will not abort the former
-query and will temporarily go to synchronous mode until the first of the two
-queries is executed.
-
-Cursors now have some extra methods that make them usefull during
-asynchronous queries:
-
-    .fileno()
-      Returns the file descriptor associated with the current connection and
-      make possible to use a cursor in a context where a file object would be
-      expected (like in a select() call.)
-
-    .isbusy()
-      Returns True if the backend is still processing the query or false if
-      data is ready to be fetched (by one of the .fetchXXX() methods.)
-      
-A code snippet that shows how to use the cursor object in a select() call:
-
-    import psycopg
-    import select
-        
-    conn = psycopg.connect(database='test')
-    curs = conn.cursor()
-    curs.execute("SEECT * from test WHERE fielda > %s", (1971,), async=1)
-
-    # wait for input with a maximum timeout of 5 seconds
-    query_ended = False
-    while not query_ended:
-        rread, rwrite, rspec = select([cursor, another_file], [], [], 5)
-       if not cursor.isbusy():
-          query_ended = True
-       # manage input from other sources like other_file, etc.
-    print "Query Results:"
-    for row in cursor:
-        print row
diff --git a/psycopg2/doc/extensions.html b/psycopg2/doc/extensions.html
deleted file mode 100644 (file)
index cb71200..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
-<title>psycopg 2 extensions to the DBAPI 2.0</title>
-<link rel="stylesheet" href="default.css" type="text/css" />
-</head>
-<body>
-<div class="document" id="psycopg-2-extensions-to-the-dbapi-2-0">
-<h1 class="title">psycopg 2 extensions to the DBAPI 2.0</h1>
-<p>This document is a short summary of the extensions built in psycopg 2.0.x over
-the standard <a class="reference" href="http://www.python.org/peps/pep-0249.html">Python Database API Specification 2.0</a>, usually called simply
-DBAPI-2.0 or even PEP-249.  Before reading on this document please make sure
-you already know how to program in Python using a DBAPI-2.0 compliant driver:
-basic concepts like opening a connection, executing queries and commiting or
-rolling back a transaction will not be explained but just used.</p>
-<p>Many objects and extension functions are defined in the <a class="reference" href="api/public/psycopg2.extensions-module.html"><tt class="docutils literal"><span class="pre">psycopg2.extensions</span></tt></a>
-module.</p>
-<div class="section" id="connection-and-cursor-factories">
-<h1><a name="connection-and-cursor-factories">Connection and cursor factories</a></h1>
-<p>psycopg 2 exposes two new-style classes that can be sub-classed and expanded to
-adapt them to the needs of the programmer: <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html"><tt class="docutils literal"><span class="pre">cursor</span></tt></a> and <a class="reference" href="api/private/psycopg2._psycopg.connection-class.html"><tt class="docutils literal"><span class="pre">connection</span></tt></a>.  The
-<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html"><tt class="docutils literal"><span class="pre">connection</span></tt></a> class is usually sub-classed only to provide a . <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html"><tt class="docutils literal"><span class="pre">cursor</span></tt></a> is much
-more interesting, because it is the class where query building, execution and
-result type-casting into Python variables happens.</p>
-<div class="section" id="row-factories">
-<h2><a name="row-factories">Row factories</a></h2>
-</div>
-<div class="section" id="tzinfo-factories">
-<h2><a name="tzinfo-factories">tzinfo factories</a></h2>
-</div>
-</div>
-<div class="section" id="setting-transaction-isolation-levels">
-<h1><a name="setting-transaction-isolation-levels">Setting transaction isolation levels</a></h1>
-<p>psycopg2 connection objects hold informations about the PostgreSQL <a class="reference" href="http://www.postgresql.org/docs/8.1/static/transaction-iso.html">transaction
-isolation level</a>.  The current transaction level can be read from the
-<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#isolation_level"><tt class="docutils literal"><span class="pre">.isolation_level</span></tt></a> attribute.  The default isolation level is <tt class="docutils literal"><span class="pre">READ</span>
-<span class="pre">COMMITTED</span></tt>.  A different isolation level con be set through the
-<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#set_isolation_level"><tt class="docutils literal"><span class="pre">.set_isolation_level()</span></tt></a> method.  The level can be set to one of the following
-constants, defined in <a class="reference" href="api/public/psycopg2.extensions-module.html"><tt class="docutils literal"><span class="pre">psycopg2.extensions</span></tt></a>:</p>
-<dl class="docutils">
-<dt><a class="reference" href="api/public/psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><tt class="docutils literal"><span class="pre">ISOLATION_LEVEL_AUTOCOMMIT</span></tt></a></dt>
-<dd>No transaction is started when command are issued and no
-<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#commit"><tt class="docutils literal"><span class="pre">.commit()</span></tt></a>/<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#rollback"><tt class="docutils literal"><span class="pre">.rollback()</span></tt></a> is required.  Some PostgreSQL command such as
-<tt class="docutils literal"><span class="pre">CREATE</span> <span class="pre">DATABASE</span></tt> can't run into a transaction: to run such command use
-<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#set_isolation_level"><tt class="docutils literal"><span class="pre">.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)</span></tt></a>.</dd>
-<dt><a href="#id2" name="id3"><span class="problematic" id="id3">`ISOLATION_LEVEL_READ_COMMITTED`</span></a></dt>
-<dd><div class="first system-message" id="id2">
-<p class="system-message-title">System Message: <a name="id2">ERROR/3</a> (<tt class="docutils">../doc/extensions.rst</tt>, line 54); <em><a href="#id3">backlink</a></em></p>
-Can't find 'ISOLATION_LEVEL_READ_COMMITTED' in any provided module.</div>
-<p class="last">This is the default value.  A new transaction is started at the first
-<a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> command on a cursor and at each new <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> after a
-<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#commit"><tt class="docutils literal"><span class="pre">.commit()</span></tt></a> or a <a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#rollback"><tt class="docutils literal"><span class="pre">.rollback()</span></tt></a>.  The transaction runs in the PostgreSQL
-<tt class="docutils literal"><span class="pre">READ</span> <span class="pre">COMMITTED</span></tt> isolation level.</p>
-</dd>
-<dt><a class="reference" href="api/public/psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><tt class="docutils literal"><span class="pre">ISOLATION_LEVEL_SERIALIZABLE</span></tt></a></dt>
-<dd>Transactions are run at a <tt class="docutils literal"><span class="pre">SERIALIZABLE</span></tt> isolation level.</dd>
-</dl>
-</div>
-<div class="section" id="adaptation-of-python-values-to-sql-types">
-<h1><a name="adaptation-of-python-values-to-sql-types">Adaptation of Python values to SQL types</a></h1>
-<p>psycopg2 casts Python variables to SQL literals by type.  Standard Python types
-are already adapted to the proper SQL literal.</p>
-<p>Example: the Python function:</p>
-<pre class="literal-block">
-curs.execute(&quot;&quot;&quot;INSERT INTO atable (anint, adate, astring)
-                 VALUES (%s, %s, %s)&quot;&quot;&quot;,
-             (10, datetime.date(2005, 11, 18), &quot;O'Reilly&quot;))
-</pre>
-<p>is converted into the SQL command:</p>
-<pre class="literal-block">
-INSERT INTO atable (anint, adate, astring)
- VALUES (10, '2005-11-18', 'O''Reilly');
-</pre>
-<p>Named arguments are supported too with <tt class="docutils literal"><span class="pre">%(name)s</span></tt> placeholders. Notice that:</p>
-<blockquote>
-<ul class="simple">
-<li>The Python string operator <tt class="docutils literal"><span class="pre">%</span></tt> is not used: the <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> function
-accepts the values tuple or dictionary as second parameter.</li>
-<li>The variables placeholder must always be a <tt class="docutils literal"><span class="pre">%s</span></tt>, even if a different
-placeholder (such as a <tt class="docutils literal"><span class="pre">%d</span></tt> for an integer) may look more appropriate.</li>
-<li>For positional variables binding, the second argument must always be a
-tuple, even if it contains a single variable.</li>
-<li>Only variable values should be bound via this method: it shouldn't be used
-to set table or field names. For these elements, ordinary string formatting
-should be used before running <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a>.</li>
-</ul>
-</blockquote>
-<div class="section" id="adapting-new-types">
-<h2><a name="adapting-new-types">Adapting new types</a></h2>
-<p>Any Python class or type can be adapted to an SQL string.  Adaptation mechanism
-is similar to the Object Adaptation proposed in the <a class="reference" href="http://www.python.org/peps/pep-0246.html">PEP-246</a> and is exposed
-by the <a class="reference" href="api/private/psycopg2._psycopg-module.html#adapt"><tt class="docutils literal"><span class="pre">adapt()</span></tt></a> function.</p>
-<p>psycopg2 <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> method adapts its <tt class="docutils literal"><span class="pre">vars</span></tt> arguments to the <a class="reference" href="api/private/psycopg2._psycopg.ISQLQuote-class.html"><tt class="docutils literal"><span class="pre">ISQLQuote</span></tt></a>
-protocol.  Objects that conform to this protocol expose a <tt class="docutils literal"><span class="pre">getquoted()</span></tt> method
-returning the SQL representation of the object as a string.</p>
-<p>The easiest way to adapt an object to an SQL string is to register an adapter
-function via the <a class="reference" href="api/public/psycopg2.extensions-module.html#register_adapter"><tt class="docutils literal"><span class="pre">register_adapter()</span></tt></a> function.  The adapter function must take
-the value to be adapted as argument and return a conform object.  A convenient
-object is the <a class="reference" href="api/private/psycopg2._psycopg-module.html#AsIs"><tt class="docutils literal"><span class="pre">AsIs</span></tt></a> wrapper, whose <tt class="docutils literal"><span class="pre">getquoted()</span></tt> result is simply the
-<tt class="docutils literal"><span class="pre">str()</span></tt>ingification of the wrapped object.</p>
-<p>Example: mapping of a <tt class="docutils literal"><span class="pre">Point</span></tt> class into the <tt class="docutils literal"><span class="pre">point</span></tt> PostgreSQL geometric
-type:</p>
-<pre class="literal-block">
-from psycopg2.extensions import adapt, register_adapter, AsIs
-
-class Point(object):
-    def __init__(self, x=0.0, y=0.0):
-        self.x = x
-        self.y = y
-
-def adapt_point(point):
-    return AsIs(&quot;'(%s,%s)'&quot; % (adapt(point.x), adapt(point.y)))
-    
-register_adapter(Point, adapt_point)
-
-curs.execute(&quot;INSERT INTO atable (apoint) VALUES (%s)&quot;, 
-             (Point(1.23, 4.56),))
-</pre>
-<p>The above function call results in the SQL command:</p>
-<pre class="literal-block">
-INSERT INTO atable (apoint) VALUES ((1.23, 4.56));
-</pre>
-</div>
-</div>
-<div class="section" id="type-casting-of-sql-types-into-python-values">
-<h1><a name="type-casting-of-sql-types-into-python-values">Type casting of SQL types into Python values</a></h1>
-<p>PostgreSQL objects read from the database can be adapted to Python objects
-through an user-defined adapting function.  An adapter function takes two
-argments: the object string representation as returned by PostgreSQL and the
-cursor currently being read, and should return a new Python object.  For
-example, the following function parses a PostgreSQL <tt class="docutils literal"><span class="pre">point</span></tt> into the
-previously defined <tt class="docutils literal"><span class="pre">Point</span></tt> class:</p>
-<pre class="literal-block">
-def cast_point(value, curs):
-    if value is not None:
-            # Convert from (f1, f2) syntax using a regular expression.
-        m = re.match(&quot;\((.*),(.*)\)&quot;, value) 
-        if m:
-            return Point(float(m.group(1)), float(m.group(2)))
-</pre>
-<p>To create a mapping from the PostgreSQL type (either standard or user-defined),
-its <tt class="docutils literal"><span class="pre">oid</span></tt> must be known. It can be retrieved either by the second column of
-the cursor description:</p>
-<pre class="literal-block">
-curs.execute(&quot;SELECT NULL::point&quot;)
-point_oid = curs.description[0][1]   # usually returns 600
-</pre>
-<p>or by querying the system catalogs for the type name and namespace (the
-namespace for system objects is <tt class="docutils literal"><span class="pre">pg_catalog</span></tt>):</p>
-<pre class="literal-block">
-curs.execute(&quot;&quot;&quot;
-    SELECT pg_type.oid
-      FROM pg_type JOIN pg_namespace
-             ON typnamespace = pg_namespace.oid
-     WHERE typname = %(typename)s
-       AND nspname = %(namespace)s&quot;&quot;&quot;,
-            {'typename': 'point', 'namespace': 'pg_catalog'})
-    
-point_oid = curs.fetchone()[0]
-</pre>
-<p>After you know the object <tt class="docutils literal"><span class="pre">oid</span></tt>, you must can and register the new type:</p>
-<pre class="literal-block">
-POINT = psycopg2.extensions.new_type((point_oid,), &quot;POINT&quot;, cast_point)
-psycopg2.extensions.register_type(POINT)
-</pre>
-<p>The <a class="reference" href="api/private/psycopg2._psycopg-module.html#new_type"><tt class="docutils literal"><span class="pre">new_type()</span></tt></a> function binds the object oids (more than one can be
-specified) to the adapter function.  <a class="reference" href="api/private/psycopg2._psycopg-module.html#register_type"><tt class="docutils literal"><span class="pre">register_type()</span></tt></a> completes the spell.
-Conversion is automatically performed when a column whose type is a registered
-<tt class="docutils literal"><span class="pre">oid</span></tt> is read:</p>
-<pre class="literal-block">
-curs.execute(&quot;SELECT '(10.2,20.3)'::point&quot;)
-point = curs.fetchone()[0]
-print type(point), point.x, point.y
-# Prints: &quot;&lt;class '__main__.Point'&gt; 10.2 20.3&quot;
-</pre>
-</div>
-<div class="section" id="working-with-times-and-dates">
-<h1><a name="working-with-times-and-dates">Working with times and dates</a></h1>
-</div>
-<div class="section" id="receiving-notifys">
-<h1><a name="receiving-notifys">Receiving NOTIFYs</a></h1>
-</div>
-<div class="section" id="using-copy-to-and-copy-from">
-<h1><a name="using-copy-to-and-copy-from">Using COPY TO and COPY FROM</a></h1>
-<p>psycopg2 <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html"><tt class="docutils literal"><span class="pre">cursor</span></tt></a> object provides an interface to the efficient <a class="reference" href="http://www.postgresql.org/docs/8.1/static/sql-copy.html">PostgreSQL
-COPY command</a> to move data from files to tables and back.</p>
-<p>The <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#copy_to"><tt class="docutils literal"><span class="pre">.copy_to(file,</span> <span class="pre">table)</span></tt></a> method writes the content of the table
-named <tt class="docutils literal"><span class="pre">table</span></tt> <em>to</em> the file-like object <tt class="docutils literal"><span class="pre">file</span></tt>. <tt class="docutils literal"><span class="pre">file</span></tt> must have a
-<tt class="docutils literal"><span class="pre">write()</span></tt> method.</p>
-<p>The <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#copy_from"><tt class="docutils literal"><span class="pre">.copy_from(file,</span> <span class="pre">table)</span></tt></a> reads data <em>from</em> the file-like object
-<tt class="docutils literal"><span class="pre">file</span></tt> appending them to the table named <tt class="docutils literal"><span class="pre">table</span></tt>. <tt class="docutils literal"><span class="pre">file</span></tt> must have both
-<tt class="docutils literal"><span class="pre">read()</span></tt> and <tt class="docutils literal"><span class="pre">readline()</span></tt> method.</p>
-<p>Both methods accept two optional arguments: <tt class="docutils literal"><span class="pre">sep</span></tt> (defaulting to a tab) is
-the columns separator and <tt class="docutils literal"><span class="pre">null</span></tt> (defaulting to <tt class="docutils literal"><span class="pre">\N</span></tt>) represents <tt class="docutils literal"><span class="pre">NULL</span></tt>
-values in the file.</p>
-</div>
-<div class="section" id="postgresql-status-message-and-executed-query">
-<h1><a name="postgresql-status-message-and-executed-query">PostgreSQL status message and executed query</a></h1>
-<p><a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html"><tt class="docutils literal"><span class="pre">cursor</span></tt></a> objects have two special fields related to the last executed query:</p>
-<blockquote>
-<ul class="simple">
-<li><a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#query"><tt class="docutils literal"><span class="pre">.query</span></tt></a> is the textual representation (str or unicode, depending on what
-was passed to <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> as first argument) of the query <em>after</em> argument
-binding and mogrification has been applied. To put it another way, <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#query"><tt class="docutils literal"><span class="pre">.query</span></tt></a>
-is the <em>exact</em> query that was sent to the PostgreSQL backend.</li>
-<li><a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#statusmessage"><tt class="docutils literal"><span class="pre">.statusmessage</span></tt></a> is the status message that the backend sent upon query
-execution. It usually contains the basic type of the query (SELECT,
-INSERT, UPDATE, ...) and some additional information like the number of
-rows updated and so on. Refer to the PostgreSQL manual for more
-information.</li>
-</ul>
-</blockquote>
-</div>
-</div>
-</body>
-</html>
diff --git a/psycopg2/doc/extensions.rst b/psycopg2/doc/extensions.rst
deleted file mode 100644 (file)
index 3bdc680..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-=======================================
- psycopg 2 extensions to the DBAPI 2.0
-=======================================
-
-This document is a short summary of the extensions built in psycopg 2.0.x over
-the standard `Python Database API Specification 2.0`__, usually called simply
-DBAPI-2.0 or even PEP-249.  Before reading on this document please make sure
-you already know how to program in Python using a DBAPI-2.0 compliant driver:
-basic concepts like opening a connection, executing queries and commiting or
-rolling back a transaction will not be explained but just used.
-
-.. __: http://www.python.org/peps/pep-0249.html
-
-Many objects and extension functions are defined in the `psycopg2.extensions`
-module.
-
-
-Connection and cursor factories
-===============================
-
-psycopg 2 exposes two new-style classes that can be sub-classed and expanded to
-adapt them to the needs of the programmer: `cursor` and `connection`.  The
-`connection` class is usually sub-classed only to provide an easy way to create
-customized cursors but other uses are possible. `cursor` is much more
-interesting, because it is the class where query building, execution and result
-type-casting into Python variables happens.
-
-An example of cursor subclass performing logging is::
-
-    import psycopg2
-    import psycopg2.extensions
-    import logging
-
-    class LoggingCursor(psycopg2.extensions.cursor):
-        def execute(self, sql, args=None):
-            logger = logging.getLogger('sql_debug')
-            logger.info(self.mogrify(sql, args))
-
-            try:
-                psycopg2.extensions.cursor.execute(self, sql, args)
-            except Exception, exc:
-                logger.error("%s: %s" % (exc.__class__.__name__, exc))
-                raise
-
-    conn = psycopg2.connect(DSN)
-    curs = conn.cursor(cursor_factory=LoggingCursor)
-    curs.execute("INSERT INTO mytable VALUES (%s, %s, %s);",
-                 (10, 20, 30))
-
-
-Row factories
--------------
-
-tzinfo factories
-----------------
-
-
-Setting transaction isolation levels
-====================================
-
-psycopg2 connection objects hold informations about the PostgreSQL `transaction
-isolation level`_.  The current transaction level can be read from the
-`.isolation_level` attribute.  The default isolation level is ``READ
-COMMITTED``.  A different isolation level con be set through the
-`.set_isolation_level()` method.  The level can be set to one of the following
-constants, defined in `psycopg2.extensions`:
-
-`ISOLATION_LEVEL_AUTOCOMMIT`
-    No transaction is started when command are issued and no
-    `.commit()`/`.rollback()` is required.  Some PostgreSQL command such as
-    ``CREATE DATABASE`` can't run into a transaction: to run such command use
-    `.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)`.
-    
-`ISOLATION_LEVEL_READ_COMMITTED`
-    This is the default value.  A new transaction is started at the first
-    `.execute()` command on a cursor and at each new `.execute()` after a
-    `.commit()` or a `.rollback()`.  The transaction runs in the PostgreSQL
-    ``READ COMMITTED`` isolation level.
-    
-`ISOLATION_LEVEL_SERIALIZABLE`
-    Transactions are run at a ``SERIALIZABLE`` isolation level.
-
-
-.. _transaction isolation level: 
-   http://www.postgresql.org/docs/8.1/static/transaction-iso.html
-
-
-Adaptation of Python values to SQL types
-========================================
-
-psycopg2 casts Python variables to SQL literals by type.  Standard Python types
-are already adapted to the proper SQL literal.
-
-Example: the Python function::
-
-    curs.execute("""INSERT INTO atable (anint, adate, astring)
-                     VALUES (%s, %s, %s)""",
-                 (10, datetime.date(2005, 11, 18), "O'Reilly"))
-
-is converted into the SQL command::
-
-    INSERT INTO atable (anint, adate, astring)
-     VALUES (10, '2005-11-18', 'O''Reilly');
-
-Named arguments are supported too with ``%(name)s`` placeholders. Notice that:
-
-  - The Python string operator ``%`` is not used: the `.execute()` function
-    accepts the values tuple or dictionary as second parameter.
-
-  - The variables placeholder must always be a ``%s``, even if a different
-    placeholder (such as a ``%d`` for an integer) may look more appropriate.
-
-  - For positional variables binding, the second argument must always be a
-    tuple, even if it contains a single variable.
-
-  - Only variable values should be bound via this method: it shouldn't be used
-    to set table or field names. For these elements, ordinary string formatting
-    should be used before running `.execute()`.
-
-
-Adapting new types
-------------------
-
-Any Python class or type can be adapted to an SQL string.  Adaptation mechanism
-is similar to the Object Adaptation proposed in the `PEP-246`_ and is exposed
-by the `adapt()` function.
-
-psycopg2 `.execute()` method adapts its ``vars`` arguments to the `ISQLQuote`
-protocol.  Objects that conform to this protocol expose a ``getquoted()`` method
-returning the SQL representation of the object as a string.
-
-The easiest way to adapt an object to an SQL string is to register an adapter
-function via the `register_adapter()` function.  The adapter function must take
-the value to be adapted as argument and return a conform object.  A convenient
-object is the `AsIs` wrapper, whose ``getquoted()`` result is simply the
-``str()``\ ingification of the wrapped object.
-
-Example: mapping of a ``Point`` class into the ``point`` PostgreSQL geometric
-type::
-
-    from psycopg2.extensions import adapt, register_adapter, AsIs
-    
-    class Point(object):
-        def __init__(self, x=0.0, y=0.0):
-            self.x = x
-            self.y = y
-    
-    def adapt_point(point):
-        return AsIs("'(%s,%s)'" % (adapt(point.x), adapt(point.y)))
-        
-    register_adapter(Point, adapt_point)
-    
-    curs.execute("INSERT INTO atable (apoint) VALUES (%s)", 
-                 (Point(1.23, 4.56),))
-
-The above function call results in the SQL command::
-
-    INSERT INTO atable (apoint) VALUES ((1.23, 4.56));
-
-
-.. _PEP-246: http://www.python.org/peps/pep-0246.html
-
-
-Type casting of SQL types into Python values
-============================================
-
-PostgreSQL objects read from the database can be adapted to Python objects
-through an user-defined adapting function.  An adapter function takes two
-argments: the object string representation as returned by PostgreSQL and the
-cursor currently being read, and should return a new Python object.  For
-example, the following function parses a PostgreSQL ``point`` into the
-previously defined ``Point`` class::
-
-    def cast_point(value, curs):
-        if value is not None:
-               # Convert from (f1, f2) syntax using a regular expression.
-            m = re.match("\((.*),(.*)\)", value) 
-            if m:
-                return Point(float(m.group(1)), float(m.group(2)))
-                
-To create a mapping from the PostgreSQL type (either standard or user-defined),
-its ``oid`` must be known. It can be retrieved either by the second column of
-the cursor description::
-
-    curs.execute("SELECT NULL::point")
-    point_oid = curs.description[0][1]   # usually returns 600
-
-or by querying the system catalogs for the type name and namespace (the
-namespace for system objects is ``pg_catalog``)::
-
-    curs.execute("""
-        SELECT pg_type.oid
-          FROM pg_type JOIN pg_namespace
-                 ON typnamespace = pg_namespace.oid
-         WHERE typname = %(typename)s
-           AND nspname = %(namespace)s""",
-                {'typename': 'point', 'namespace': 'pg_catalog'})
-        
-    point_oid = curs.fetchone()[0]
-
-After you know the object ``oid``, you must can and register the new type::
-
-    POINT = psycopg2.extensions.new_type((point_oid,), "POINT", cast_point)
-    psycopg2.extensions.register_type(POINT)
-
-The `new_type()` function binds the object oids (more than one can be
-specified) to the adapter function.  `register_type()` completes the spell.
-Conversion is automatically performed when a column whose type is a registered
-``oid`` is read::
-
-    curs.execute("SELECT '(10.2,20.3)'::point")
-    point = curs.fetchone()[0]
-    print type(point), point.x, point.y
-    # Prints: "<class '__main__.Point'> 10.2 20.3"
-
-
-Working with times and dates
-============================
-
-
-Receiving NOTIFYs
-=================
-
-
-Using COPY TO and COPY FROM
-===========================
-
-psycopg2 `cursor` object provides an interface to the efficient `PostgreSQL
-COPY command`__ to move data from files to tables and back.
-
-The `.copy_to(file, table)` method writes the content of the table
-named ``table`` *to* the file-like object ``file``. ``file`` must have a
-``write()`` method.
-
-The `.copy_from(file, table)` reads data *from* the file-like object
-``file`` appending them to the table named ``table``. ``file`` must have both
-``read()`` and ``readline()`` method.
-
-Both methods accept two optional arguments: ``sep`` (defaulting to a tab) is
-the columns separator and ``null`` (defaulting to ``\N``) represents ``NULL``
-values in the file.
-
-.. __: http://www.postgresql.org/docs/8.1/static/sql-copy.html
-
-
-PostgreSQL status message and executed query
-============================================
-
-`cursor` objects have two special fields related to the last executed query:
-
-  - `.query` is the textual representation (str or unicode, depending on what
-    was passed to `.execute()` as first argument) of the query *after* argument
-    binding and mogrification has been applied. To put it another way, `.query`
-    is the *exact* query that was sent to the PostgreSQL backend.
-    
-  - `.statusmessage` is the status message that the backend sent upon query
-    execution. It usually contains the basic type of the query (SELECT,
-    INSERT, UPDATE, ...) and some additional information like the number of
-    rows updated and so on. Refer to the PostgreSQL manual for more
-    information.
diff --git a/psycopg2/examples/binary.py b/psycopg2/examples/binary.py
deleted file mode 100644 (file)
index eaa8f1e..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-# binary.py - working with binary data
-#
-# Copyright (C) 2001-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys
-import psycopg2
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-curs = conn.cursor()
-try:
-    curs.execute("CREATE TABLE test_binary (id int4, name text, img bytea)")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_binary")
-    curs.execute("CREATE TABLE test_binary (id int4, name text, img bytea)")
-conn.commit()
-
-# first we try two inserts, one with an explicit Binary call and the other
-# using a buffer on a file object.
-
-data1 = {'id':1, 'name':'somehackers.jpg',
-         'img':psycopg2.Binary(open('somehackers.jpg').read())}
-data2 = {'id':2, 'name':'whereareyou.jpg',
-         'img':buffer(open('whereareyou.jpg').read())}
-
-curs.execute("""INSERT INTO test_binary
-                  VALUES (%(id)s, %(name)s, %(img)s)""", data1)
-curs.execute("""INSERT INTO test_binary
-                  VALUES (%(id)s, %(name)s, %(img)s)""", data2)
-
-# now we try to extract the images as simple text strings
-
-print "Extracting the images as strings..."
-curs.execute("SELECT * FROM test_binary")
-
-for row in curs.fetchall():
-    name, ext = row[1].split('.')
-    new_name = name + '_S.' + ext
-    print "  writing %s to %s ..." % (name+'.'+ext, new_name),
-    open(new_name, 'wb').write(row[2])
-    print "done"
-    print "  python type of image data is", type(row[2])
-    
-# extract exactly the same data but using a binary cursor
-
-print "Extracting the images using a binary cursor:"
-
-curs.execute("""DECLARE zot CURSOR FOR
-                  SELECT img, name FROM test_binary FOR READ ONLY""")
-curs.execute("""FETCH ALL FROM zot""")
-
-for row in curs.fetchall():
-    name, ext = row[1].split('.')
-    new_name = name + '_B.' + ext
-    print "  writing %s to %s ..." % (name+'.'+ext, new_name),
-    open(new_name, 'wb').write(row[0])
-    print "done"
-    print "  python type of image data is", type(row[0])
-    
-# this rollback is requires because we can't drop a table with a binary cusor
-# declared and still open
-conn.rollback()
-
-curs.execute("DROP TABLE test_binary")
-conn.commit()
-
-print "\nNow try to load the new images, to check it worked!"
diff --git a/psycopg2/examples/copy_from.py b/psycopg2/examples/copy_from.py
deleted file mode 100644 (file)
index edd3294..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-# copy_from.py -- example about copy_from 
-#
-# Copyright (C) 2002 Tom Jenkins <tjenkins@devis.com>
-# Copyright (C) 2005 Federico Di Gregorio <fog@initd.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-#
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys
-import os
-import StringIO
-import psycopg2
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-curs = conn.cursor()
-try:
-    curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_copy")
-    curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
-conn.commit()
-
-# copy_from with default arguments, from open file
-
-io = open('copy_from.txt', 'wr')
-data = ['Tom\tJenkins\t37\n',
-        'Madonna\t\N\t45\n',
-        'Federico\tDi Gregorio\t\N\n']
-io.writelines(data)
-io.close()
-
-io = open('copy_from.txt', 'r')
-curs.copy_from(io, 'test_copy')
-print "1) Copy %d records from file object " % len(data) + \
-      "using defaults (sep: \\t and null = \\N)"
-io.close()
-
-curs.execute("SELECT * FROM test_copy")
-rows = curs.fetchall()
-print "   Select returned %d rows" % len(rows)
-
-for r in rows:
-    print "    %s %s\t%s" % (r[0], r[1], r[2])
-curs.execute("delete from test_copy")
-conn.commit()
-
-# copy_from using custom separator, from open file
-
-io = open('copy_from.txt', 'wr')
-data = ['Tom:Jenkins:37\n',
-        'Madonna:\N:45\n',
-        'Federico:Di Gregorio:\N\n']
-io.writelines(data)
-io.close()
-
-io = open('copy_from.txt', 'r')
-curs.copy_from(io, 'test_copy', ':')
-print "2) Copy %d records from file object using sep = :" % len(data)
-io.close()
-
-curs.execute("SELECT * FROM test_copy")
-rows = curs.fetchall()
-print "   Select returned %d rows" % len(rows)
-
-for r in rows:
-    print "    %s %s\t%s" % (r[0], r[1], r[2])
-curs.execute("delete from test_copy")
-conn.commit()
-
-# copy_from using custom null identifier, from open file
-
-io = open('copy_from.txt', 'wr')
-data = ['Tom\tJenkins\t37\n',
-        'Madonna\tNULL\t45\n',
-        'Federico\tDi Gregorio\tNULL\n']
-io.writelines(data)
-io.close()
-
-io = open('copy_from.txt', 'r')
-curs.copy_from(io, 'test_copy', null='NULL')
-print "3) Copy %d records from file object using null = NULL" % len(data)
-io.close()
-
-curs.execute("SELECT * FROM test_copy")
-rows = curs.fetchall()
-print "   Select using cursor returned %d rows" % len(rows)
-
-for r in rows:
-    print "    %s %s\t%s" % (r[0], r[1], r[2])
-curs.execute("delete from test_copy")
-conn.commit()
-
-# copy_from using custom separator and null identifier
-
-io = open('copy_from.txt', 'wr')
-data = ['Tom:Jenkins:37\n', 'Madonna:NULL:45\n', 'Federico:Di Gregorio:NULL\n']
-io.writelines(data)
-io.close()
-
-io = open('copy_from.txt', 'r')
-curs.copy_from(io, 'test_copy', ':', 'NULL')
-print "4) Copy %d records from file object " % len(data) + \
-      "using sep = : and null = NULL"
-io.close()
-
-curs.execute("SELECT * FROM test_copy")
-rows = curs.fetchall()
-print "   Select using cursor returned %d rows" % len(rows)
-
-for r in rows:
-    print "    %s %s\t%s" % (r[0], r[1], r[2])
-curs.execute("delete from test_copy")
-conn.commit()
-
-# anything can be used as a file if it has .read() and .readline() methods
-
-data = StringIO.StringIO()
-data.write('\n'.join(['Tom\tJenkins\t37',
-                      'Madonna\t\N\t45',
-                      'Federico\tDi Gregorio\t\N']))
-data.seek(0)
-
-curs.copy_from(data, 'test_copy')
-print "5) Copy 3 records from StringIO object using defaults"
-
-curs.execute("SELECT * FROM test_copy")
-rows = curs.fetchall()
-print "   Select using cursor returned %d rows" % len(rows)
-
-for r in rows:
-    print "    %s %s\t%s" % (r[0], r[1], r[2])
-curs.execute("delete from test_copy")
-conn.commit()
-
-# simple error test
-
-print "6) About to raise an error"
-data = StringIO.StringIO()
-data.write('\n'.join(['Tom\tJenkins\t37',
-                      'Madonna\t\N\t45',
-                      'Federico\tDi Gregorio\taaa']))
-data.seek(0)
-
-try:
-    curs.copy_from(data, 'test_copy')
-except StandardError, err:
-    conn.rollback()
-    print "   Catched error (as expected):\n", err
-
-conn.rollback()
-
-curs.execute("DROP TABLE test_copy")
-os.unlink('copy_from.txt')
-conn.commit()
-
-
-
diff --git a/psycopg2/examples/copy_to.py b/psycopg2/examples/copy_to.py
deleted file mode 100644 (file)
index 5570fbc..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-# copy_to.py -- example about copy_to 
-#
-# Copyright (C) 2002 Tom Jenkins <tjenkins@devis.com>
-# Copyright (C) 2005 Federico Di Gregorio <fog@initd.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-#
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys
-import os
-import StringIO
-import psycopg2
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-curs = conn.cursor()
-try:
-    curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_copy")
-    curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
-conn.commit()
-
-# demostrate copy_to functionality
-data = [('Tom', 'Jenkins', '37'),
-        ('Madonna', None, '45'),
-        ('Federico', 'Di Gregorio', None)]
-query = "INSERT INTO test_copy VALUES (%s, %s, %s)"
-curs.executemany(query, data)
-conn.commit()
-
-# copy_to using defaults
-io = open('copy_to.txt', 'w')
-curs.copy_to(io, 'test_copy')
-print "1) Copy %d records into file object using defaults: " % len (data) + \
-      "sep = \\t and null = \\N"
-io.close()
-
-rows = open('copy_to.txt', 'r').readlines()
-print "   File has %d rows:" % len(rows)
-
-for r in rows:
-    print "   ", r,
-
-# copy_to using custom separator
-io = open('copy_to.txt', 'w')
-curs.copy_to(io, 'test_copy', ':')
-print "2) Copy %d records into file object using sep = :" % len(data)
-io.close()
-
-rows = open('copy_to.txt', 'r').readlines()
-print "   File has %d rows:" % len(rows)
-
-for r in rows:
-    print "   ", r,
-
-# copy_to using custom null identifier
-io = open('copy_to.txt', 'w')
-curs.copy_to(io, 'test_copy', null='NULL')
-print "3) Copy %d records into file object using null = NULL" % len(data)
-io.close()
-
-rows = open('copy_to.txt', 'r').readlines()
-print "   File has %d rows:" % len(rows)
-
-for r in rows:
-    print "   ", r,
-
-# copy_to using custom separator and null identifier
-io = open('copy_to.txt', 'w')
-curs.copy_to(io, 'test_copy', ':', 'NULL')
-print "4) Copy %d records into file object using sep = : and null ) NULL" % \
-      len(data)
-io.close()
-
-rows = open('copy_to.txt', 'r').readlines()
-print "   File has %d rows:" % len(rows)
-
-for r in rows:
-    print "   ", r,
-
-curs.execute("DROP TABLE test_copy")
-os.unlink('copy_to.txt')
-conn.commit()
diff --git a/psycopg2/examples/cursor.py b/psycopg2/examples/cursor.py
deleted file mode 100644 (file)
index 54cb5e7..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# cursor.py - how to subclass the cursor type
-#
-# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below this line (except for experimenting)
-
-import sys
-import psycopg2
-import psycopg2.extensions
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dsn:", DSN
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-
-class NoDataError(psycopg2.ProgrammingError):
-    """Exception that will be raised by our cursor."""
-    pass
-
-class Cursor(psycopg2.extensions.cursor):
-    """A custom cursor."""
-
-    def fetchone(self):
-        """Like fetchone but raise an exception if no data is available.
-
-        Note that to have .fetchmany() and .fetchall() to raise the same
-        exception we'll have to override them too; even if internally psycopg
-        uses the same function to fetch rows, the code path from Python is
-        different.
-        """
-        d = psycopg2.extensions.cursor.fetchone(self)
-        if d is None:
-           raise NoDataError("no more data")
-        return d
-    
-curs = conn.cursor(cursor_factory=Cursor)
-curs.execute("SELECT 1 AS foo")
-print "Result of fetchone():", curs.fetchone()
-
-# now let's raise the exception
-try:
-    curs.fetchone()
-except NoDataError, err:
-    print "Exception caugth:", err  
-
-conn.rollback()
diff --git a/psycopg2/examples/dialtone.py b/psycopg2/examples/dialtone.py
deleted file mode 100644 (file)
index 3a55686..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-"""
-This example/recipe has been contributed by Valentino Volonghi (dialtone)
-
-Mapping arbitrary objects to a PostgreSQL database with psycopg2
-
-- Problem
-
-You need to store arbitrary objects in a PostgreSQL database without being
-intrusive for your classes (don't want inheritance from an 'Item' or 
-'Persistent' object).
-
-- Solution
-"""
-
-from datetime import datetime
-import psycopg2
-from psycopg2.extensions import adapt, register_adapter
-
-try:
-    sorted()
-except:
-    def sorted(seq):
-        seq.sort()
-        return seq
-
-# Here is the adapter for every object that we may ever need to 
-# insert in the database. It receives the original object and does
-# its job on that instance
-
-class ObjectMapper(object):
-    def __init__(self, orig, curs=None):
-        self.orig = orig
-        self.tmp = {}
-        self.items, self.fields = self._gatherState()
-    def _gatherState(self):
-        adaptee_name = self.orig.__class__.__name__
-        fields = sorted([(field, getattr(self.orig, field))
-                        for field in persistent_fields[adaptee_name]])
-        items = []
-        for item, value in fields:
-            items.append(item)
-        return items, fields
-    def getTableName(self):
-        return self.orig.__class__.__name__
-    def getMappedValues(self):
-        tmp = []
-        for i in self.items:
-            tmp.append("%%(%s)s"%i)
-        return ", ".join(tmp)
-    def getValuesDict(self):
-        return dict(self.fields)
-    def getFields(self):
-        return self.items
-
-    def generateInsert(self):
-        qry = "INSERT INTO"
-        qry += " " + self.getTableName() + " ("
-        qry += ", ".join(self.getFields()) + ") VALUES ("
-        qry += self.getMappedValues() + ")"
-        return qry, self.getValuesDict()
-
-# Here are the objects
-class Album(object):    
-    id = 0 
-    def __init__(self):
-        self.creation_time = datetime.now()
-        self.album_id = self.id
-        Album.id = Album.id + 1
-        self.binary_data = buffer('12312312312121')
-class Order(object):
-     id = 0
-     def __init__(self):
-        self.items = ['rice','chocolate']
-        self.price = 34
-        self.order_id = self.id
-        Order.id = Order.id + 1
-
-register_adapter(Album, ObjectMapper)
-register_adapter(Order, ObjectMapper)
-    
-# Describe what is needed to save on each object
-# This is actually just configuration, you can use xml with a parser if you
-# like to have plenty of wasted CPU cycles ;P.
-
-persistent_fields = {'Album': ['album_id', 'creation_time', 'binary_data'],
-                              'Order':  ['order_id', 'items', 'price']
-                            }
-print adapt(Album()).generateInsert()
-print adapt(Album()).generateInsert()
-print adapt(Album()).generateInsert()
-print adapt(Order()).generateInsert()
-print adapt(Order()).generateInsert()
-print adapt(Order()).generateInsert()
-
-"""
-- Discussion
-
-Psycopg 2 has a great new feature: adaptation. The big thing about 
-adaptation is that it enable the programmer to glue most of the 
-code out there without many difficulties.
-
-This recipe tries to focus the attention on a way to generate SQL queries to 
-insert  completely new objects inside a database. As you can see objects do 
-not know anything about the code that is handling them. We specify all the 
-fields that we need for each object through the persistent_fields dict.
-
-The most important lines of this recipe are:
-    register_adapter(Album, ObjectMapper)
-    register_adapter(Order, ObjectMapper)
-
-In these line we notify the system that when we call adapt with an Album instance 
-as an argument we want it to istantiate ObjectMapper passing the Album instance  
-as argument (self.orig in the ObjectMapper class).
-
-The output is something like this (for each call to generateInsert):
-    
-('INSERT INTO Album (album_id, binary_data, creation_time) VALUES 
-   (%(album_id)s, %(binary_data)s, %(creation_time)s)', 
-      
-  {'binary_data': <read-only buffer for 0x402de070, ...>, 
-    'creation_time':   datetime.datetime(2004, 9, 10, 20, 48, 29, 633728), 
-    'album_id': 1}
-)
-
-This is a tuple of {SQL_QUERY, FILLING_DICT}, and all the quoting/converting 
-stuff (from python's datetime to postgres s and from python's buffer to 
-postgres' blob) is handled with the same adaptation process hunder the hood 
-by psycopg2.
-
-At last, just notice that ObjectMapper is working for both Album and Order 
-instances without any glitches at all, and both classes could have easily been 
-coming from closed source libraries or C coded ones (which are not easily 
-modified), whereas a common pattern in todays ORMs or OODBs is to provide 
-a basic 'Persistent' object that already knows how to store itself in the 
-database.
-"""
diff --git a/psycopg2/examples/dict.py b/psycopg2/examples/dict.py
deleted file mode 100644 (file)
index 37dc74a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# dict.py - using DictCUrsor/DictRow
-#
-# Copyright (C) 2005 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below this line (except for experimenting)
-
-import sys
-import psycopg2
-import psycopg2.extras
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dsn:", DSN
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-    
-curs = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
-curs.execute("SELECT 1 AS foo, 'cip' AS bar, date(now()) as zot")
-
-data = curs.fetchone()
-print "Some data accessed both as tuple and dict:"
-print " ", data['foo'], data['bar'], data['zot']
-print " ", data[0], data[1], data[2]
-
-# execute another query and demostrate we can still access the row
-curs.execute("SELECT 2 AS foo")
-print "Some more data accessed both as tuple and dict:"
-print " ", data['foo'], data['bar'], data['zot']
-print " ", data[0], data[1], data[2]
diff --git a/psycopg2/examples/dt.py b/psycopg2/examples/dt.py
deleted file mode 100644 (file)
index 76f0c78..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-# datetime.py -  example of using date and time types
-#
-# Copyright (C) 2001-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys
-import psycopg2
-import mx.DateTime
-import datetime
-
-from psycopg2.extensions import adapt
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-curs = conn.cursor()
-
-try:
-    curs.execute("""CREATE TABLE test_dt (
-                     k int4, d date, t time, dt timestamp, z interval)""")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_dt")
-    curs.execute("""CREATE TABLE test_dt (
-                     k int4, d date, t time, dt timestamp, z interval)""")
-conn.commit()
-
-# build and insert some data using mx.DateTime
-mx1 = (
-    1,
-    mx.DateTime.Date(2004, 10, 19),
-    mx.DateTime.Time(0, 11, 17.015),
-    mx.DateTime.Timestamp(2004, 10, 19, 0, 11, 17.5),
-    mx.DateTime.DateTimeDelta(13, 15, 17, 59.9))
-
-from psycopg2.extensions import adapt
-import psycopg2.extras
-print adapt(mx1)
-
-print "Inserting mx.DateTime values..."
-curs.execute("INSERT INTO test_dt VALUES (%s, %s, %s, %s, %s)", mx1)
-
-# build and insert some values using the datetime adapters
-dt1 = (
-    2,
-    datetime.date(2004, 10, 19),
-    datetime.time(0, 11, 17, 15000),
-    datetime.datetime(2004, 10, 19, 0, 11, 17, 500000),
-    datetime.timedelta(13, 15*3600+17*60+59, 900000))
-
-print "Inserting Python datetime values..."
-curs.execute("INSERT INTO test_dt VALUES (%s, %s, %s, %s, %s)", dt1)
-
-# now extract the row from database and print them
-print "Extracting values inserted with mx.DateTime wrappers:"
-curs.execute("SELECT d, t, dt, z FROM test_dt WHERE k = 1")
-for n, x in zip(mx1[1:], curs.fetchone()):
-    try:
-        # this will work only is psycopg has been compiled with datetime
-        # as the default typecaster for date/time values
-        s = repr(n) + "\n -> " + str(adapt(n)) + \
-            "\n -> " + repr(x) + "\n -> " + x.isoformat()
-    except:
-        s = repr(n) + "\n -> " + str(adapt(n))  + \
-            "\n -> " + repr(x) + "\n -> " + str(x)
-    print s
-print
-
-print "Extracting values inserted with Python datetime wrappers:"
-curs.execute("SELECT d, t, dt, z FROM test_dt WHERE k = 2")
-for n, x in zip(dt1[1:], curs.fetchone()):
-    try:
-        # this will work only is psycopg has been compiled with datetime
-        # as the default typecaster for date/time values
-        s = repr(n) + "\n -> " +  repr(x) + "\n -> " + x.isoformat()
-    except:
-        s = repr(n) + "\n -> " +  repr(x) + "\n -> " + str(x)
-    print s
-print
-
-curs.execute("DROP TABLE test_dt")
-conn.commit()
diff --git a/psycopg2/examples/encoding.py b/psycopg2/examples/encoding.py
deleted file mode 100644 (file)
index da57bcf..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-# enkoding.py - show to change client enkoding (and test it works)
-# -*- encoding: utf8 -*-
-#
-# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below this line (except for experimenting)
-
-import sys
-import psycopg2
-import psycopg2.extensions
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-print "Initial encoding for this connection is", conn.encoding
-
-print "\n** This example is supposed to be run in a UNICODE terminal! **\n"
-
-print "Available encodings:"
-encs = psycopg2.extensions.encodings.items()
-encs.sort()
-for a, b in encs:
-    print " ", a, "<->", b
-
-print "Using STRING typecaster"    
-print "Setting backend encoding to LATIN1 and executing queries:"
-conn.set_client_encoding('LATIN1')
-curs = conn.cursor()
-curs.execute("SELECT %s::TEXT AS foo", ('àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", unicode(x, 'latin-1').encode('utf-8'), type(x)
-curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", unicode(x, 'latin-1').encode('utf-8'), type(x)
-
-print "Setting backend encoding to UTF8 and executing queries:"
-conn.set_client_encoding('UNICODE')
-curs = conn.cursor()
-curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù'.encode('utf-8'),))
-x = curs.fetchone()[0]
-print "  ->", x, type(x)
-curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", x, type(x)
-
-print "Using UNICODE typecaster"
-psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
-
-print "Setting backend encoding to LATIN1 and executing queries:"
-conn.set_client_encoding('LATIN1')
-curs = conn.cursor()
-curs.execute("SELECT %s::TEXT AS foo", ('àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", x.encode('utf-8'), ":", type(x)
-curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", x.encode('utf-8'), ":", type(x)
-
-print "Setting backend encoding to UTF8 and executing queries:"
-conn.set_client_encoding('UNICODE')
-curs = conn.cursor()
-curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù'.encode('utf-8'),))
-x = curs.fetchone()[0]
-print "  ->", x.encode('utf-8'), ":", type(x)
-curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", x.encode('utf-8'), ":", type(x)
-
-print "Executing full UNICODE queries"
-
-print "Setting backend encoding to LATIN1 and executing queries:"
-conn.set_client_encoding('LATIN1')
-curs = conn.cursor()
-curs.execute(u"SELECT %s::TEXT AS foo", ('àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", x.encode('utf-8'), ":", type(x)
-curs.execute(u"SELECT %s::TEXT AS foo", (u'àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", x.encode('utf-8'), ":", type(x)
-
-print "Setting backend encoding to UTF8 and executing queries:"
-conn.set_client_encoding('UNICODE')
-curs = conn.cursor()
-curs.execute(u"SELECT %s::TEXT AS foo", (u'àèìòù'.encode('utf-8'),))
-x = curs.fetchone()[0]
-print "  ->", x.encode('utf-8'), ":", type(x)
-curs.execute(u"SELECT %s::TEXT AS foo", (u'àèìòù',))
-x = curs.fetchone()[0]
-print "  ->", x.encode('utf-8'), ":", type(x)
diff --git a/psycopg2/examples/fetch.py b/psycopg2/examples/fetch.py
deleted file mode 100644 (file)
index dab0a41..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# fetch.py -- example about declaring cursors
-#
-# Copyright (C) 2001-2005 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-#
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys
-import psycopg2
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-curs = conn.cursor()
-try:
-    curs.execute("CREATE TABLE test_fetch (val int4)")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_fetch")
-    curs.execute("CREATE TABLE test_fetch (val int4)")
-conn.commit()
-
-# we use this function to format the output
-
-def flatten(l):
-    """Flattens list of tuples l."""
-    return map(lambda x: x[0], l)
-
-# insert 20 rows in the table
-
-for i in range(20):
-    curs.execute("INSERT INTO test_fetch VALUES(%s)", (i,))
-conn.commit()
-
-# does some nice tricks with the transaction and postgres cursors
-# (remember to always commit or rollback before a DECLARE)
-#
-# we don't need to DECLARE ourselves, psycopg now support named
-# cursors (but we leave the code here, comments, as an example of
-# what psycopg is doing under the hood)
-#
-#curs.execute("DECLARE crs CURSOR FOR SELECT * FROM test_fetch")
-#curs.execute("FETCH 10 FROM crs")
-#print "First 10 rows:", flatten(curs.fetchall())
-#curs.execute("MOVE -5 FROM crs")
-#print "Moved back cursor by 5 rows (to row 5.)"
-#curs.execute("FETCH 10 FROM crs")
-#print "Another 10 rows:", flatten(curs.fetchall())
-#curs.execute("FETCH 10 FROM crs")
-#print "The remaining rows:", flatten(curs.fetchall())
-
-ncurs = conn.cursor("crs")
-ncurs.execute("SELECT * FROM test_fetch")
-print "First 10 rows:", flatten(ncurs.fetchmany(10))
-ncurs.scroll(-5)
-print "Moved back cursor by 5 rows (to row 5.)"
-print "Another 10 rows:", flatten(ncurs.fetchmany(10))
-print "Another one:", list(ncurs.fetchone())
-print "The remaining rows:", flatten(ncurs.fetchall())
-conn.rollback()
-
-curs.execute("DROP TABLE test_fetch")
-conn.commit()
diff --git a/psycopg2/examples/lastrowid.py b/psycopg2/examples/lastrowid.py
deleted file mode 100644 (file)
index 205ef6c..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-# lastrowid.py -  example of using .lastrowid attribute
-#
-# Copyright (C) 2001-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys, psycopg2
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-curs = conn.cursor()
-
-try:
-    curs.execute("CREATE TABLE test_oid (name text, surname text)")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_oid")
-    curs.execute("CREATE TABLE test_oid (name text, surname text)")
-conn.commit()
-
-data = ({'name':'Federico', 'surname':'Di Gregorio'},
-        {'name':'Pierluigi', 'surname':'Di Nunzio'})
-
-curs.execute("""INSERT INTO test_oid
-                VALUES (%(name)s, %(surname)s)""", data[0])
-
-foid = curs.lastrowid
-print "Oid for %(name)s %(surname)s" % data[0], "is", foid
-
-curs.execute("""INSERT INTO test_oid
-                VALUES (%(name)s, %(surname)s)""", data[1])
-moid = curs.lastrowid
-print "Oid for %(name)s %(surname)s" % data[1], "is", moid
-
-curs.execute("SELECT * FROM test_oid WHERE oid = %s", (foid,))
-print "Oid", foid, "selected %s %s" % curs.fetchone()
-
-curs.execute("SELECT * FROM test_oid WHERE oid = %s", (moid,))
-print "Oid", moid, "selected %s %s" % curs.fetchone()
-
-curs.execute("DROP TABLE test_oid")
-conn.commit()
diff --git a/psycopg2/examples/mogrify.py b/psycopg2/examples/mogrify.py
deleted file mode 100644 (file)
index 480c491..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# mogrify.py - test all possible simple type mogrifications
-# -*- encoding: latin1 -*-
-#
-# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below this line (except for experimenting)
-
-import sys, psycopg2
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-curs = conn.cursor()
-curs.execute("SELECT %(foo)s AS foo", {'foo':'bar'})
-curs.execute("SELECT %(foo)s AS foo", {'foo':None})
-curs.execute("SELECT %(foo)s AS foo", {'foo':True})
-curs.execute("SELECT %(foo)s AS foo", {'foo':42})
-curs.execute("SELECT %(foo)s AS foo", {'foo':u'yatt�!'})
-curs.execute("SELECT %(foo)s AS foo", {'foo':u'bar'})
-
-print curs.mogrify("SELECT %(foo)s AS foo", {'foo':'bar'})
-print curs.mogrify("SELECT %(foo)s AS foo", {'foo':None})
-print curs.mogrify("SELECT %(foo)s AS foo", {'foo':True})
-print curs.mogrify("SELECT %(foo)s AS foo", {'foo':42})
-print curs.mogrify("SELECT %(foo)s AS foo", {'foo':u'yatt�!'})
-print curs.mogrify("SELECT %(foo)s AS foo", {'foo':u'bar'})
-
-conn.rollback()
diff --git a/psycopg2/examples/myfirstrecipe.py b/psycopg2/examples/myfirstrecipe.py
deleted file mode 100644 (file)
index 4ddc65e..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-"""
-Using a tuple as a bound variable in "SELECT ... IN (...)" clauses
-in PostgreSQL using psycopg 2
-
-Some time ago someone asked on the psycopg mailing list how to have a
-bound variable expand to the right SQL for an SELECT IN clause:
-
-    SELECT * FROM atable WHERE afield IN (value1, value2, value3)
-
-with the values to be used in the IN clause to be passed to the cursor
-.execute() method in a tuple as a bound variable, i.e.:
-
-    in_values = ("value1", "value2", "value3")
-    curs.execute("SELECT ... IN %s", (in_values,))
-
-psycopg 1 does support typecasting from Python to PostgreSQL (and back)
-only for simple types and this problem has no elegant solution (short or
-writing a wrapper class returning the pre-quoted text in an __str__
-method.
-
-But psycopg 2 offers a simple and elegant solution by partially
-implementing the Object Adaptation from PEP 246. psycopg 2 (still in
-beta and currently labeled as 1.99.9) moves the type-casting logic into
-external adapters and a somehow broken adapt() function.
-
-While the original adapt() takes 3 arguments, psycopg's one only takes
-1: the bound variable to be adapted. The result is an object supporting
-a not-yet well defined protocol that we can call IPsycopgSQLQuote:
-
-    class IPsycopgSQLQuote:
-
-        def getquoted(self):
-            "Returns a quoted string representing the bound variable."
-
-       def getbinary(self):
-           "Returns a binary quoted string representing the bound variable."
-           
-       def getbuffer(self):
-            "Returns the wrapped object itself."
-
-        __str__ = getquoted
-
-Then one of the functions (usually .getquoted()) is called by psycopg at
-the right time to obtain the right, sql-quoted representation for the
-corresponding bound variable.
-
-The nice part is that the default, built-in adapters, derived from
-psycopg 1 tyecasting code can be overridden by the programmer, simply
-replacing them in the psycopg.extensions.adapters dictionary.
-
-Then the solution to the original problem is now obvious: write an
-adapter that adapts tuple objects into the right SQL string, by calling
-recursively adapt() on each element.
-
-Note: psycopg 2 adapter code is still very young and will probably move
-to a more 'standard' (3 arguments) implementation for the adapt()
-function; as long as that does not slow down too much query execution.
-
-Psycopg 2 development can be tracked on the psycopg mailing list:
-
-   http://lists.initd.org/mailman/listinfo/psycopg
-
-and on the psycopg 2 wiki:
-
-   http://wiki.initd.org/Projects/Psycopg2
-
-"""
-
-import psycopg2
-import psycopg2.extensions
-from psycopg2.extensions import adapt as psycoadapt
-from psycopg2.extensions import register_adapter
-
-class AsIs(object):
-    """An adapter that just return the object 'as is'.
-
-    psycopg 1.99.9 has some optimizations that make impossible to call
-    adapt() without adding some basic adapters externally. This limitation
-    will be lifted in a future release.
-    """
-    def __init__(self, obj):
-        self.__obj = obj
-    def getquoted(self):
-        return self.__obj
-    
-class SQL_IN(object):
-    """Adapt a tuple to an SQL quotable object."""
-    
-    def __init__(self, seq):
-       self._seq = seq
-
-    def prepare(self, conn):
-        pass
-
-    def getquoted(self):
-        # this is the important line: note how every object in the
-        # list is adapted and then how getquoted() is called on it
-
-       qobjs = [str(psycoadapt(o).getquoted()) for o in self._seq]
-
-       return '(' + ', '.join(qobjs) + ')'
-       
-    __str__ = getquoted
-
-    
-# add our new adapter class to psycopg list of adapters
-register_adapter(tuple, SQL_IN)
-register_adapter(float, AsIs)
-register_adapter(int, AsIs)
-
-# usually we would call:
-#
-#     conn = psycopg.connect("...")
-#     curs = conn.cursor()
-#     curs.execute("SELECT ...", (("this", "is", "the", "tuple"),))
-#     
-# but we have no connection to a database right now, so we just check
-# the SQL_IN class by calling psycopg's adapt() directly:
-
-if __name__ == '__main__':
-    print "Note how the string will be SQL-quoted, but the number will not:"
-    print psycoadapt(("this is an 'sql quoted' str\\ing", 1, 2.0))
diff --git a/psycopg2/examples/notify.py b/psycopg2/examples/notify.py
deleted file mode 100644 (file)
index 83761b9..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# notify.py - example of getting notifies
-#
-# Copyright (C) 2001-2005 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys
-import psycopg2
-import select
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-conn.set_isolation_level(0)
-curs = conn.cursor()
-
-curs.execute("listen test")
-
-print "Waiting for 'NOTIFY test'"
-while 1:
-    if select.select([curs],[],[],5)==([],[],[]):
-        print "Timeout"
-    else:
-        if curs.isready():
-            print "Got NOTIFY: %s" % str(curs.connection.notifies.pop()) 
diff --git a/psycopg2/examples/simple.py b/psycopg2/examples/simple.py
deleted file mode 100644 (file)
index 2306be1..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# simple.py - very simple example of plain DBAPI-2.0 usage
-# currently used as test-me-stress-me script for psycopg 2.0
-#
-# Copyright (C) 2001-2003 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below this line (except for experimenting)
-
-class SimpleQuoter(object):
-    def sqlquote(x=None):
-        return "'bar'"
-
-import sys
-import psycopg2
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-print "Encoding for this connection is", conn.encoding
-
-curs = conn.cursor()
-curs.execute("SELECT 1 AS foo")
-print curs.fetchone()
-curs.execute("SELECT 1 AS foo")
-print curs.fetchmany()
-curs.execute("SELECT 1 AS foo")
-print curs.fetchall()
-
-conn.rollback()
-
-sys.exit(0)
-
-curs.execute("SELECT 1 AS foo", async=1)
-
-curs.execute("SELECT %(foo)s AS foo", {'foo':'bar'})
-curs.execute("SELECT %(foo)s AS foo", {'foo':None})
-curs.execute("SELECT %(foo)f AS foo", {'foo':42})
-curs.execute("SELECT %(foo)s AS foo", {'foo':SimpleQuoter()})
diff --git a/psycopg2/examples/somehackers.jpg b/psycopg2/examples/somehackers.jpg
deleted file mode 100644 (file)
index 8bb6e01..0000000
Binary files a/psycopg2/examples/somehackers.jpg and /dev/null differ
diff --git a/psycopg2/examples/threads.py b/psycopg2/examples/threads.py
deleted file mode 100644 (file)
index 5477aa8..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# threads.py -- example of multiple threads using psycopg
-# -*- encoding: latin1 -*-
-#
-# Copyright (C) 2001-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## some others parameters
-INSERT_THREADS = ('A', 'B', 'C')
-SELECT_THREADS = ('1', '2')
-
-ROWS = 1000
-
-COMMIT_STEP = 20
-SELECT_SIZE = 10000
-SELECT_STEP = 500
-SELECT_DIV  = 250
-
-# the available modes are:
-# 0 - one connection for all insert and one for all select threads
-# 1 - connections generated using the connection pool
-
-MODE = 1
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys, psycopg2, threading
-from psycopg2.pool import ThreadedConnectionPool
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-if len(sys.argv) > 2:
-    MODE = int(sys.argv[2])
-    
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-curs = conn.cursor()
-
-try:
-    curs.execute("""CREATE TABLE test_threads (
-                        name text, value1 int4, value2 float)""")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_threads")
-    curs.execute("""CREATE TABLE test_threads (
-                        name text, value1 int4, value2 float)""")
-conn.commit()
-
-
-## this function inserts a big number of rows and creates and destroys
-## a large number of cursors
-
-def insert_func(conn_or_pool, rows):
-    name = threading.currentThread().getName()
-
-    if MODE == 0:
-        conn = conn_or_pool
-    else:
-        conn = conn_or_pool.getconn()
-        
-    for i in range(rows):
-        if divmod(i, COMMIT_STEP)[1] == 0:
-            conn.commit()
-            if MODE == 1:
-                conn_or_pool.putconn(conn)
-            s = name + ": COMMIT STEP " + str(i)
-            print s
-            if MODE == 1:
-                conn = conn_or_pool.getconn()
-        c = conn.cursor()
-        try:
-            c.execute("INSERT INTO test_threads VALUES (%s, %s, %s)",
-                      (str(i), i, float(i)))
-        except psycopg2.ProgrammingError, err:
-            print name, ": an error occurred; skipping this insert"
-            print err
-    conn.commit()
-
-## a nice select function that prints the current number of rows in the
-## database (and transefer them, putting some pressure on the network)
-    
-def select_func(conn_or_pool, z):
-    name = threading.currentThread().getName()
-
-    if MODE == 0:
-        conn = conn_or_pool
-        conn.set_isolation_level(0)
-    
-    for i in range(SELECT_SIZE):
-        if divmod(i, SELECT_STEP)[1] == 0:
-            try:
-                if MODE == 1:
-                    conn = conn_or_pool.getconn()
-                    conn.set_isolation_level(0)
-                c = conn.cursor()
-                c.execute("SELECT * FROM test_threads WHERE value2 < %s",
-                          (int(i/z),))
-                l = c.fetchall()
-                if MODE == 1:
-                    conn_or_pool.putconn(conn)
-                s = name + ": number of rows fetched: " + str(len(l))
-                print s
-            except psycopg2.ProgrammingError, err:
-                print name, ": an error occurred; skipping this select"
-                print err
-
-## create the connection pool or the connections
-if MODE == 0:
-    conn_insert = psycopg2.connect(DSN)
-    conn_select = psycopg2.connect(DSN)
-else:
-    m = len(INSERT_THREADS) + len(SELECT_THREADS)
-    n = m/2
-    conn_insert = conn_select = ThreadedConnectionPool(n, m, DSN)
-    
-## create the threads
-threads = []
-
-print "Creating INSERT threads:"
-for name in INSERT_THREADS:
-    t = threading.Thread(None, insert_func, 'Thread-'+name,
-                         (conn_insert, ROWS))
-    t.setDaemon(0)
-    threads.append(t)
-
-print "Creating SELECT threads:"
-for name in SELECT_THREADS:
-    t = threading.Thread(None, select_func, 'Thread-'+name,
-                         (conn_select, SELECT_DIV))
-    t.setDaemon(0)
-    threads.append(t)
-
-## really start the threads now
-for t in threads:
-    t.start()
-
-# and wait for them to finish
-for t in threads:
-    t.join()
-    print t.getName(), "exited OK"
-
-
-conn.commit()
-curs.execute("SELECT count(name) FROM test_threads")
-print "Inserted", curs.fetchone()[0], "rows."
-
-curs.execute("DROP TABLE test_threads")
-conn.commit()
diff --git a/psycopg2/examples/tz.py b/psycopg2/examples/tz.py
deleted file mode 100644 (file)
index c27bf30..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-# tz.py - example of datetime objects with time zones
-# -*- encoding: utf8 -*-
-#
-# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below this line (except for experimenting)
-
-import sys
-import psycopg2
-import datetime
-
-from psycopg2.tz import ZERO, LOCAL, FixedOffsetTimezone
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-curs = conn.cursor()
-
-try:
-    curs.execute("CREATE TABLE test_tz (t timestamp with time zone)")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_tz")
-    curs.execute("CREATE TABLE test_tz (t timestamp with time zone)")
-conn.commit()
-
-d = datetime.datetime(1971, 10, 19, 22, 30, 0, tzinfo=LOCAL)
-curs.execute("INSERT INTO test_tz VALUES (%s)", (d,))
-print "Inserted timestamp with timezone:", d
-print "Time zone:", d.tzinfo.tzname(d), "offset:", d.tzinfo.utcoffset(d)
-
-tz = FixedOffsetTimezone(-5*60, "EST")
-d = datetime.datetime(1971, 10, 19, 22, 30, 0, tzinfo=tz)
-curs.execute("INSERT INTO test_tz VALUES (%s)", (d,))
-print "Inserted timestamp with timezone:", d
-print "Time zone:", d.tzinfo.tzname(d), "offset:", d.tzinfo.utcoffset(d)
-
-curs.execute("SELECT * FROM test_tz")
-d = curs.fetchone()[0]
-curs.execute("INSERT INTO test_tz VALUES (%s)", (d,))
-print "Inserted SELECTed timestamp:", d
-print "Time zone:", d.tzinfo.tzname(d), "offset:", d.tzinfo.utcoffset(d)
-
-curs.execute("SELECT * FROM test_tz")
-for d in curs:
-    u = d[0].utcoffset() or ZERO
-    print "UTC time:  ", d[0] - u 
-    print "Local time:", d[0]
-    print "Time zone:", d[0].tzinfo.tzname(d[0]), d[0].tzinfo.utcoffset(d[0])
-    
-
-curs.execute("DROP TABLE test_tz")
-conn.commit()
diff --git a/psycopg2/examples/usercast.py b/psycopg2/examples/usercast.py
deleted file mode 100644 (file)
index 5c8031f..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-# usercast.py -- example of user defined typecasters
-# -*- encoding: latin-1 -*-
-#
-# Copyright (C) 2001-2005 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-## put in DSN your DSN string
-
-DSN = 'dbname=test'
-
-## don't modify anything below tis line (except for experimenting)
-
-import sys
-import psycopg2
-import psycopg2.extensions
-import whrandom
-
-# importing psycopg.extras will give us a nice tuple adapter: this is wrong
-# because the adapter is meant to be used in SQL IN clauses while we use
-# tuples to represent points but it works and the example is about Rect, not
-# "Point"
-import psycopg2.extras
-
-if len(sys.argv) > 1:
-    DSN = sys.argv[1]
-
-print "Opening connection using dns:", DSN
-conn = psycopg2.connect(DSN)
-print "Initial encoding for this connection is", conn.encoding
-
-curs = conn.cursor()
-try:
-    curs.execute("CREATE TABLE test_cast (p1 point, p2 point, b box)")
-except:
-    conn.rollback()
-    curs.execute("DROP TABLE test_cast")
-    curs.execute("CREATE TABLE test_cast (p1 point, p2 point, b box)")
-conn.commit()
-
-# this is the callable object we use as a typecast (the typecast is
-# usually a function, but we use a class, just to demonstrate the
-# flexibility of the psycopg casting system
-
-class Rect(object):
-    """Very simple rectangle.
-
-    Note that we use this type as a data holder, as an adapter of itself for
-    the ISQLQuote protocol used by psycopg's adapt() (see __confrom__ below)
-    and eventually as a type-caster for the data extracted from the database
-    (that's why __init__ takes the curs argument.)
-    """
-    
-    def __init__(self, s=None, curs=None):
-        """Init the rectangle from the optional string s."""
-        self.x = self.y = self.width = self.height = 0.0
-        if s: self.from_string(s)
-
-    def __conform__(self, proto):
-        """This is a terrible hack, just ignore proto and return self."""
-        if proto == psycopg2.extensions.ISQLQuote:
-            return self
-    
-    def from_points(self, x0, y0, x1, y1):
-        """Init the rectangle from points."""
-        if x0 > x1: (x0, x1) = (x1, x0)
-        if y0 > y1: (y0, y1) = (y1, y0)
-        self.x = x0
-        self.y = y0
-        self.width = x1 - x0
-        self.height = y1 - y0
-
-    def from_string(self, s):
-        """Init the rectangle from a string."""
-        seq = eval(s)
-        self.from_points(seq[0][0], seq[0][1], seq[1][0], seq[1][1])
-
-    def getquoted(self):
-        """Format self as a string usable by the db to represent a box."""
-        s = "'((%d,%d),(%d,%d))'" % (
-            self.x, self.y, self.x + self.width, self.y + self.height)
-        return s
-
-    def show(self):
-        """Format a description of the box."""
-        s = "X: %d\tY: %d\tWidth: %d\tHeight: %d" % (
-            self.x, self.y, self.width, self.height)
-        return s
-    
-# here we select from the empty table, just to grab the description
-curs.execute("SELECT b FROM test_cast WHERE 0=1")
-boxoid = curs.description[0][1]
-print "Oid for the box datatype is", boxoid
-
-# and build the user cast object
-BOX = psycopg2.extensions.new_type((boxoid,), "BOX", Rect)
-psycopg2.extensions.register_type(BOX)
-
-# now insert 100 random data (2 points and a box in each row)
-for i in range(100):
-    p1 = (whrandom.randint(0,100), whrandom.randint(0,100))
-    p2 = (whrandom.randint(0,100), whrandom.randint(0,100))
-    b = Rect()
-    b.from_points(whrandom.randint(0,100), whrandom.randint(0,100),
-                  whrandom.randint(0,100), whrandom.randint(0,100))
-    curs.execute("INSERT INTO test_cast VALUES ('%(p1)s', '%(p2)s', %(box)s)",
-                 {'box':b, 'p1':p1, 'p2':p2})
-print "Added 100 boxed to the database"
-
-# select and print all boxes with at least one point inside
-curs.execute("SELECT b FROM test_cast WHERE p1 @ b OR p2 @ b")
-boxes = curs.fetchall()
-print "Found %d boxes with at least a point inside:" % len(boxes)
-for box in boxes:
-    print " ", box[0].show()
-
-curs.execute("DROP TABLE test_cast")
-conn.commit()
diff --git a/psycopg2/examples/whereareyou.jpg b/psycopg2/examples/whereareyou.jpg
deleted file mode 100644 (file)
index f508c0b..0000000
Binary files a/psycopg2/examples/whereareyou.jpg and /dev/null differ
diff --git a/psycopg2/lib/__init__.py b/psycopg2/lib/__init__.py
deleted file mode 100644 (file)
index e40caa3..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-"""A Python driver for PostgreSQL
-
-psycopg is a PostgreSQL_ database adapter for the Python_ programming
-language. This is version 2, a complete rewrite of the original code to
-provide new-style classes for connection and cursor objects and other sweet
-candies. Like the original, psycopg 2 was written with the aim of being very
-small and fast, and stable as a rock.
-
-Homepage: http://initd.org/projects/psycopg2
-
-.. _PostgreSQL: http://www.postgresql.org/
-.. _Python: http://www.python.org/
-
-:Groups:
-  * `Connections creation`: connect
-  * `Value objects constructors`: Binary, Date, DateFromTicks, Time,
-    TimeFromTicks, Timestamp, TimestampFromTicks
-"""
-# psycopg/__init__.py - initialization of the psycopg module
-#
-# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-# Import modules needed by _psycopg to allow tools like py2exe to do
-# their work without bothering about the module dependencies.
-# 
-# TODO: we should probably use the Warnings framework to signal a missing
-# module instead of raising an exception (in case we're running a thin
-# embedded Python or something even more devious.)
-
-import sys, warnings
-if sys.version_info[0] >= 2 and sys.version_info[1] >= 3:
-    try:
-        import datetime as _psycopg_needs_datetime
-    except:
-        warnings.warn(
-            "can't import datetime module probably needed by _psycopg",
-            RuntimeWarning)
-if sys.version_info[0] >= 2 and sys.version_info[1] >= 4:
-    try:
-        import decimal as _psycopg_needs_decimal
-    except:
-        warnings.warn(
-            "can't import decimal module probably needed by _psycopg",
-            RuntimeWarning)
-from psycopg2 import tz
-del sys, warnings
-
-# Import the DBAPI-2.0 stuff into top-level module.
-
-from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
-
-from _psycopg import Binary, Date, Time, Timestamp
-from _psycopg import DateFromTicks, TimeFromTicks, TimestampFromTicks
-
-from _psycopg import Error, Warning, DataError, DatabaseError, ProgrammingError
-from _psycopg import IntegrityError, InterfaceError, InternalError
-from _psycopg import NotSupportedError, OperationalError
-
-from _psycopg import connect, apilevel, threadsafety, paramstyle
-from _psycopg import __version__
-
-__all__ = [ k for k in locals().keys() if not k.startswith('_') ]
diff --git a/psycopg2/lib/extensions.py b/psycopg2/lib/extensions.py
deleted file mode 100644 (file)
index 9233d1d..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-"""psycopg extensions to the DBAPI-2.0
-
-This module holds all the extensions to the DBAPI-2.0 provided by psycopg.
-
-- `connection` -- the new-type inheritable connection class
-- `cursor` -- the new-type inheritable cursor class
-- `adapt()` -- exposes the PEP-246_ compatible adapting mechanism used
-  by psycopg to adapt Python types to PostgreSQL ones
-  
-.. _PEP-246: http://www.python.org/peps/pep-0246.html
-"""
-# psycopg/extensions.py - DBAPI-2.0 extensions specific to psycopg
-#
-# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-from _psycopg import UNICODE, INTEGER, LONGINTEGER, BOOLEAN, FLOAT
-from _psycopg import TIME, DATE, INTERVAL
-
-from _psycopg import Boolean, QuotedString, AsIs
-try:
-    from _psycopg import DateFromMx, TimeFromMx, TimestampFromMx
-    from _psycopg import IntervalFromMx
-except:
-    pass
-try:
-    from _psycopg import DateFromPy, TimeFromPy, TimestampFromPy
-    from _psycopg import IntervalFromPy
-except:
-    pass
-
-from _psycopg import adapt, adapters, encodings, connection, cursor
-from _psycopg import string_types, binary_types, new_type, register_type
-from _psycopg import ISQLQuote
-
-"""Isolation level values."""
-ISOLATION_LEVEL_AUTOCOMMIT     = 0
-ISOLATION_LEVEL_READ_COMMITTED = 1 
-ISOLATION_LEVEL_SERIALIZABLE   = 2
-
-# PostgreSQL maps the the other standard values to already defined levels
-ISOLATION_LEVEL_REPEATABLE_READ  = ISOLATION_LEVEL_SERIALIZABLE
-ISOLATION_LEVEL_READ_UNCOMMITTED = ISOLATION_LEVEL_READ_COMMITTED
-
-"""Transaction status values."""
-STATUS_SETUP = 0
-STATUS_READY    = 1
-STATUS_BEGIN    = 2
-STATUS_SYNC     = 3
-STATUS_ASYNC    = 4
-
-# This is a usefull mnemonic to check if the connection is in a transaction
-STATUS_IN_TRANSACTION = STATUS_BEGIN
-
-
-def register_adapter(typ, callable):
-    """Register 'callable' as an ISQLQuote adapter for type 'typ'."""
-    adapters[(typ, ISQLQuote)] = callable
-
-__all__ = [ k for k in locals().keys() if not k.startswith('_') ]
diff --git a/psycopg2/lib/extras.py b/psycopg2/lib/extras.py
deleted file mode 100644 (file)
index 847bdb7..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-"""Miscellaneous goodies for psycopg2
-
-This module is a generic place used to hold little helper functions
-and classes untill a better place in the distribution is found.
-"""
-# psycopg/extras.py - miscellaneous extra goodies for psycopg
-#
-# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-import os
-import time
-
-try:
-    import logging
-except:
-    logging = None
-    
-from psycopg2.extensions import cursor as _cursor
-from psycopg2.extensions import connection as _connection
-from psycopg2.extensions import register_adapter as _RA
-from psycopg2.extensions import adapt as _A
-
-
-class DictConnection(_connection):
-    """A connection that uses DictCursor automatically."""
-    def cursor(self):
-        return _connection.cursor(self, cursor_factory=DictCursor)
-
-class DictCursor(_cursor):
-    """A cursor that keeps a list of column name -> index mappings."""
-
-    __query_executed = 0
-    
-    def execute(self, query, vars=None, async=0):
-        self.row_factory = DictRow
-        self.index = {}
-        self.__query_executed = 1
-        return _cursor.execute(self, query, vars, async)
-    
-    def callproc(self, procname, vars=None):
-        self.row_factory = DictRow
-        self.index = {}
-        self.__query_executed = 1
-        return _cursor.callproc(self, procname, vars)   
-
-    def _build_index(self):
-        if self.__query_executed == 1 and self.description:
-            for i in range(len(self.description)):
-                self.index[self.description[i][0]] = i
-            self.__query_executed = 0
-            
-    def fetchone(self):
-        res = _cursor.fetchone(self)
-        if self.__query_executed:
-            self._build_index()
-        return res
-
-    def fetchmany(self, size=None):
-        res = _cursor.fetchmany(self, size)
-        if self.__query_executed:
-            self._build_index()
-        return res
-
-    def fetchall(self):
-        res = _cursor.fetchall(self)
-        if self.__query_executed:
-            self._build_index()
-        return res
-    
-    def next(self):
-        res = _cursor.fetchone(self)
-        if res is None:
-            raise StopIteration()
-        if self.__query_executed:
-            self._build_index()
-        return res
-
-class DictRow(list):
-    """A row object that allow by-colun-name access to data."""
-
-    def __init__(self, cursor):
-        self._index = cursor.index
-        self[:] = [None] * len(cursor.description)
-
-    def __getitem__(self, x):
-        if type(x) != int:
-            x = self._index[x]
-        return list.__getitem__(self, x)
-
-    def items(self):
-        res = []
-        for n, v in self._index.items():
-            res.append((n, list.__getitem__(self, v)))
-        return res
-    
-    def keys(self):
-        return self._index.keys()
-
-    def values(self):
-        return tuple(self[:])
-
-    def has_key(self, x):
-        return self._index.has_key(x)
-
-    def get(self, x, default=None):
-        try:
-            return self[x]
-        except:
-            return default
-
-
-class SQL_IN(object):
-    """Adapt any iterable to an SQL quotable object."""
-    
-    def __init__(self, seq):
-        self._seq = seq
-
-    def prepare(self, conn):
-        self._conn = conn
-    
-    def getquoted(self):
-        # this is the important line: note how every object in the
-        # list is adapted and then how getquoted() is called on it
-        pobjs = [_A(o) for o in self._seq]
-        for obj in pobjs:
-            if hasattr(obj, 'prepare'):
-                obj.prepare(self._conn)
-        qobjs = [str(o.getquoted()) for o in pobjs]
-        return '(' + ', '.join(qobjs) + ')'
-
-    __str__ = getquoted
-    
-_RA(tuple, SQL_IN)
-
-    
-class LoggingConnection(_connection):
-    """A connection that logs all queries to a file or logger object."""
-
-    def initialize(self, logobj):
-        """Initialize the connection to log to `logobj`.
-        
-        The `logobj` parameter can be an open file object or a Logger instance
-        from the standard logging module.
-        """
-        self._logobj = logobj
-        if logging and isinstance(logobj, logging.Logger):
-            self.log = self._logtologger
-        else:
-            self.log = self._logtofile
-    
-    def filter(self, msg, curs):
-        """Filter the query before logging it.
-        
-        This is the method to overwrite to filter unwanted queries out of the
-        log or to add some extra data to the output. The default implementation
-        just does nothing.
-        """
-        return msg
-    
-    def _logtofile(self, msg, curs):
-        msg = self.filter(msg, curs)
-        if msg: self._logobj.write(msg + os.linesep)
-        
-    def _logtologger(self, msg, curs):
-        msg = self.filter(msg, curs)
-        if msg: self._logobj.debug(msg)
-    
-    def _check(self):
-        if not hasattr(self, '_logobj'):
-            raise self.ProgrammingError(
-                "LoggingConnection object has not been initialize()d")
-            
-    def cursor(self):
-        self._check()
-        return _connection.cursor(self, cursor_factory=LoggingCursor)
-    
-class LoggingCursor(_cursor):
-    """A cursor that logs queries using its connection logging facilities."""
-
-    def execute(self, query, vars=None, async=0):
-        try:
-            return _cursor.execute(self, query, vars, async)
-        finally:
-            self.connection.log(self.query, self)
-
-    def callproc(self, procname, vars=None):
-        try:
-            return _cursor.callproc(self, procname, vars)  
-        finally:
-            self.connection.log(self.query, self)
-
-            
-class MinTimeLoggingConnection(LoggingConnection):
-    """A connection that logs queries based on execution time.
-    
-    This is just an example of how to sub-class LoggingConnection to provide
-    some extra filtering for the logged queries. Both the `.inizialize()` and
-    `.filter()` methods are overwritten to make sure that only queries
-    executing for more than `mintime` ms are logged.
-    
-    Note that this connection uses the specialized cursor MinTimeLoggingCursor.
-    """
-    def initialize(self, logobj, mintime=0):
-        LoggingConnection.initialize(self, logobj)
-        self._mintime = mintime
-        
-    def filter(self, msg, curs):
-        t = (time.time() - curs.timestamp) * 1000
-        if t > self._mintime:
-            return msg + os.linesep + "  (execution time: %d ms)" % t
-
-    def cursor(self):
-        self._check()
-        return _connection.cursor(self, cursor_factory=MinTimeLoggingCursor)
-    
-class MinTimeLoggingCursor(LoggingCursor):
-    """The cursor sub-class companion to MinTimeLoggingConnection."""
-
-    def execute(self, query, vars=None, async=0):
-        self.timestamp = time.time()
-        return LoggingCursor.execute(self, query, vars, async)
-    
-    def callproc(self, procname, vars=None):
-        self.timestamp = time.time()
-        return LoggingCursor.execute(self, procname, var)
diff --git a/psycopg2/lib/pool.py b/psycopg2/lib/pool.py
deleted file mode 100644 (file)
index 0468db6..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-"""Connection pooling for psycopg2
-
-This module implements thread-safe (and not) connection pools.
-"""
-# psycopg/pool.py - pooling code for psycopg
-#
-# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-import psycopg2
-
-try:
-    import logging
-    # do basic initialization if the module is not already initialized
-    logging.basicConfig(level=logging.INFO,
-                        format='%(asctime)s %(levelname)s %(message)s')
-    # create logger object for psycopg2 module and sub-modules
-    _logger = logging.getLogger("psycopg2")
-    def dbg(*args):
-        _logger.debug("psycopg2", ' '.join([str(x) for x in args]))
-    try:
-        import App # does this make sure that we're running in Zope?
-        _logger.info("installed. Logging using Python logging module")
-    except:
-        _logger.debug("installed. Logging using Python logging module")
-    
-except ImportError:
-    from zLOG import LOG, DEBUG, INFO
-    def dbg(*args):
-        LOG('ZPsycopgDA',  DEBUG, "",
-            ' '.join([str(x) for x in args])+'\n')
-    LOG('ZPsycopgDA', INFO, "Installed", "Logging using Zope's zLOG\n") 
-
-except:
-    import sys
-    def dbg(*args):
-        sys.stderr.write(' '.join(args)+'\n')
-
-
-class PoolError(psycopg2.Error):
-    pass
-
-
-class AbstractConnectionPool(object):
-    """Generic key-based pooling code."""
-
-    def __init__(self, minconn, maxconn, *args, **kwargs):
-        """Initialize the connection pool.
-
-        New 'minconn' connections are created immediately calling 'connfunc'
-        with given parameters. The connection pool will support a maximum of
-        about 'maxconn' connections.        
-        """
-        self.minconn = minconn
-        self.maxconn = maxconn
-        self.closed = False
-        
-        self._args = args
-        self._kwargs = kwargs
-
-        self._pool = []
-        self._used = {}
-        self._rused = {} # id(conn) -> key map
-        self._keys = 0
-
-        for i in range(self.minconn):
-            self._connect()
-
-    def _connect(self, key=None):
-        """Create a new connection and assign it to 'key' if not None."""
-        conn = psycopg2.connect(*self._args, **self._kwargs)
-        if key is not None:
-            self._used[key] = conn
-            self._rused[id(conn)] = key
-        else:
-            self._pool.append(conn)
-        return conn
-
-    def _getkey(self):
-        """Return a new unique key."""
-        self._keys += 1
-        return self._keys
-            
-    def _getconn(self, key=None):
-        """Get a free connection and assign it to 'key' if not None."""
-        if self.closed: raise PoolError("connection pool is closed")
-        if key is None: key = self._getkey()
-       
-        if self._used.has_key(key):
-            return self._used[key]
-
-        if self._pool:
-            self._used[key] = conn = self._pool.pop()
-            self._rused[id(conn)] = key
-            return conn
-        else:
-            if len(self._used) == self.maxconn:
-                raise PoolError("connection pool exausted")
-            return self._connect(key)
-                
-    def _putconn(self, conn, key=None, close=False):
-        """Put away a connection."""
-        if self.closed: raise PoolError("connection pool is closed")
-        if key is None: key = self._rused[id(conn)]
-
-        if not key:
-            raise PoolError("trying to put unkeyed connection")
-
-        if len(self._pool) < self.minconn and not close:
-            self._pool.append(conn)
-        else:
-            conn.close()
-
-        # here we check for the presence of key because it can happen that a
-        # thread tries to put back a connection after a call to close
-        if not self.closed or key in self._used:
-            del self._used[key]
-            del self._rused[id(conn)]
-
-    def _closeall(self):
-        """Close all connections.
-
-        Note that this can lead to some code fail badly when trying to use
-        an already closed connection. If you call .closeall() make sure
-        your code can deal with it.
-        """
-        if self.closed: raise PoolError("connection pool is closed")
-        for conn in self._pool + list(self._used.values()):
-            try:
-                print "Closing connection", conn
-                conn.close()
-            except:
-                pass
-        self.closed = True
-        
-
-class SimpleConnectionPool(AbstractConnectionPool):
-    """A connection pool that can't be shared across different threads."""
-
-    getconn = AbstractConnectionPool._getconn
-    putconn = AbstractConnectionPool._putconn
-    closeall   = AbstractConnectionPool._closeall
-
-
-class ThreadedConnectionPool(AbstractConnectionPool):
-    """A connection pool that works with the threading module."""
-
-    def __init__(self, minconn, maxconn, *args, **kwargs):
-        """Initialize the threading lock."""
-        import threading
-        AbstractConnectionPool.__init__(
-            self, minconn, maxconn, *args, **kwargs)
-        self._lock = threading.Lock()
-
-    def getconn(self, key=None):
-        """Get a free connection and assign it to 'key' if not None."""
-        self._lock.acquire()
-        try:
-            return self._getconn(key)
-        finally:
-            self._lock.release()
-
-    def putconn(self, conn=None, key=None, close=False):
-        """Put away an unused connection."""
-        self._lock.acquire()
-        try:
-            self._putconn(conn, key, close)
-        finally:
-            self._lock.release()
-
-    def closeall(self):
-        """Close all connections (even the one currently in use.)"""
-        self._lock.acquire()
-        try:
-            self._closeall()
-        finally:
-            self._lock.release()
-
-
-class PersistentConnectionPool(AbstractConnectionPool):
-    """A pool that assigns persistent connections to different threads. 
-
-    Note that this connection pool generates by itself the required keys
-    using the current thread id.  This means that untill a thread put away
-    a connection it will always get the same connection object by successive
-    .getconn() calls. This also means that a thread can't use more than one
-    single connection from the pool.
-    """
-
-    def __init__(self, minconn, maxconn, *args, **kwargs):
-        """Initialize the threading lock."""
-        import threading
-        AbstractConnectionPool.__init__(
-            self, minconn, maxconn, *args, **kwargs)
-        self._lock = threading.Lock()
-
-        # we we'll need the thread module, to determine thread ids, so we
-        # import it here and copy it in an instance variable
-        import thread
-        self.__thread = thread
-
-    def getconn(self):
-        """Generate thread id and return a connection."""
-        key = self.__thread.get_ident()
-        self._lock.acquire()
-        try:
-            return self._getconn(key)
-        finally:
-            self._lock.release()
-
-    def putconn(self, conn=None, close=False):
-        """Put away an unused connection."""
-        key = self.__thread.get_ident()
-        self._lock.acquire()
-        try:
-            if not conn: conn = self._used[key]
-            self._putconn(conn, key, close)
-        finally:
-            self._lock.release()
-
-    def closeall(self):
-        """Close all connections (even the one currently in use.)"""
-        self._lock.acquire()
-        try:
-            self._closeall()
-        finally:
-            self._lock.release()
diff --git a/psycopg2/lib/psycopg1.py b/psycopg2/lib/psycopg1.py
deleted file mode 100644 (file)
index d539888..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-"""psycopg 1.1.x compatibility module
-
-This module uses the new style connection and cursor types to build a psycopg
-1.1.1.x compatibility layer. It should be considered a temporary hack to run
-old code while porting to psycopg 2. Import it as follows::
-
-    from psycopg2 import psycopg1 as psycopg
-"""
-# psycopg/psycopg1.py - psycopg 1.1.x compatibility module
-#
-# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-import _psycopg as _2psycopg
-from psycopg2.extensions import cursor as _2cursor
-from psycopg2.extensions import connection as _2connection
-
-from psycopg2 import *
-del connect
-
-
-def connect(*args, **kwargs):
-    """connect(dsn, ...) -> new psycopg 1.1.x compatible connection object"""
-    kwargs['connection_factory'] = connection
-    conn = _2psycopg.connect(*args, **kwargs)
-    conn.set_isolation_level(2)
-    return conn
-    
-class connection(_2connection):
-    """psycopg 1.1.x connection."""
-    
-    def cursor(self):
-        """cursor() -> new psycopg 1.1.x compatible cursor object"""
-        return _2connection.cursor(self, cursor_factory=cursor)
-
-    def autocommit(self, on_off=1):
-        """autocommit(on_off=1) -> switch autocommit on (1) or off (0)"""
-        if on_off > 0:
-            self.set_isolation_level(0)
-        else:
-            self.set_isolation_level(2)
-            
-
-class cursor(_2cursor):
-    """psycopg 1.1.x cursor.
-
-    Note that this cursor implements the exact procedure used by psycopg 1 to
-    build dictionaries out of result rows. The DictCursor in the
-    psycopg.extras modules implements a much better and faster algorithm.
-    """
-
-    def __build_dict(self, row):
-        res = {}
-        for i in range(len(self.description)):
-            res[self.description[i][0]] = row[i]
-        return res
-    
-    def dictfetchone(self):
-        row = _2cursor.fetchone(self)
-        if row:
-            return self.__build_dict(row)
-        else:
-            return row
-            
-    def dictfetchmany(self, size):
-        res = []
-        rows = _2cursor.fetchmany(self, size)
-        for row in rows:
-            res.append(self.__build_dict(row))
-        return res
-    
-    def dictfetchall(self):
-        res = []
-        rows = _2cursor.fetchall(self)
-        for row in rows:
-            res.append(self.__build_dict(row))
-        return res
-
diff --git a/psycopg2/lib/tz.py b/psycopg2/lib/tz.py
deleted file mode 100644 (file)
index e521b6d..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-"""tzinfo implementations for psycopg2
-
-This module holds two different tzinfo implementations that can be used as
-the 'tzinfo' argument to datetime constructors, directly passed to psycopg
-functions or used to set the .tzinfo_factory attribute in cursors. 
-"""
-# psycopg/tz.py - tzinfo implementation
-#
-# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-import datetime
-import time
-
-
-ZERO = datetime.timedelta(0)
-
-class FixedOffsetTimezone(datetime.tzinfo):
-    """Fixed offset in minutes east from UTC.
-
-    This is exactly the implementation found in Python 2.3.x documentation,
-    with a small change to the __init__ method to allow for pickling and a
-    default name in the form 'sHH:MM' ('s' is the sign.)
-    """
-    _name = None
-    _offset = ZERO
-    
-    def __init__(self, offset=None, name=None):
-        if offset is not None:
-            self._offset = datetime.timedelta(minutes = offset)
-        if name is not None:
-            self._name = name
-
-    def utcoffset(self, dt):
-        return self._offset
-
-    def tzname(self, dt):
-        if self._name is not None:
-            return self._name
-        else:
-            seconds = self._offset.seconds + self._offset.days * 86400
-            hours, seconds = divmod(seconds, 3600)
-            minutes = seconds/60
-            if minutes:
-                return "%+03d:%d" % (hours, minutes)
-            else:
-                return "%+03d" % hours
-            
-    def dst(self, dt):
-        return ZERO
-
-
-STDOFFSET = datetime.timedelta(seconds = -time.timezone)
-if time.daylight:
-    DSTOFFSET = datetime.timedelta(seconds = -time.altzone)
-else:
-    DSTOFFSET = STDOFFSET
-DSTDIFF = DSTOFFSET - STDOFFSET
-
-class LocalTimezone(datetime.tzinfo):
-    """Platform idea of local timezone.
-
-    This is the exact implementation from the Pyhton 2.3 documentation.
-    """
-    
-    def utcoffset(self, dt):
-        if self._isdst(dt):
-            return DSTOFFSET
-        else:
-            return STDOFFSET
-
-    def dst(self, dt):
-        if self._isdst(dt):
-            return DSTDIFF
-        else:
-            return ZERO
-
-    def tzname(self, dt):
-        return time.tzname[self._isdst(dt)]
-
-    def _isdst(self, dt):
-        tt = (dt.year, dt.month, dt.day,
-              dt.hour, dt.minute, dt.second,
-              dt.weekday(), 0, -1)
-        stamp = time.mktime(tt)
-        tt = time.localtime(stamp)
-        return tt.tm_isdst > 0
-
-LOCAL = LocalTimezone()
-
-# TODO: pre-generate some interesting time zones?
diff --git a/psycopg2/psycopg/adapter_asis.c b/psycopg2/psycopg/adapter_asis.c
deleted file mode 100644 (file)
index 75ee0e4..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-/* adapter_asis.c - adapt types as they are
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/adapter_asis.h"
-#include "psycopg/microprotocols_proto.h"
-
-/** the AsIs object **/
-
-static PyObject *
-asis_str(asisObject *self)
-{
-    if (self->wrapped == Py_None) {
-        return PyString_FromString("NULL");
-    }
-    else {
-        return PyObject_Str(self->wrapped);
-    }
-}
-
-PyObject *
-asis_getquoted(asisObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    return asis_str(self);
-}
-
-PyObject *
-asis_conform(asisObject *self, PyObject *args)
-{
-    PyObject *res, *proto;
-    
-    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
-
-    if (proto == (PyObject*)&isqlquoteType)
-        res = (PyObject*)self;
-    else
-        res = Py_None;
-    
-    Py_INCREF(res);
-    return res;
-}
-
-/** the AsIs object */
-
-/* object member list */
-
-static struct PyMemberDef asisObject_members[] = {
-    {"adapted", T_OBJECT, offsetof(asisObject, wrapped), RO},
-    {NULL}
-};
-
-/* object method table */
-
-static PyMethodDef asisObject_methods[] = {
-    {"getquoted", (PyCFunction)asis_getquoted, METH_VARARGS,
-     "getquoted() -> wrapped object value as SQL-quoted string"},
-    {"__conform__", (PyCFunction)asis_conform, METH_VARARGS, NULL},
-    {NULL}  /* Sentinel */
-};
-
-/* initialization and finalization methods */
-
-static int
-asis_setup(asisObject *self, PyObject *obj)
-{
-    Dprintf("asis_setup: init asis object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-
-    self->wrapped = obj;
-    Py_INCREF(self->wrapped);
-    
-    Dprintf("asis_setup: good asis object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-asis_dealloc(PyObject* obj)
-{
-    asisObject *self = (asisObject *)obj;
-
-    Py_XDECREF(self->wrapped);
-    
-    Dprintf("asis_dealloc: deleted asis object at %p, refcnt = %d",
-            obj, obj->ob_refcnt);
-    
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-asis_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    PyObject *o;
-    
-    if (!PyArg_ParseTuple(args, "O", &o))
-        return -1;
-
-    return asis_setup((asisObject *)obj, o);
-}
-
-static PyObject *
-asis_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{    
-    return type->tp_alloc(type, 0);
-}
-
-static void
-asis_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-asis_repr(asisObject *self)
-{
-    return PyString_FromFormat("<psycopg2._psycopg.AsIs object at %p>", self);
-}
-
-
-/* object type */
-
-#define asisType_doc \
-"AsIs(str) -> new AsIs adapter object"
-
-PyTypeObject asisType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.AsIs",
-    sizeof(asisObject),
-    0,
-    asis_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/
-
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/ 
-
-    0,          /*tp_compare*/
-
-    (reprfunc)asis_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)asis_str, /*tp_str*/
-    
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    asisType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    asisObject_methods, /*tp_methods*/
-    asisObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    asis_init, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    asis_new, /*tp_new*/
-    (freefunc)asis_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
-
-
-/** module-level functions **/
-
-PyObject *
-psyco_AsIs(PyObject *module, PyObject *args)
-{
-    PyObject *obj;
-     
-    if (!PyArg_ParseTuple(args, "O", &obj))
-        return NULL;
-  
-    return PyObject_CallFunction((PyObject *)&asisType, "O", obj);
-}
diff --git a/psycopg2/psycopg/adapter_asis.h b/psycopg2/psycopg/adapter_asis.h
deleted file mode 100644 (file)
index 9495c58..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* adapter_asis.h - definition for the psycopg AsIs type wrapper
- *
- * Copyright (C) 2003-2005 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_ASIS_H
-#define PSYCOPG_ASIS_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PyTypeObject asisType;
-
-typedef struct {
-    PyObject HEAD;
-
-    /* this is the real object we wrap */
-    PyObject *wrapped;
-
-} asisObject;
-
-/* functions exported to psycopgmodule.c */
-    
-extern PyObject *psyco_AsIs(PyObject *module, PyObject *args);
-#define psyco_AsIs_doc \
-    "AsIs(obj) -> new AsIs wrapper object"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_ASIS_H) */
diff --git a/psycopg2/psycopg/adapter_binary.c b/psycopg2/psycopg/adapter_binary.c
deleted file mode 100644 (file)
index 0fc8101..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-/* adapter_binary.c - Binary objects
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-
-#include <libpq-fe.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/connection.h"
-#include "psycopg/adapter_binary.h"
-#include "psycopg/microprotocols_proto.h"
-
-/** the quoting code */
-
-#ifndef PSYCOPG_OWN_QUOTING
-static unsigned char *
-binary_escape(unsigned char *from, unsigned int from_length,
-               unsigned int *to_length, PGconn *conn)
-{
-#if PG_MAJOR_VERSION > 8 || \
- (PG_MAJOR_VERSION == 8 && PG_MINOR_VERSION > 1) || \
- (PG_MAJOR_VERSION == 8 && PG_MINOR_VERSION == 1 && PG_PATCH_VERSION >= 4)
-    if (conn)
-        return PQescapeByteaConn(conn, from, from_length, to_length);
-    else
-#endif
-        return PQescapeBytea(from, from_length, to_length);
-}
-#else
-static unsigned char *
-binary_escape(unsigned char *from, unsigned int from_length,
-               unsigned int *to_length, PGconn *conn)
-{
-    unsigneed char *quoted, *chptr, *newptr;
-    int i, space, new_space;
-
-    space = from_length + 2;
-
-    Py_BEGIN_ALLOW_THREADS;
-
-    quoted = (unsigned char*)calloc(space, sizeof(char));
-    if (quoted == NULL) return NULL;
-
-    chptr = quoted;
-
-    for (i=0; i < len; i++) {
-        if (chptr - quoted > space - 6) {
-            new_space  =  space * ((space) / (i + 1)) + 2 + 6;
-            if (new_space - space < 1024) space += 1024;
-            else space = new_space;
-            newptr = (unsigned char *)realloc(quoted, space);
-            if (newptr == NULL) {
-                free(quoted);
-                return NULL;
-            }
-            /* chptr has to be moved to the new location*/
-            chptr = newptr + (chptr - quoted);
-            quoted = newptr;
-            Dprintf("binary_escape: reallocated %i bytes at %p", space,quoted);
-        }
-        if (from[i]) {
-            if (from[i] >= ' ' && from[i] <= '~') {
-                if (from[i] == '\'') {
-                    *chptr = '\'';
-                    chptr++;
-                    *chptr = '\'';
-                    chptr++;
-                }
-                else if (from[i] == '\\') {
-                    memcpy(chptr, "\\\\\\\\", 4);
-                    chptr += 4;
-                }
-                else {
-                    /* leave it as it is if ascii printable */
-                    *chptr = from[i];
-                    chptr++;
-                }
-            }
-            else {
-                unsigned char c;
-                
-                /* escape to octal notation \nnn */
-                *chptr++ = '\\';
-                *chptr++ = '\\';
-                c = from[i];
-                *chptr = ((c >> 6) & 0x07) + 0x30; chptr++;
-                *chptr = ((c >> 3) & 0x07) + 0x30; chptr++;
-                *chptr = ( c       & 0x07) + 0x30; chptr++;
-            }
-        }
-        else {
-            /* escape null as \\000 */
-            memcpy(chptr, "\\\\000", 5);
-            chptr += 5;
-        }
-    }
-    *chptr = '\0';
-
-    Py_END_ALLOW_THREADS;
-
-    *to_size = chptr - quoted + 1;
-    return quoted;
-}
-#endif
-
-/* binary_quote - do the quote process on plain and unicode strings */
-
-static PyObject *
-binary_quote(binaryObject *self)
-{
-    char *to;
-    const char *buffer;
-    int buffer_len;
-    size_t len = 0;
-
-    /* if we got a plain string or a buffer we escape it and save the buffer */
-    if (PyString_Check(self->wrapped) || PyBuffer_Check(self->wrapped)) {
-        /* escape and build quoted buffer */
-        PyObject_AsCharBuffer(self->wrapped, &buffer, &buffer_len);
-
-        to = (char *)binary_escape((unsigned char*)buffer, buffer_len, &len,
-            self->conn ? ((connectionObject*)self->conn)->pgconn : NULL);
-        if (to == NULL) {
-            PyErr_NoMemory();
-            return NULL;
-        }
-
-       if (len > 0)
-            self->buffer = PyString_FromFormat("'%s'", to);
-       else
-            self->buffer = PyString_FromString("''");
-        PQfreemem(to);
-    }
-    
-    /* if the wrapped object is not a string or a buffer, this is an error */ 
-    else {
-        PyErr_SetString(PyExc_TypeError, "can't escape non-string object");
-        return NULL;
-    }
-    
-    return self->buffer;
-}
-
-/* binary_str, binary_getquoted - return result of quoting */
-
-static PyObject *
-binary_str(binaryObject *self)
-{
-    if (self->buffer == NULL) {
-        binary_quote(self);
-    }
-    Py_XINCREF(self->buffer);
-    return self->buffer;
-}
-
-PyObject *
-binary_getquoted(binaryObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    return binary_str(self);
-}
-
-PyObject *
-binary_prepare(binaryObject *self, PyObject *args)
-{
-    connectionObject *conn;
-
-    if (!PyArg_ParseTuple(args, "O", &conn))
-        return NULL;
-
-    Py_XDECREF(self->conn);
-    if (conn) {
-        self->conn = (PyObject*)conn;
-        Py_INCREF(self->conn);
-    }
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-PyObject *
-binary_conform(binaryObject *self, PyObject *args)
-{
-    PyObject *res, *proto;
-    
-    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
-
-    if (proto == (PyObject*)&isqlquoteType)
-        res = (PyObject*)self;
-    else
-        res = Py_None;
-    
-    Py_INCREF(res);
-    return res;
-}
-
-/** the Binary object **/
-
-/* object member list */
-
-static struct PyMemberDef binaryObject_members[] = {
-    {"adapted", T_OBJECT, offsetof(binaryObject, wrapped), RO},
-    {"buffer", T_OBJECT, offsetof(binaryObject, buffer), RO},
-    {NULL}
-};
-
-/* object method table */
-
-static PyMethodDef binaryObject_methods[] = {
-    {"getquoted", (PyCFunction)binary_getquoted, METH_VARARGS,
-     "getquoted() -> wrapped object value as SQL-quoted binary string"},
-    {"prepare", (PyCFunction)binary_prepare, METH_VARARGS,
-     "prepare(conn) -> prepare for binary encoding using conn"},
-    {"__conform__", (PyCFunction)binary_conform, METH_VARARGS, NULL},
-    {NULL}  /* Sentinel */
-};
-
-/* initialization and finalization methods */
-
-static int
-binary_setup(binaryObject *self, PyObject *str)
-{
-    Dprintf("binary_setup: init binary object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-
-    self->buffer = NULL;
-    self->conn = NULL;
-    self->wrapped = str;
-    Py_INCREF(self->wrapped);
-    
-    Dprintf("binary_setup: good binary object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-binary_dealloc(PyObject* obj)
-{
-    binaryObject *self = (binaryObject *)obj;
-
-    Py_XDECREF(self->wrapped);
-    Py_XDECREF(self->buffer);
-    Py_XDECREF(self->conn);
-    
-    Dprintf("binary_dealloc: deleted binary object at %p, refcnt = %d",
-            obj, obj->ob_refcnt);
-    
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-binary_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    PyObject *str;
-    
-    if (!PyArg_ParseTuple(args, "O", &str))
-        return -1;
-
-    return binary_setup((binaryObject *)obj, str);
-}
-
-static PyObject *
-binary_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{    
-    return type->tp_alloc(type, 0);
-}
-
-static void
-binary_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-binary_repr(binaryObject *self)
-{
-    return PyString_FromFormat("<psycopg2._psycopg.Binary object at %p>", self);
-}
-
-/* object type */
-
-#define binaryType_doc \
-"Binary(buffer) -> new binary object"
-
-PyTypeObject binaryType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.Binary",
-    sizeof(binaryObject),
-    0,
-    binary_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/   
-
-    0,          /*tp_compare*/
-    (reprfunc)binary_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)binary_str, /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-
-    binaryType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    binaryObject_methods, /*tp_methods*/
-    binaryObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    binary_init, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    binary_new, /*tp_new*/
-    (freefunc)binary_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
-
-
-/** module-level functions **/
-
-PyObject *
-psyco_Binary(PyObject *module, PyObject *args)
-{
-    PyObject *str;
-    
-    if (!PyArg_ParseTuple(args, "O", &str))
-        return NULL;
-  
-    return PyObject_CallFunction((PyObject *)&binaryType, "O", str);
-}
diff --git a/psycopg2/psycopg/adapter_binary.h b/psycopg2/psycopg/adapter_binary.h
deleted file mode 100644 (file)
index 262a72d..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* adapter_binary.h - definition for the Binary type
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_BINARY_H
-#define PSYCOPG_BINARY_H 1
-
-#include <Python.h>
-#include <libpq-fe.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PyTypeObject binaryType;
-
-typedef struct {
-    PyObject HEAD;
-
-    PyObject *wrapped;
-    PyObject *buffer;
-    PyObject *conn;
-} binaryObject;
-
-/* functions exported to psycopgmodule.c */
-    
-extern PyObject *psyco_Binary(PyObject *module, PyObject *args);
-#define psyco_Binary_doc \
-    "Binary(buffer) -> new binary object\n\n" \
-    "Build an object capable to hold a bynary string value."
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_BINARY_H) */
diff --git a/psycopg2/psycopg/adapter_datetime.c b/psycopg2/psycopg/adapter_datetime.c
deleted file mode 100644 (file)
index 6409cef..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-/* adapter_datetime.c - python date/time objects
- *
- * Copyright (C) 2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-#include <datetime.h>
-
-#include <time.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/adapter_datetime.h"
-#include "psycopg/microprotocols_proto.h"
-
-
-/* the pointer to the datetime module API is initialized by the module init
-   code, we just need to grab it */
-extern PyObject* pyDateTimeModuleP;
-extern PyObject *pyDateTypeP;
-extern PyObject *pyTimeTypeP;
-extern PyObject *pyDateTimeTypeP;
-extern PyObject *pyDeltaTypeP;
-
-extern PyObject *pyPsycopgTzModule;
-extern PyObject *pyPsycopgTzLOCAL;
-
-/* datetime_str, datetime_getquoted - return result of quoting */
-
-static PyObject *
-pydatetime_str(pydatetimeObject *self)
-{
-    if (self->type <= PSYCO_DATETIME_TIMESTAMP) {
-        PyObject *res = NULL;
-        PyObject *iso = PyObject_CallMethod(self->wrapped, "isoformat", NULL);
-        if (iso) {
-            res = PyString_FromFormat("'%s'", PyString_AsString(iso));
-            Py_DECREF(iso);
-        }
-        return res;
-    }
-    else {
-        PyDateTime_Delta *obj = (PyDateTime_Delta*)self->wrapped;
-        
-        char buffer[8];
-        int i;
-        int a = obj->microseconds;
-        
-        for (i=0; i < 6 ; i++) {
-            buffer[5-i] = '0' + (a % 10);
-            a /= 10;
-        }
-        buffer[6] = '\0';
-
-        return PyString_FromFormat("'%d days %d.%s seconds'",
-                                   obj->days, obj->seconds, buffer);
-    }
-}
-
-PyObject *
-pydatetime_getquoted(pydatetimeObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    return pydatetime_str(self);
-}
-
-PyObject *
-pydatetime_conform(pydatetimeObject *self, PyObject *args)
-{
-    PyObject *res, *proto;
-    
-    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
-
-    if (proto == (PyObject*)&isqlquoteType)
-        res = (PyObject*)self;
-    else
-        res = Py_None;
-    
-    Py_INCREF(res);
-    return res;
-}
-
-/** the DateTime wrapper object **/
-
-/* object member list */
-
-static struct PyMemberDef pydatetimeObject_members[] = {
-    {"adapted", T_OBJECT, offsetof(pydatetimeObject, wrapped), RO},
-    {"type", T_INT, offsetof(pydatetimeObject, type), RO},
-    {NULL}
-};
-
-/* object method table */
-
-static PyMethodDef pydatetimeObject_methods[] = {
-    {"getquoted", (PyCFunction)pydatetime_getquoted, METH_VARARGS,
-     "getquoted() -> wrapped object value as SQL date/time"},
-    {"__conform__", (PyCFunction)pydatetime_conform, METH_VARARGS, NULL},
-    {NULL}  /* Sentinel */
-};
-
-/* initialization and finalization methods */
-
-static int
-pydatetime_setup(pydatetimeObject *self, PyObject *obj, int type)
-{
-    Dprintf("pydatetime_setup: init datetime object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-
-    self->type = type;
-    self->wrapped = obj;
-    Py_INCREF(self->wrapped);
-    
-    Dprintf("pydatetime_setup: good pydatetime object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-pydatetime_dealloc(PyObject* obj)
-{
-    pydatetimeObject *self = (pydatetimeObject *)obj;
-
-    Py_XDECREF(self->wrapped);
-    
-    Dprintf("mpydatetime_dealloc: deleted pydatetime object at %p, "
-            "refcnt = %d", obj, obj->ob_refcnt);
-    
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-pydatetime_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    PyObject *dt;
-    int type = -1; /* raise an error if type was not passed! */
-    
-    if (!PyArg_ParseTuple(args, "O|i", &dt, &type))
-        return -1;
-
-    return pydatetime_setup((pydatetimeObject *)obj, dt, type);
-}
-
-static PyObject *
-pydatetime_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{    
-    return type->tp_alloc(type, 0);
-}
-
-static void
-pydatetime_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-pydatetime_repr(pydatetimeObject *self)
-{
-    return PyString_FromFormat("<psycopg2._psycopg.datetime object at %p>",
-                                self);
-}
-
-/* object type */
-
-#define pydatetimeType_doc \
-"datetime(datetime, type) -> new datetime wrapper object"
-
-PyTypeObject pydatetimeType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.datetime",
-    sizeof(pydatetimeObject),
-    0,
-    pydatetime_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/   
-
-    0,          /*tp_compare*/
-    (reprfunc)pydatetime_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)pydatetime_str, /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-
-    pydatetimeType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    pydatetimeObject_methods, /*tp_methods*/
-    pydatetimeObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    pydatetime_init, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    pydatetime_new, /*tp_new*/
-    (freefunc)pydatetime_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
-
-
-/** module-level functions **/
-
-#ifdef PSYCOPG_DEFAULT_PYDATETIME
-
-PyObject *
-psyco_Date(PyObject *self, PyObject *args) 
-{
-       PyObject *res = NULL;
-       int year, month, day;
-
-    PyObject* obj = NULL;
-    
-       if (!PyArg_ParseTuple(args, "iii", &year, &month, &day))
-           return NULL;
-
-    obj = PyObject_CallFunction(pyDateTypeP, "iii", year, month, day);
-
-    if (obj) {
-        res = PyObject_CallFunction((PyObject *)&pydatetimeType,
-                                    "Oi", obj, PSYCO_DATETIME_DATE);
-        Py_DECREF(obj);
-    }
-
-    return res;
-}
-
-PyObject *
-psyco_Time(PyObject *self, PyObject *args) 
-{
-       PyObject *res = NULL;
-    PyObject *tzinfo = NULL;
-    int hours, minutes=0;
-       double micro, seconds=0.0;
-    
-    PyObject* obj = NULL;
-
-    if (!PyArg_ParseTuple(args, "iid|O", &hours, &minutes, &seconds,
-                          &tzinfo))
-           return NULL;
-
-    micro = (seconds - floor(seconds)) * 1000000.0;
-    
-    if (tzinfo == NULL)
-       obj = PyObject_CallFunction(pyTimeTypeP, "iiii",
-            hours, minutes, (int)round(seconds), (int)round(micro));
-    else
-       obj = PyObject_CallFunction(pyTimeTypeP, "iiiiO",
-            hours, minutes, (int)round(seconds), (int)round(micro), tzinfo);
-    
-    if (obj) {
-        res = PyObject_CallFunction((PyObject *)&pydatetimeType,
-                                    "Oi", obj, PSYCO_DATETIME_TIME);
-        Py_DECREF(obj);
-    }
-
-    return res;
-}
-
-PyObject *
-psyco_Timestamp(PyObject *self, PyObject *args) 
-{
-       PyObject *res = NULL;
-    PyObject *tzinfo = NULL;
-    int year, month, day;
-       int hour=0, minute=0; /* default to midnight */
-       double micro, second=0.0;
-
-    PyObject* obj = NULL;
-    
-    if (!PyArg_ParseTuple(args, "lii|iidO", &year, &month, &day,
-                          &hour, &minute, &second, &tzinfo))
-           return NULL;
-
-    micro = (second - floor(second)) * 1000000.0;
-    
-    if (tzinfo == NULL)
-        obj = PyObject_CallFunction(pyDateTimeTypeP, "iiiiiii",
-            year, month, day, hour, minute, (int)round(second),
-            (int)round(micro));
-    else
-        obj = PyObject_CallFunction(pyDateTimeTypeP, "iiiiiiiO",
-            year, month, day, hour, minute, (int)round(second),
-            (int)round(micro), tzinfo);
-    
-    if (obj) {
-        res = PyObject_CallFunction((PyObject *)&pydatetimeType,
-                                    "Oi", obj, PSYCO_DATETIME_TIMESTAMP);
-        Py_DECREF(obj);
-    }
-    
-    return res;
-}
-
-PyObject *
-psyco_DateFromTicks(PyObject *self, PyObject *args)
-{
-    PyObject *res = NULL;
-    struct tm tm;
-    time_t t;
-    double ticks;
-
-    if (!PyArg_ParseTuple(args, "d", &ticks))
-        return NULL;
-
-    t = (time_t)round(ticks);
-    if (localtime_r(&t, &tm)) {
-        args = Py_BuildValue("iii", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday);
-        if (args) {
-            res = psyco_Date(self, args);
-            Py_DECREF(args);
-        }
-    }    
-    return res; 
-}
-
-PyObject *
-psyco_TimeFromTicks(PyObject *self, PyObject *args)
-{
-    PyObject *res = NULL;
-    struct tm tm;
-    time_t t;
-    double ticks;
-
-    if (!PyArg_ParseTuple(args,"d", &ticks))
-        return NULL;
-
-    t = (time_t)round(ticks);
-    if (localtime_r(&t, &tm)) {
-        args = Py_BuildValue("iid", tm.tm_hour, tm.tm_min, (double)tm.tm_sec);
-        if (args) {
-            res = psyco_Time(self, args);
-            Py_DECREF(args);
-        }
-    } 
-    return res; 
-}
-
-PyObject *
-psyco_TimestampFromTicks(PyObject *self, PyObject *args)
-{
-    PyObject *res = NULL;
-    struct tm tm;
-    time_t t;
-    double ticks;
-
-    if (!PyArg_ParseTuple(args,"d", &ticks))
-        return NULL;
-    
-    t = (time_t)round(ticks);
-    if (localtime_r(&t, &tm)) {
-        args = Py_BuildValue("iiiiidO",
-                             tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
-                             tm.tm_hour, tm.tm_min, (double)tm.tm_sec,
-                             pyPsycopgTzLOCAL);
-        if (args) {
-            res = psyco_Timestamp(self, args);
-            Py_DECREF(args);
-        }
-    } 
-    return res; 
-}
-
-#endif
-
-PyObject *
-psyco_DateFromPy(PyObject *self, PyObject *args)
-{
-    PyObject *obj;
-
-    if (!PyArg_ParseTuple(args, "O!", pyDateTypeP, &obj))
-        return NULL;
-    
-    return PyObject_CallFunction((PyObject *)&pydatetimeType, "Oi", obj,
-                                 PSYCO_DATETIME_DATE);
-}
-
-PyObject *
-psyco_TimeFromPy(PyObject *self, PyObject *args)
-{
-    PyObject *obj;
-
-    if (!PyArg_ParseTuple(args, "O!", pyTimeTypeP, &obj))
-        return NULL;
-    
-    return PyObject_CallFunction((PyObject *)&pydatetimeType, "Oi", obj,
-                                 PSYCO_DATETIME_TIME);
-}
-
-PyObject *
-psyco_TimestampFromPy(PyObject *self, PyObject *args)
-{
-    PyObject *obj;
-
-    if (!PyArg_ParseTuple(args, "O!", pyDateTimeTypeP, &obj))
-        return NULL;
-    
-    return PyObject_CallFunction((PyObject *)&pydatetimeType, "Oi", obj,
-                                 PSYCO_DATETIME_TIMESTAMP);
-}
-
-PyObject *
-psyco_IntervalFromPy(PyObject *self, PyObject *args)
-{
-    PyObject *obj;
-
-    if (!PyArg_ParseTuple(args, "O!", pyDeltaTypeP, &obj))
-        return NULL;
-    
-    return PyObject_CallFunction((PyObject *)&pydatetimeType, "Oi", obj,
-                                 PSYCO_DATETIME_INTERVAL);
-}
diff --git a/psycopg2/psycopg/adapter_datetime.h b/psycopg2/psycopg/adapter_datetime.h
deleted file mode 100644 (file)
index a32bb8d..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/* adapter_datetime.h - definition for the python date/time types
- *
- * Copyright (C) 2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_DATETIME_H
-#define PSYCOPG_DATETIME_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PyTypeObject pydatetimeType;
-
-typedef struct {
-    PyObject HEAD;
-
-    PyObject *wrapped;
-    int       type;
-#define       PSYCO_DATETIME_TIME       0
-#define       PSYCO_DATETIME_DATE       1
-#define       PSYCO_DATETIME_TIMESTAMP  2
-#define       PSYCO_DATETIME_INTERVAL   3    
-    
-} pydatetimeObject;
-    
-    
-/* functions exported to psycopgmodule.c */
-#ifdef PSYCOPG_DEFAULT_PYDATETIME
-    
-extern PyObject *psyco_Date(PyObject *module, PyObject *args);
-#define psyco_Date_doc \
-    "Date(year, month, day) -> new date\n\n" \
-    "Build an object holding a date value."
-
-extern PyObject *psyco_Time(PyObject *module, PyObject *args);
-#define psyco_Time_doc \
-    "Time(hour, minutes, seconds, tzinfo=None) -> new time\n\n" \
-    "Build an object holding a time value."
-
-extern PyObject *psyco_Timestamp(PyObject *module, PyObject *args);
-#define psyco_Timestamp_doc \
-    "Timestamp(year, month, day, hour, minutes, seconds, tzinfo=None) -> new timestamp\n\n" \
-    "Build an object holding a timestamp value."
-
-extern PyObject *psyco_DateFromTicks(PyObject *module, PyObject *args);
-#define psyco_DateFromTicks_doc \
-    "DateFromTicks(ticks) -> new date\n\n" \
-    "Build an object holding a date value from the given ticks value.\n\n" \
-    "Ticks are the number of seconds since the epoch; see the documentation " \
-    "of the standard Python time module for details)."
-
-extern PyObject *psyco_TimeFromTicks(PyObject *module, PyObject *args);
-#define psyco_TimeFromTicks_doc \
-    "TimeFromTicks(ticks) -> new time\n\n" \
-    "Build an object holding a time value from the given ticks value.\n\n" \
-    "Ticks are the number of seconds since the epoch; see the documentation " \
-    "of the standard Python time module for details)."
-
-extern PyObject *psyco_TimestampFromTicks(PyObject *module, PyObject *args);
-#define psyco_TimestampFromTicks_doc \
-    "TimestampFromTicks(ticks) -> new timestamp\n\n" \
-    "Build an object holding a timestamp value from the given ticks value.\n\n" \
-    "Ticks are the number of seconds since the epoch; see the documentation " \
-    "of the standard Python time module for details)."
-
-#endif /* PSYCOPG_DEFAULT_PYDATETIME */
-
-extern PyObject *psyco_DateFromPy(PyObject *module, PyObject *args);
-#define psyco_DateFromPy_doc \
-    "DateFromPy(datetime.date) -> new wrapper"
-
-extern PyObject *psyco_TimeFromPy(PyObject *module, PyObject *args);
-#define psyco_TimeFromPy_doc \
-    "TimeFromPy(datetime.time) -> new wrapper"
-
-extern PyObject *psyco_TimestampFromPy(PyObject *module, PyObject *args);
-#define psyco_TimestampFromPy_doc \
-    "TimestampFromPy(datetime.datetime) -> new wrapper"
-
-extern PyObject *psyco_IntervalFromPy(PyObject *module, PyObject *args);
-#define psyco_IntervalFromPy_doc \
-    "IntervalFromPy(datetime.timedelta) -> new wrapper"
-    
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_DATETIME_H) */
diff --git a/psycopg2/psycopg/adapter_list.c b/psycopg2/psycopg/adapter_list.c
deleted file mode 100644 (file)
index 29ef116..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/* adapter_list.c - python list objects
- *
- * Copyright (C) 2004-2005 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/adapter_list.h"
-#include "psycopg/microprotocols.h"
-#include "psycopg/microprotocols_proto.h"
-
-
-/* list_str, list_getquoted - return result of quoting */
-
-static PyObject *
-list_quote(listObject *self)
-{
-    /*  adapt the list by calling adapt() recursively and then wrapping
-        everything into "ARRAY[]" */
-    PyObject *tmp = NULL, *str = NULL, *joined = NULL, *res = NULL;
-    int i, len;
-
-    len = PyList_GET_SIZE(self->wrapped);
-    
-    /* empty arrays are converted to NULLs (still searching for a way to
-       insert an empty array in postgresql */
-    if (len == 0) return PyString_FromString("'{}'");
-    
-    tmp = PyTuple_New(len);
-    
-    for (i=0; i<len; i++) {
-        PyObject *quoted =
-            microprotocol_getquoted(PyList_GET_ITEM(self->wrapped, i),
-                                    (connectionObject*)self->connection);
-        if (quoted == NULL) goto error;
-
-        /* here we don't loose a refcnt: SET_ITEM does not change the
-           reference count and we are just transferring ownership of the tmp
-           object to the tuple */
-        PyTuple_SET_ITEM(tmp, i, quoted);
-    }
-
-    /* now that we have a tuple of adapted objects we just need to join them
-       and put "ARRAY[] around the result */
-    str = PyString_FromString(", ");
-    joined = PyObject_CallMethod(str, "join", "(O)", tmp);
-    if (joined == NULL) goto error;
-
-    res = PyString_FromFormat("ARRAY[%s]", PyString_AsString(joined));
-    
- error:
-    Py_XDECREF(tmp);
-    Py_XDECREF(str);
-    Py_XDECREF(joined);
-    return res;
-}
-
-PyObject *
-list_str(listObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    return list_quote(self);
-}
-
-PyObject *
-list_getquoted(listObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    return list_quote(self);
-}
-
-PyObject *
-list_prepare(listObject *self, PyObject *args)
-{
-    connectionObject *conn;
-
-    if (!PyArg_ParseTuple(args, "O", &conn))
-        return NULL;
-
-    /* note that we don't copy the encoding from the connection, but take a
-       reference to it; we'll need it during the recursive adapt() call (the
-       encoding is here for a future expansion that will make .getquoted()
-       work even without a connection to the backend. */
-    Py_XDECREF(self->connection);
-    self->connection = (PyObject*)conn;
-    Py_INCREF(self->connection);
-    
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-PyObject *
-list_conform(listObject *self, PyObject *args)
-{
-    PyObject *res, *proto;
-    
-    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
-
-    if (proto == (PyObject*)&isqlquoteType)
-        res = (PyObject*)self;
-    else
-        res = Py_None;
-    
-    Py_INCREF(res);
-    return res;
-}
-
-/** the DateTime wrapper object **/
-
-/* object member list */
-
-static struct PyMemberDef listObject_members[] = {
-    {"adapted", T_OBJECT, offsetof(listObject, wrapped), RO},
-    {NULL}
-};
-
-/* object method table */
-
-static PyMethodDef listObject_methods[] = {
-    {"getquoted", (PyCFunction)list_getquoted, METH_VARARGS,
-     "getquoted() -> wrapped object value as SQL date/time"},
-    {"prepare", (PyCFunction)list_prepare, METH_VARARGS,
-     "prepare(conn) -> set encoding to conn->encoding"},    
-    {"__conform__", (PyCFunction)list_conform, METH_VARARGS, NULL},
-    {NULL}  /* Sentinel */
-};
-
-/* initialization and finalization methods */
-
-static int
-list_setup(listObject *self, PyObject *obj, char *enc)
-{
-    Dprintf("list_setup: init list object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-
-    if (!PyList_Check(obj))
-        return -1;
-
-    /* FIXME: remove this orrible strdup */
-    if (enc) self->encoding = strdup(enc);
-
-    self->connection = NULL;
-    self->wrapped = obj;
-    Py_INCREF(self->wrapped);
-    
-    Dprintf("list_setup: good list object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-list_dealloc(PyObject* obj)
-{
-    listObject *self = (listObject *)obj;
-
-    Py_XDECREF(self->wrapped);
-    Py_XDECREF(self->connection);
-    if (self->encoding) free(self->encoding);
-    
-    Dprintf("list_dealloc: deleted list object at %p, "
-            "refcnt = %d", obj, obj->ob_refcnt);
-    
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-list_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    PyObject *l;
-    char *enc = "latin-1"; /* default encoding as in Python */
-    
-    if (!PyArg_ParseTuple(args, "O|s", &l, &enc))
-        return -1;
-
-    return list_setup((listObject *)obj, l, enc);
-}
-
-static PyObject *
-list_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{    
-    return type->tp_alloc(type, 0);
-}
-
-static void
-list_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-list_repr(listObject *self)
-{
-    return PyString_FromFormat("<psycopg2._psycopg.List object at %p>", self);
-}
-
-/* object type */
-
-#define listType_doc \
-"List(list) -> new list wrapper object"
-
-PyTypeObject listType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.List",
-    sizeof(listObject),
-    0,
-    list_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/   
-
-    0,          /*tp_compare*/
-    (reprfunc)list_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)list_str, /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-
-    listType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    listObject_methods, /*tp_methods*/
-    listObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    list_init, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    list_new, /*tp_new*/
-    (freefunc)list_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
-
-
-/** module-level functions **/
-
-PyObject *
-psyco_List(PyObject *module, PyObject *args)
-{
-    PyObject *str;
-    char *enc = "latin-1"; /* default encoding as in Python */
-    
-    if (!PyArg_ParseTuple(args, "O|s", &str, &enc))
-        return NULL;
-  
-    return PyObject_CallFunction((PyObject *)&listType, "Os", str, enc);
-}
diff --git a/psycopg2/psycopg/adapter_list.h b/psycopg2/psycopg/adapter_list.h
deleted file mode 100644 (file)
index 71b4286..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* adapter_list.h - definition for the python list types
- *
- * Copyright (C) 2004-2005 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_LIST_H
-#define PSYCOPG_LIST_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PyTypeObject listType;
-
-typedef struct {
-    PyObject HEAD;
-
-    PyObject *wrapped;
-    PyObject *connection;
-    char     *encoding;
-} listObject;
-
-extern PyObject *psyco_List(PyObject *module, PyObject *args);
-#define psyco_List_doc \
-    "List(list, enc) -> new quoted list"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_LIST_H) */
diff --git a/psycopg2/psycopg/adapter_mxdatetime.c b/psycopg2/psycopg/adapter_mxdatetime.c
deleted file mode 100644 (file)
index 3b23148..0000000
+++ /dev/null
@@ -1,446 +0,0 @@
-/* adapter_mxdatetime.c - mx date/time objects
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-#include <mxDateTime.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/adapter_mxdatetime.h"
-#include "psycopg/microprotocols_proto.h"
-
-/* the pointer to the mxDateTime API is initialized by the module init code,
-   we just need to grab it */
-extern mxDateTimeModule_APIObject *mxDateTimeP;
-
-
-/* mxdatetime_str, mxdatetime_getquoted - return result of quoting */
-
-static PyObject *
-mxdatetime_str(mxdatetimeObject *self)
-{
-    PyObject *str = NULL, *res = NULL;
-    
-    switch (self->type) {
-
-    case PSYCO_MXDATETIME_DATE:
-    case PSYCO_MXDATETIME_TIMESTAMP:
-        str = PyObject_Str(self->wrapped);
-        
-        /* given the limitation of the mx.DateTime module that uses the same
-           type for both date and timestamp values we need to do some black
-           magic and make sure we're not using an adapt()ed timestamp as a
-           simple date */
-        if (strncmp(&(PyString_AsString(str)[11]), "00:00:00.000", 12) == 0) {
-            PyObject *tmp = 
-                PyString_FromStringAndSize(PyString_AsString(str), 10);
-            Py_DECREF(str);
-            str = tmp; 
-        }
-        break;
-
-    case PSYCO_MXDATETIME_TIME:
-    case PSYCO_MXDATETIME_INTERVAL:
-        str = PyObject_Str(self->wrapped);
-
-        /* given the limitation of the mx.DateTime module that uses the same
-           type for both time and delta values we need to do some black magic
-           and make sure we're not using an adapt()ed interval as a simple
-           time */                    
-        if (PyString_Size(str) > 8 && PyString_AsString(str)[8] == ':') {
-            mxDateTimeDeltaObject *obj = (mxDateTimeDeltaObject*)self->wrapped;
-        
-            char buffer[8];
-            int i, j, x;
-            
-            double ss = obj->hour*3600.0 + obj->minute*60.0 + obj->second;
-            int us = (int)((ss - floor(ss))*1000000);
-                
-            for (i=1000000, j=0; i > 0 ; i /= 10) {
-                x = us/i;
-                us -= x*i;
-                buffer[j++] = '0'+x;
-            }
-            buffer[j] = '\0';
-            
-            res = PyString_FromFormat("'%ld days %d.%s seconds'",
-                obj->day, (int)round(ss), buffer);
-        }
-        break;
-    }
-
-    if (str != NULL && res == NULL) {
-        res = PyString_FromFormat("'%s'", PyString_AsString(str));
-    }
-    Py_XDECREF(str);   
-
-    return res;
-}
-
-PyObject *
-mxdatetime_getquoted(mxdatetimeObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    return mxdatetime_str(self);
-}
-
-PyObject *
-mxdatetime_conform(mxdatetimeObject *self, PyObject *args)
-{
-    PyObject *res, *proto;
-    
-    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
-
-    if (proto == (PyObject*)&isqlquoteType)
-        res = (PyObject*)self;
-    else
-        res = Py_None;
-    
-    Py_INCREF(res);
-    return res;
-}
-
-/** the MxDateTime object **/
-
-/* object member list */
-
-static struct PyMemberDef mxdatetimeObject_members[] = {
-    {"adapted", T_OBJECT, offsetof(mxdatetimeObject, wrapped), RO},
-    {"type", T_INT, offsetof(mxdatetimeObject, type), RO},
-    {NULL}
-};
-
-/* object method table */
-
-static PyMethodDef mxdatetimeObject_methods[] = {
-    {"getquoted", (PyCFunction)mxdatetime_getquoted, METH_VARARGS,
-     "getquoted() -> wrapped object value as SQL date/time"},
-    {"__conform__", (PyCFunction)mxdatetime_conform, METH_VARARGS, NULL},
-    {NULL}  /* Sentinel */
-};
-
-/* initialization and finalization methods */
-
-static int
-mxdatetime_setup(mxdatetimeObject *self, PyObject *obj, int type)
-{
-    Dprintf("mxdatetime_setup: init mxdatetime object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-
-    self->type = type;
-    self->wrapped = obj;
-    Py_INCREF(self->wrapped);
-    
-    Dprintf("mxdatetime_setup: good mxdatetime object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-mxdatetime_dealloc(PyObject* obj)
-{
-    mxdatetimeObject *self = (mxdatetimeObject *)obj;
-
-    Py_XDECREF(self->wrapped);
-    
-    Dprintf("mxdatetime_dealloc: deleted mxdatetime object at %p, refcnt = %d",
-            obj, obj->ob_refcnt);
-    
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-mxdatetime_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    PyObject *mx;
-    int type = -1; /* raise an error if type was not passed! */
-    
-    if (!PyArg_ParseTuple(args, "O|i", &mx, &type))
-        return -1;
-
-    return mxdatetime_setup((mxdatetimeObject *)obj, mx, type);
-}
-
-static PyObject *
-mxdatetime_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{    
-    return type->tp_alloc(type, 0);
-}
-
-static void
-mxdatetime_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-mxdatetime_repr(mxdatetimeObject *self)
-{
-    return PyString_FromFormat("<psycopg2._psycopg.MxDateTime object at %p>",
-                                self);
-}
-
-/* object type */
-
-#define mxdatetimeType_doc \
-"MxDateTime(mx, type) -> new mx.DateTime wrapper object"
-
-PyTypeObject mxdatetimeType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.MxDateTime",
-    sizeof(mxdatetimeObject),
-    0,
-    mxdatetime_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/   
-
-    0,          /*tp_compare*/
-    (reprfunc)mxdatetime_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)mxdatetime_str, /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-
-    mxdatetimeType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    mxdatetimeObject_methods, /*tp_methods*/
-    mxdatetimeObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    mxdatetime_init, /*tp_init*/
-    PyType_GenericAlloc, /*tp_alloc*/
-    mxdatetime_new, /*tp_new*/
-    (freefunc)mxdatetime_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
-
-
-/** module-level functions **/
-
-#ifdef PSYCOPG_DEFAULT_MXDATETIME
-
-PyObject *
-psyco_Date(PyObject *self, PyObject *args) 
-{
-       PyObject *res, *mx;
-       int year, month, day;
-       
-       if (!PyArg_ParseTuple(args, "iii", &year, &month, &day))
-           return NULL;
-                                        
-       mx = mxDateTimeP->DateTime_FromDateAndTime(year, month, day, 0, 0, 0.0);
-    if (mx == NULL) return NULL;
-
-    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                PSYCO_MXDATETIME_DATE);
-    Py_DECREF(mx);
-    return res;
-}
-
-PyObject *
-psyco_Time(PyObject *self, PyObject *args) 
-{
-       PyObject *res, *mx;
-    int hours, minutes=0;
-       double seconds=0.0;
-
-    if (!PyArg_ParseTuple(args, "iid", &hours, &minutes, &seconds))
-           return NULL;
-                                        
-       mx = mxDateTimeP->DateTimeDelta_FromTime(hours, minutes, seconds);
-    if (mx == NULL) return NULL;
-
-    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                PSYCO_MXDATETIME_TIME);
-    Py_DECREF(mx);
-    return res;    
-}
-
-PyObject *
-psyco_Timestamp(PyObject *self, PyObject *args) 
-{
-       PyObject *res, *mx;
-    int year, month, day;
-       int hour=0, minute=0; /* default to midnight */
-       double second=0.0;
-    
-    if (!PyArg_ParseTuple(args, "lii|iid", &year, &month, &day,
-                          &hour, &minute, &second))
-           return NULL;
-
-    mx = mxDateTimeP->DateTime_FromDateAndTime(year, month, day,
-                                               hour, minute, second);
-    if (mx == NULL) return NULL;
-
-    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                PSYCO_MXDATETIME_TIMESTAMP);
-    Py_DECREF(mx);
-    return res;     
-}
-
-PyObject *
-psyco_DateFromTicks(PyObject *self, PyObject *args)
-{
-    PyObject *res, *mx;
-    double ticks;
-
-    if (!PyArg_ParseTuple(args,"d", &ticks))
-        return NULL;
-                                        
-    if (!(mx = mxDateTimeP->DateTime_FromTicks(ticks)))
-        return NULL;
-    
-    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                PSYCO_MXDATETIME_DATE);
-    Py_DECREF(mx);
-    return res; 
-}
-
-PyObject *
-psyco_TimeFromTicks(PyObject *self, PyObject *args)
-{
-    PyObject *res, *mx, *dt;
-    double ticks;
-
-    if (!PyArg_ParseTuple(args,"d", &ticks))
-        return NULL;
-                                        
-    if (!(dt = mxDateTimeP->DateTime_FromTicks(ticks)))
-        return NULL;
-
-    if (!(mx = mxDateTimeP->DateTimeDelta_FromDaysAndSeconds(
-            0, ((mxDateTimeObject*)dt)->abstime)))
-    {
-        Py_DECREF(dt);
-        return NULL;
-    }
-
-    Py_DECREF(dt);
-    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                PSYCO_MXDATETIME_TIME);
-    Py_DECREF(mx);
-    return res; 
-}
-
-PyObject *
-psyco_TimestampFromTicks(PyObject *self, PyObject *args)
-{
-    PyObject *mx, *res;
-    double ticks;
-
-    if (!PyArg_ParseTuple(args, "d", &ticks))
-        return NULL;
-                                        
-    if (!(mx = mxDateTimeP->DateTime_FromTicks(ticks)))
-        return NULL;
-
-    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                 PSYCO_MXDATETIME_TIMESTAMP);
-    Py_DECREF(mx);
-    return res; 
-}
-
-#endif
-
-PyObject *
-psyco_DateFromMx(PyObject *self, PyObject *args)
-{
-    PyObject *mx;
-
-    if (!PyArg_ParseTuple(args, "O!", mxDateTimeP->DateTime_Type, &mx))
-        return NULL;
-    
-    return PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                 PSYCO_MXDATETIME_DATE);
-}
-
-PyObject *
-psyco_TimeFromMx(PyObject *self, PyObject *args)
-{
-    PyObject *mx;
-
-    if (!PyArg_ParseTuple(args, "O!", mxDateTimeP->DateTimeDelta_Type, &mx))
-        return NULL;
-    
-    return PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                 PSYCO_MXDATETIME_TIME);
-}
-
-PyObject *
-psyco_TimestampFromMx(PyObject *self, PyObject *args)
-{
-    PyObject *mx;
-
-    if (!PyArg_ParseTuple(args, "O!", mxDateTimeP->DateTime_Type, &mx))
-        return NULL;
-    
-    return PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                 PSYCO_MXDATETIME_TIMESTAMP);
-}
-
-PyObject *
-psyco_IntervalFromMx(PyObject *self, PyObject *args)
-{
-    PyObject *mx;
-
-    if (!PyArg_ParseTuple(args, "O!", mxDateTimeP->DateTime_Type, &mx))
-        return NULL;
-    
-    return PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
-                                 PSYCO_MXDATETIME_INTERVAL);
-}
diff --git a/psycopg2/psycopg/adapter_mxdatetime.h b/psycopg2/psycopg/adapter_mxdatetime.h
deleted file mode 100644 (file)
index c485707..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/* adapter_mxdatetime.h - definition for the mx date/time types
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_MXDATETIME_H
-#define PSYCOPG_MXDATETIME_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PyTypeObject mxdatetimeType;
-
-typedef struct {
-    PyObject HEAD;
-
-    PyObject *wrapped;
-    int       type;
-#define       PSYCO_MXDATETIME_TIME       0
-#define       PSYCO_MXDATETIME_DATE       1
-#define       PSYCO_MXDATETIME_TIMESTAMP  2
-#define       PSYCO_MXDATETIME_INTERVAL   3   
-    
-} mxdatetimeObject;
-    
-/* functions exported to psycopgmodule.c */
-#ifdef PSYCOPG_DEFAULT_MXDATETIME
-    
-extern PyObject *psyco_Date(PyObject *module, PyObject *args);
-#define psyco_Date_doc \
-    "Date(year, month, day) -> new date"
-
-extern PyObject *psyco_Time(PyObject *module, PyObject *args);
-#define psyco_Time_doc \
-    "Time(hour, minutes, seconds) -> new time"
-
-extern PyObject *psyco_Timestamp(PyObject *module, PyObject *args);
-#define psyco_Timestamp_doc \
-    "Time(year, month, day, hour, minutes, seconds) -> new timestamp"
-    
-extern PyObject *psyco_DateFromTicks(PyObject *module, PyObject *args);
-#define psyco_DateFromTicks_doc \
-    "DateFromTicks(ticks) -> new date"
-
-extern PyObject *psyco_TimeFromTicks(PyObject *module, PyObject *args);
-#define psyco_TimeFromTicks_doc \
-    "TimeFromTicks(ticks) -> new time"
-
-extern PyObject *psyco_TimestampFromTicks(PyObject *module, PyObject *args);
-#define psyco_TimestampFromTicks_doc \
-    "TimestampFromTicks(ticks) -> new timestamp"
-
-#endif /* PSYCOPG_DEFAULT_MXDATETIME */
-
-extern PyObject *psyco_DateFromMx(PyObject *module, PyObject *args);
-#define psyco_DateFromMx_doc \
-    "DateFromMx(mx) -> new date"
-
-extern PyObject *psyco_TimeFromMx(PyObject *module, PyObject *args);
-#define psyco_TimeFromMx_doc \
-    "TimeFromMx(mx) -> new time"
-
-extern PyObject *psyco_TimestampFromMx(PyObject *module, PyObject *args);
-#define psyco_TimestampFromMx_doc \
-    "TimestampFromMx(mx) -> new timestamp"
-
-extern PyObject *psyco_IntervalFromMx(PyObject *module, PyObject *args);
-#define psyco_IntervalFromMx_doc \
-    "IntervalFromMx(mx) -> new interval"
-    
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_MXDATETIME_H) */
diff --git a/psycopg2/psycopg/adapter_pboolean.c b/psycopg2/psycopg/adapter_pboolean.c
deleted file mode 100644 (file)
index fa70ad0..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-/* adapter_pboolean.c - psycopg boolean type wrapper implementation
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/adapter_pboolean.h"
-#include "psycopg/microprotocols_proto.h"
-
-
-/** the Boolean object **/
-
-static PyObject *
-pboolean_str(pbooleanObject *self)
-{
-#ifdef PSYCOPG_NEW_BOOLEAN
-    if (PyObject_IsTrue(self->wrapped)) {
-        return PyString_FromString("true");
-    }
-    else {
-        return PyString_FromString("false");
-    }
-#else
-    if (PyObject_IsTrue(self->wrapped)) {
-        return PyString_FromString("'t'");
-    }
-    else {
-        return PyString_FromString("'f'");
-    }
-#endif
-}
-
-PyObject *
-pboolean_getquoted(pbooleanObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    return pboolean_str(self);
-}
-
-PyObject *
-pboolean_conform(pbooleanObject *self, PyObject *args)
-{
-    PyObject *res, *proto;
-    
-    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
-
-    if (proto == (PyObject*)&isqlquoteType)
-        res = (PyObject*)self;
-    else
-        res = Py_None;
-    
-    Py_INCREF(res);
-    return res;
-}
-
-/** the Boolean object */
-
-/* object member list */
-
-static struct PyMemberDef pbooleanObject_members[] = {
-    {"adapted", T_OBJECT, offsetof(pbooleanObject, wrapped), RO},
-    {NULL}
-};
-
-/* object method table */
-
-static PyMethodDef pbooleanObject_methods[] = {
-    {"getquoted", (PyCFunction)pboolean_getquoted, METH_VARARGS,
-     "getquoted() -> wrapped object value as SQL-quoted string"},
-    {"__conform__", (PyCFunction)pboolean_conform, METH_VARARGS, NULL},
-    {NULL}  /* Sentinel */
-};
-
-/* initialization and finalization methods */
-
-static int
-pboolean_setup(pbooleanObject *self, PyObject *obj)
-{
-    Dprintf("pboolean_setup: init pboolean object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-
-    self->wrapped = obj;
-    Py_INCREF(self->wrapped);
-    
-    Dprintf("pboolean_setup: good pboolean object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-pboolean_dealloc(PyObject* obj)
-{
-    pbooleanObject *self = (pbooleanObject *)obj;
-
-    Py_XDECREF(self->wrapped);
-    
-    Dprintf("pboolean_dealloc: deleted pboolean object at %p, refcnt = %d",
-            obj, obj->ob_refcnt);
-    
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-pboolean_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    PyObject *o;
-    
-    if (!PyArg_ParseTuple(args, "O", &o))
-        return -1;
-
-    return pboolean_setup((pbooleanObject *)obj, o);
-}
-
-static PyObject *
-pboolean_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{    
-    return type->tp_alloc(type, 0);
-}
-
-static void
-pboolean_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-pboolean_repr(pbooleanObject *self)
-{
-    return PyString_FromFormat("<psycopg2._psycopg.Boolean object at %p>",
-                                self);
-}
-
-
-/* object type */
-
-#define pbooleanType_doc \
-"Boolean(str) -> new Boolean adapter object"
-
-PyTypeObject pbooleanType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.Boolean",
-    sizeof(pbooleanObject),
-    0,
-    pboolean_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/
-
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/ 
-
-    0,          /*tp_compare*/
-
-    (reprfunc)pboolean_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)pboolean_str, /*tp_str*/
-    
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    pbooleanType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    pbooleanObject_methods, /*tp_methods*/
-    pbooleanObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    pboolean_init, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    pboolean_new, /*tp_new*/
-    (freefunc)pboolean_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
-
-
-/** module-level functions **/
-
-PyObject *
-psyco_Boolean(PyObject *module, PyObject *args)
-{
-    PyObject *obj;
-     
-    if (!PyArg_ParseTuple(args, "O", &obj))
-        return NULL;
-  
-    return PyObject_CallFunction((PyObject *)&pbooleanType, "O", obj);
-}
diff --git a/psycopg2/psycopg/adapter_pboolean.h b/psycopg2/psycopg/adapter_pboolean.h
deleted file mode 100644 (file)
index efdfe56..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* adapter_pboolean.h - definition for the psycopg boolean type wrapper
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_PBOOLEAN_H
-#define PSYCOPG_PBOOLEAN_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PyTypeObject pbooleanType;
-
-typedef struct {
-    PyObject HEAD;
-
-    /* this is the real object we wrap */
-    PyObject *wrapped;
-
-} pbooleanObject;
-
-/* functions exported to psycopgmodule.c */
-    
-extern PyObject *psyco_Boolean(PyObject *module, PyObject *args);
-#define psyco_Boolean_doc \
-    "Boolean(obj) -> new boolean value"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_PBOOLEAN_H) */
diff --git a/psycopg2/psycopg/adapter_qstring.c b/psycopg2/psycopg/adapter_qstring.c
deleted file mode 100644 (file)
index 2eaf7f3..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-/* adapter_qstring.c - QuotedString objects
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-
-#include <libpq-fe.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/connection.h"
-#include "psycopg/adapter_qstring.h"
-#include "psycopg/microprotocols_proto.h"
-
-
-/** the quoting code */
-
-#ifndef PSYCOPG_OWN_QUOTING
-static size_t
-qstring_escape(char *to, char *from, size_t len, PGconn *conn)
-{
-#if PG_MAJOR_VERSION > 8 || \
- (PG_MAJOR_VERSION == 8 && PG_MINOR_VERSION > 1) || \
- (PG_MAJOR_VERSION == 8 && PG_MINOR_VERSION == 1 && PG_PATCH_VERSION >= 4)
-    int err;
-    if (conn)
-        return PQescapeStringConn(conn, to, from, len, &err);
-    else
-#endif
-        return PQescapeString(to, from, len);
-}
-#else
-static size_t
-qstring_escape(char *to, char *from, size_t len, PGconn *conn)
-{
-    int i, j;
-
-    for (i=0, j=0; i<len; i++) {
-        switch(from[i]) {
-
-        case '\'':
-            to[j++] = '\'';
-            to[j++] = '\'';
-            break;
-
-        case '\\':
-            to[j++] = '\\';
-            to[j++] = '\\';
-            break;
-
-        case '\0':
-            /* do nothing, embedded \0 are discarded */
-            break;
-
-        default:
-            to[j++] = from[i];
-        }
-    }
-    to[j] = '\0';
-
-    Dprintf("qstring_quote: to = %s", to);
-    return strlen(to);
-}
-#endif
-
-/* qstring_quote - do the quote process on plain and unicode strings */
-
-static PyObject *
-qstring_quote(qstringObject *self)
-{
-    PyObject *str;
-    char *s, *buffer;
-    int len;
-
-    /* if the wrapped object is an unicode object we can encode it to match
-       self->encoding but if the encoding is not specified we don't know what
-       to do and we raise an exception */
-
-    /* TODO: we need a real translation table from postgres encoding names to
-           python ones here */
-    
-    if (PyUnicode_Check(self->wrapped) && self->encoding) {
-        PyObject *enc = PyDict_GetItemString(psycoEncodings, self->encoding);
-        /* note that pgenc is a borrowed reference */
-
-        if (enc) {
-            char *s = PyString_AsString(enc);
-            Dprintf("qstring_quote: encoding unicode object to %s", s);
-            str = PyUnicode_AsEncodedString(self->wrapped, s, NULL);
-            Dprintf("qstring_quote: got encoded object at %p", str);
-            if (str == NULL) return NULL;
-        }
-        else {
-            /* can't find the right encoder, raise exception */
-            PyErr_Format(InterfaceError,
-                         "can't encode unicode string to %s", self->encoding);
-            return NULL;
-        }
-    }
-
-    /* if the wrapped object is a simple string, we don't know how to
-       (re)encode it, so we pass it as-is */
-    else if (PyString_Check(self->wrapped)) {
-        str = self->wrapped;
-        /* INCREF to make it ref-wise identical to unicode one */
-        Py_INCREF(str);
-    }
-    
-    /* if the wrapped object is not a string, this is an error */ 
-    else {
-        PyErr_SetString(PyExc_TypeError,
-                        "can't quote non-string object (or missing encoding)");
-        return NULL;
-    }
-
-    /* encode the string into buffer */
-    PyString_AsStringAndSize(str, &s, &len);
-        
-    buffer = (char *)PyMem_Malloc((len*2+3) * sizeof(char));
-    if (buffer == NULL) {
-        Py_DECREF(str);
-        PyErr_NoMemory();
-        return NULL;
-    }
-
-    Py_BEGIN_ALLOW_THREADS;
-    len = qstring_escape(buffer+1, s, len,
-        self->conn ? ((connectionObject*)self->conn)->pgconn : NULL);
-    buffer[0] = '\'' ; buffer[len+1] = '\'';
-    Py_END_ALLOW_THREADS;
-    
-    self->buffer = PyString_FromStringAndSize(buffer, len+2);
-    PyMem_Free(buffer);
-    Py_DECREF(str);
-        
-    return self->buffer;
-}
-
-/* qstring_str, qstring_getquoted - return result of quoting */
-
-static PyObject *
-qstring_str(qstringObject *self)
-{
-    if (self->buffer == NULL) {
-        qstring_quote(self);
-    }
-    Py_XINCREF(self->buffer);
-    return self->buffer;
-}
-
-PyObject *
-qstring_getquoted(qstringObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    return qstring_str(self);
-}
-
-PyObject *
-qstring_prepare(qstringObject *self, PyObject *args)
-{
-    connectionObject *conn;
-
-    if (!PyArg_ParseTuple(args, "O", &conn))
-        return NULL;
-
-    /* we bother copying the encoding only if the wrapped string is unicode,
-       we don't need the encoding if that's not the case */
-    if (PyUnicode_Check(self->wrapped)) {
-        if (self->encoding) free(self->encoding);
-        self->encoding = strdup(conn->encoding);
-        Dprintf("qstring_prepare: set encoding to %s", conn->encoding);
-    }
-
-    Py_XDECREF(self->conn);
-    if (conn) {
-        self->conn = (PyObject*)conn;
-        Py_INCREF(self->conn);
-    }
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-    
-PyObject *
-qstring_conform(qstringObject *self, PyObject *args)
-{
-    PyObject *res, *proto;
-    
-    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
-
-    if (proto == (PyObject*)&isqlquoteType)
-        res = (PyObject*)self;
-    else
-        res = Py_None;
-    
-    Py_INCREF(res);
-    return res;
-}
-
-/** the QuotedString object **/
-
-/* object member list */
-
-static struct PyMemberDef qstringObject_members[] = {
-    {"adapted", T_OBJECT, offsetof(qstringObject, wrapped), RO},
-    {"buffer", T_OBJECT, offsetof(qstringObject, buffer), RO},
-    {"encoding", T_STRING, offsetof(qstringObject, encoding), RO},
-    {NULL}
-};
-
-/* object method table */
-
-static PyMethodDef qstringObject_methods[] = {
-    {"getquoted", (PyCFunction)qstring_getquoted, METH_VARARGS,
-     "getquoted() -> wrapped object value as SQL-quoted string"},
-    {"prepare", (PyCFunction)qstring_prepare, METH_VARARGS,
-     "prepare(conn) -> set encoding to conn->encoding and store conn"},
-    {"__conform__", (PyCFunction)qstring_conform, METH_VARARGS, NULL},
-    {NULL}  /* Sentinel */
-};
-
-/* initialization and finalization methods */
-
-static int
-qstring_setup(qstringObject *self, PyObject *str, char *enc)
-{
-    Dprintf("qstring_setup: init qstring object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-
-    self->buffer = NULL;
-    self->conn = NULL;
-
-    /* FIXME: remove this orrible strdup */
-    if (enc) self->encoding = strdup(enc);
-    
-    self->wrapped = str;
-    Py_INCREF(self->wrapped);
-    
-    Dprintf("qstring_setup: good qstring object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-qstring_dealloc(PyObject* obj)
-{
-    qstringObject *self = (qstringObject *)obj;
-
-    Py_XDECREF(self->wrapped);
-    Py_XDECREF(self->buffer);
-    Py_XDECREF(self->conn);
-
-    if (self->encoding) free(self->encoding);
-    
-    Dprintf("qstring_dealloc: deleted qstring object at %p, refcnt = %d",
-            obj, obj->ob_refcnt);
-    
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-qstring_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    PyObject *str;
-    char *enc = "latin-1"; /* default encoding as in Python */
-    
-    if (!PyArg_ParseTuple(args, "O|s", &str, &enc))
-        return -1;
-
-    return qstring_setup((qstringObject *)obj, str, enc);
-}
-
-static PyObject *
-qstring_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{    
-    return type->tp_alloc(type, 0);
-}
-
-static void
-qstring_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-qstring_repr(qstringObject *self)
-{
-    return PyString_FromFormat("<psycopg2._psycopg.QuotedString object at %p>", 
-                                self);
-}
-
-/* object type */
-
-#define qstringType_doc \
-"QuotedString(str, enc) -> new quoted object with 'enc' encoding"
-
-PyTypeObject qstringType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.QuotedString",
-    sizeof(qstringObject),
-    0,
-    qstring_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/   
-
-    0,          /*tp_compare*/
-    (reprfunc)qstring_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)qstring_str, /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-
-    qstringType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    qstringObject_methods, /*tp_methods*/
-    qstringObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    qstring_init, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    qstring_new, /*tp_new*/
-    (freefunc)qstring_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
-
-
-/** module-level functions **/
-
-PyObject *
-psyco_QuotedString(PyObject *module, PyObject *args)
-{
-    PyObject *str;
-    char *enc = "latin-1"; /* default encoding as in Python */
-    
-    if (!PyArg_ParseTuple(args, "O|s", &str, &enc))
-        return NULL;
-  
-    return PyObject_CallFunction((PyObject *)&qstringType, "Os", str, enc);
-}
diff --git a/psycopg2/psycopg/adapter_qstring.h b/psycopg2/psycopg/adapter_qstring.h
deleted file mode 100644 (file)
index 544b32b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* adapter_qstring.h - definition for the QuotedString type
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_QSTRING_H
-#define PSYCOPG_QSTRING_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PyTypeObject qstringType;
-
-typedef struct {
-    PyObject HEAD;
-
-    PyObject *wrapped;
-    PyObject *buffer;
-    char     *encoding;
-
-    PyObject *conn;
-} qstringObject;
-    
-/* functions exported to psycopgmodule.c */
-    
-extern PyObject *psyco_QuotedString(PyObject *module, PyObject *args);
-#define psyco_QuotedString_doc \
-    "QuotedString(str, enc) -> new quoted string"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_QSTRING_H) */
diff --git a/psycopg2/psycopg/config.h b/psycopg2/psycopg/config.h
deleted file mode 100644 (file)
index 649fee8..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/* config.h - general config and Dprintf macro
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_CONFIG_H
-#define PSYCOPG_CONFIG_H 1
-
-/* debug printf-like function */
-#if defined( __GNUC__) && !defined(__APPLE__)
-#ifdef PSYCOPG_DEBUG
-#include <sys/types.h>
-#include <unistd.h>
-#define Dprintf(fmt, args...) \
-    fprintf(stderr, "[%d] " fmt "\n", getpid() , ## args)
-#else
-#define Dprintf(fmt, args...)
-#endif
-#else /* !__GNUC__ or __APPLE__ */
-#ifdef PSYCOPG_DEBUG
-#include <stdarg.h>
-static void Dprintf(const char *fmt, ...)
-{
-    va_list ap;
-    va_start(ap, fmt);
-    vprintf(fmt, ap);
-    va_end(ap);
-    printf("\n");
-}
-#else
-static void Dprintf(const char *fmt, ...) {}
-#endif
-#endif
-
-/* pthreads work-arounds for mutilated operating systems */
-#if defined(_WIN32) || defined(__BEOS__)
-
-#ifdef _WIN32
-#include <winsock2.h>
-#define pthread_mutex_t HANDLE
-#define pthread_condvar_t HANDLE
-#define pthread_mutex_lock(object) WaitForSingleObject(object, INFINITE)
-#define pthread_mutex_unlock(object) ReleaseMutex(object)
-#define pthread_mutex_destroy(ref) (CloseHandle(*(ref)))
-/* convert pthread mutex to native mutex */
-static int pthread_mutex_init(pthread_mutex_t *mutex, void* fake)
-{
-  *mutex = CreateMutex(NULL, FALSE, NULL);
-  return 0;
-}
-#endif /* _WIN32 */
-
-#ifdef __BEOS__
-#include <OS.h>
-#define pthread_mutex_t sem_id
-#define pthread_mutex_lock(object) acquire_sem(object)
-#define pthread_mutex_unlock(object) release_sem(object)
-#define pthread_mutex_destroy(ref) delete_sem(*ref)
-static int pthread_mutex_init(pthread_mutex_t *mutex, void* fake)
-{
-        *mutex = create_sem(1, "psycopg_mutex");
-        if (*mutex < B_OK)
-                return *mutex;
-        return 0;
-}
-#endif /* __BEOS__ */
-
-#else /* pthread is available */
-#include <pthread.h>
-#endif
-
-/* to work around the fact that Windows does not have a gmtime_r function, or
-   a proper gmtime function */
-#ifdef _WIN32
-static struct tm *gmtime_r(time_t *t, struct tm *tm)
-{
-  tm = gmtime(t);
-  return tm;
-}
-static struct tm *localtime_r(time_t *t, struct tm *tm)
-{
-  tm = localtime(t);
-  return tm;
-}
-/* remove the inline keyword, since it doesn't work unless C++ file */
-#define inline
-#endif
-
-#if defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__)
-/* what's this, we have no round function either? */
-static double round(double num)
-{
-  return (num >= 0) ? floor(num + 0.5) : ceil(num - 0.5);
-}
-#endif
-
-/* postgresql < 7.4 does not have PQfreemem */
-#ifndef HAVE_PQFREEMEM
-#define PQfreemem free
-#endif
-
-#endif /* !defined(PSYCOPG_CONFIG_H) */
diff --git a/psycopg2/psycopg/connection.h b/psycopg2/psycopg/connection.h
deleted file mode 100644 (file)
index 7010120..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* connection.h - definition for the psycopg connection type
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_CONNECTION_H
-#define PSYCOPG_CONNECTION_H 1
-
-#include <Python.h>
-#include <libpq-fe.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* connection status */
-#define CONN_STATUS_READY 1
-#define CONN_STATUS_BEGIN 2
-#define CONN_STATUS_SYNC  3
-#define CONN_STATUS_ASYNC 4
-    
-extern PyTypeObject connectionType;
-
-typedef struct {
-    PyObject HEAD;
-
-    pthread_mutex_t lock;   /* the global connection lock */
-
-    char *dsn;              /* data source name */
-    char *critical;         /* critical error on this connection */
-    char *encoding;         /* current backend encoding */
-    
-    long int closed;          /* 2 means connection has been closed */
-    long int isolation_level; /* isolation level for this connection */
-    long int mark;            /* number of commits/rollbacks done so far */ 
-    int status;               /* status of the connection */
-    int protocol;             /* protocol version */
-    
-    PGconn *pgconn;         /* the postgresql connection */
-
-    PyObject *async_cursor;
-    
-    /* notice processing */
-    PyObject *notice_list;
-    PyObject *notice_filter;
-
-    /* notifies */
-    PyObject *notifies;
-
-    /* errors (DBAPI-2.0 extension) */
-    PyObject *exc_Error;
-    PyObject *exc_Warning;
-    PyObject *exc_InterfaceError;
-    PyObject *exc_DatabaseError;
-    PyObject *exc_InternalError;
-    PyObject *exc_OperationalError;
-    PyObject *exc_ProgrammingError;
-    PyObject *exc_IntegrityError;
-    PyObject *exc_DataError;
-    PyObject *exc_NotSupportedError;
-    
-} connectionObject;
-    
-/* C-callable functions in connection_int.c and connection_ext.c */
-extern int  conn_connect(connectionObject *self);
-extern void conn_close(connectionObject *self);
-extern int  conn_commit(connectionObject *self);
-extern int  conn_rollback(connectionObject *self);
-extern int  conn_switch_isolation_level(connectionObject *self, int level);
-extern int  conn_set_client_encoding(connectionObject *self, char *enc); 
-
-/* exception-raising macros */
-#define EXC_IF_CONN_CLOSED(self) if ((self)->closed > 0) { \
-    PyErr_SetString(InterfaceError, "connection already closed"); \
-    return NULL; }
-    
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_CONNECTION_H) */
diff --git a/psycopg2/psycopg/connection_int.c b/psycopg2/psycopg/connection_int.c
deleted file mode 100644 (file)
index 3e61ddf..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-/* connection_int.c - code used by the connection object
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/connection.h"
-#include "psycopg/cursor.h"
-#include "psycopg/pqpath.h"
-
-/* conn_notice_callback - process notices */
-
-void
-conn_notice_callback(void *args, const char *message)
-{
-    connectionObject *self = (connectionObject *)args;
-
-    Dprintf("conn_notice_callback: %s", message);
-
-    /* unfortunately the old protocl return COPY FROM errors only as notices,
-       so we need to filter them looking for such errors */
-    if (strncmp(message, "ERROR", 5) == 0)
-        pq_set_critical(self, message);
-    else
-        PyList_Append(self->notice_list, PyString_FromString(message));
-}
-
-/* conn_connect - execute a connection to the dataabase */
-
-int
-conn_connect(connectionObject *self)
-{
-    PGconn *pgconn;
-    PGresult *pgres;
-    char *data, *tmp;
-    int i;
-    
-    /* we need the initial date style to be ISO, for typecasters; if the user
-       later change it, she must know what she's doing... */
-    const char *datestyle = "SET DATESTYLE TO 'ISO'";
-    const char *encoding  = "SHOW client_encoding";
-    const char *isolevel  = "SHOW default_transaction_isolation";
-    
-    const char *lvl1a = "read uncommitted";
-    const char *lvl1b = "read committed";
-    const char *lvl2a = "repeatable read";
-    const char *lvl2b = "serializable";
-    
-    Py_BEGIN_ALLOW_THREADS;
-    pgconn = PQconnectdb(self->dsn);
-    Py_END_ALLOW_THREADS;
-    
-    Dprintf("conn_connect: new postgresql connection at %p", pgconn);
-
-    if (pgconn == NULL)
-    {
-        Dprintf("conn_connect: PQconnectdb(%s) FAILED", self->dsn);
-        PyErr_SetString(OperationalError, "PQconnectdb() failed");
-        return -1;
-    }
-    else if (PQstatus(pgconn) == CONNECTION_BAD)
-    {
-        Dprintf("conn_connect: PQconnectdb(%s) returned BAD", self->dsn);
-        PyErr_SetString(OperationalError, PQerrorMessage(pgconn));
-        PQfinish(pgconn);
-        return -1;
-    }
-
-    PQsetNoticeProcessor(pgconn, conn_notice_callback, (void*)self);
-
-    Py_BEGIN_ALLOW_THREADS;
-    pgres = PQexec(pgconn, datestyle);
-    Py_END_ALLOW_THREADS;
-
-    if (pgres == NULL || PQresultStatus(pgres) != PGRES_COMMAND_OK ) {
-        PyErr_SetString(OperationalError, "can't set datestyle to ISO");
-        PQfinish(pgconn);
-        IFCLEARPGRES(pgres);
-        return -1;
-    }
-    CLEARPGRES(pgres);
-
-    Py_BEGIN_ALLOW_THREADS;
-    pgres = PQexec(pgconn, encoding);
-    Py_END_ALLOW_THREADS;
-
-    if (pgres == NULL || PQresultStatus(pgres) != PGRES_TUPLES_OK) {
-        PyErr_SetString(OperationalError, "can't fetch client_encoding");
-        PQfinish(pgconn);
-        IFCLEARPGRES(pgres);
-        return -1;
-    }
-    tmp = PQgetvalue(pgres, 0, 0);
-    self->encoding = PyMem_Malloc(strlen(tmp)+1);
-    if (self->encoding == NULL) {
-        /* exception already set by PyMem_Malloc() */
-        PQfinish(pgconn);
-        IFCLEARPGRES(pgres);
-        return -1;
-    }  
-    for (i=0 ; i < strlen(tmp) ; i++)
-        self->encoding[i] = toupper(tmp[i]);
-    self->encoding[i] = '\0';
-    CLEARPGRES(pgres);
-    
-    Py_BEGIN_ALLOW_THREADS;
-    pgres = PQexec(pgconn, isolevel);
-    Py_END_ALLOW_THREADS;
-
-    if (pgres == NULL || PQresultStatus(pgres) != PGRES_TUPLES_OK) {
-        PyErr_SetString(OperationalError,
-                         "can't fetch default_isolation_level");
-        PQfinish(pgconn);
-        IFCLEARPGRES(pgres);
-        return -1;
-    }
-    data = PQgetvalue(pgres, 0, 0);
-    if ((strncmp(lvl1a, data, strlen(lvl1a)) == 0)
-        || (strncmp(lvl1b, data, strlen(lvl1b)) == 0))
-        self->isolation_level = 1;
-    else if ((strncmp(lvl2a, data, strlen(lvl2a)) == 0)
-        || (strncmp(lvl2b, data, strlen(lvl2b)) == 0))
-        self->isolation_level = 2;
-    else
-        self->isolation_level = 2;
-    CLEARPGRES(pgres);
-
-    if (PQsetnonblocking(pgconn, 1) != 0) {
-        Dprintf("conn_connect: PQsetnonblocking() FAILED");
-        PyErr_SetString(OperationalError, "PQsetnonblocking() failed");
-        PQfinish(pgconn);
-        return -1;
-    }
-
-#ifdef HAVE_PQPROTOCOL3
-    self->protocol = PQprotocolVersion(pgconn);
-#else
-    self->protocol = 2;
-#endif
-    Dprintf("conn_connect: using protocol %d", self->protocol);
-    
-    self->pgconn = pgconn;
-    return 0;
-}
-
-/* conn_close - do anything needed to shut down the connection */
-
-void
-conn_close(connectionObject *self)
-{
-    /* sets this connection as closed even for other threads; also note that
-       we need to check the value of pgconn, because we get called even when
-       the connection fails! */
-    Py_BEGIN_ALLOW_THREADS;
-    pthread_mutex_lock(&self->lock);
-
-    self->closed = 1;
-
-    /* execute a forced rollback on the connection (but don't check the
-       result, we're going to close the pq connection anyway */    
-    if (self->pgconn) {
-        pq_abort(self);
-        PQfinish(self->pgconn);
-        Dprintf("conn_close: PQfinish called");
-        self->pgconn = NULL;
-    }
-
-    pthread_mutex_unlock(&self->lock);
-    Py_END_ALLOW_THREADS;
-
-}
-
-/* conn_commit - commit on a connection */
-
-int
-conn_commit(connectionObject *self)
-{
-    int res;
-
-    Py_BEGIN_ALLOW_THREADS;
-    pthread_mutex_lock(&self->lock);
-
-    res = pq_commit(self);
-    self->mark++;
-    
-    pthread_mutex_unlock(&self->lock);
-    Py_END_ALLOW_THREADS;
-
-    return res;
-}
-
-/* conn_rollback - rollback a connection */
-
-int
-conn_rollback(connectionObject *self)
-{
-    int res;
-
-    Py_BEGIN_ALLOW_THREADS;
-    pthread_mutex_lock(&self->lock);
-
-    res = pq_abort(self);
-    self->mark++;
-    
-    pthread_mutex_unlock(&self->lock);
-    Py_END_ALLOW_THREADS;
-
-    return res;
-}
-
-/* conn_switch_isolation_level - switch isolation level on the connection */
-
-int
-conn_switch_isolation_level(connectionObject *self, int level)
-{
-    int res = 0;
-
-    Py_BEGIN_ALLOW_THREADS;
-    pthread_mutex_lock(&self->lock);
-    
-    /* if the current isolation level is > 0 we need to abort the current
-       transaction before changing; that all folks! */
-    if (self->isolation_level != level && self->isolation_level > 0) {
-        res = pq_abort(self);
-    }
-    self->isolation_level = level;
-    self->mark++;
-    
-    Dprintf("conn_switch_isolation_level: switched to level %d", level);
-    
-    pthread_mutex_unlock(&self->lock);
-    Py_END_ALLOW_THREADS;
-
-    return res;   
-}
-
-/* conn_set_client_encoding - switch client encoding on connection */
-
-int
-conn_set_client_encoding(connectionObject *self, char *enc)
-{
-    PGresult *pgres;
-    char query[48];
-    int res = 0;
-    
-    /* TODO: check for async query here and raise error if necessary */
-    
-    Py_BEGIN_ALLOW_THREADS;
-    pthread_mutex_lock(&self->lock);
-    
-    /* set encoding, no encoding string is longer than 24 bytes */
-    PyOS_snprintf(query, 47, "SET client_encoding = '%s'", enc);
-
-    /* abort the current transaction, to set the encoding ouside of
-       transactions */
-    res = pq_abort(self);
-
-    if (res == 0) {
-        pgres = PQexec(self->pgconn, query);
-
-        if (pgres == NULL || PQresultStatus(pgres) != PGRES_COMMAND_OK ) {
-            res = -1;
-        }
-        else {
-            /* no error, we can proceeed and store the new encoding */
-            if (self->encoding) free(self->encoding);
-            self->encoding = strdup(enc);
-        }
-
-        IFCLEARPGRES(pgres);
-    }
-    
-    Dprintf("conn_set_client_encoding: set encoding to %s", self->encoding);
-    
-    pthread_mutex_unlock(&self->lock);
-    Py_END_ALLOW_THREADS;
-
-    if (res == -1)
-        PyErr_Format(OperationalError, "can't set encoding to %s", enc);
-        
-    return res;   
-}
diff --git a/psycopg2/psycopg/connection_type.c b/psycopg2/psycopg/connection_type.c
deleted file mode 100644 (file)
index f8cbd80..0000000
+++ /dev/null
@@ -1,422 +0,0 @@
-/* connection_type.c - python interface to connection objects
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/connection.h"
-#include "psycopg/cursor.h"
-
-/** DBAPI methods **/
-
-/* cursor method - allocate a new cursor */
-
-#define psyco_conn_cursor_doc \
-"cursor(cursor_factory=extensions.cursor) -- new cursor\n\n"                \
-"Return a new cursor.\n\nThe ``cursor_factory`` argument can be used to\n"  \
-"create non-standard cursors by passing a class different from the\n"       \
-"default. Note that the new class *should* be a sub-class of\n"             \
-"`extensions.cursor`.\n\n"                                                  \
-":rtype: `extensions.cursor`"
-
-static PyObject *
-psyco_conn_cursor(connectionObject *self, PyObject *args, PyObject *keywds)
-{
-    char *name = NULL;
-    PyObject *obj, *factory = NULL;
-
-    static char *kwlist[] = {"name", "cursor_factory", NULL};
-    
-    if (!PyArg_ParseTupleAndKeywords(args, keywds, "|sO", kwlist,
-                                     &name, &factory)) {
-        return NULL;
-    }
-
-    EXC_IF_CONN_CLOSED(self);
-
-    Dprintf("psyco_conn_cursor: new cursor for connection at %p", self);
-    Dprintf("psyco_conn_cursor:     parameters: name = %s", name);
-    
-    if (factory == NULL) factory = (PyObject *)&cursorType;
-    if (name)
-        obj = PyObject_CallFunction(factory, "Os", self, name);    
-    else
-        obj = PyObject_CallFunction(factory, "O", self);
-
-    if (obj == NULL) return NULL;
-    if (PyObject_IsInstance(obj, (PyObject *)&cursorType) == 0) {
-        PyErr_SetString(PyExc_TypeError,
-            "cursor factory must be subclass of psycopg2._psycopg.cursor");
-        Py_DECREF(obj);
-        return NULL;
-    }
-    
-    Dprintf("psyco_conn_cursor: new cursor at %p: refcnt = %d",
-            obj, obj->ob_refcnt);
-    return obj;
-}
-
-
-/* close method - close the connection and all related cursors */
-
-#define psyco_conn_close_doc "close() -- Close the connection."
-
-static PyObject *
-psyco_conn_close(connectionObject *self, PyObject *args)
-{
-    EXC_IF_CONN_CLOSED(self);
-
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-                                     
-    Dprintf("psyco_conn_close: closing connection at %p", self);
-    conn_close(self);
-    Dprintf("psyco_conn_close: connection at %p closed", self);
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* commit method - commit all changes to the database */
-
-#define psyco_conn_commit_doc "commit() -- Commit all changes to database."
-
-static PyObject *
-psyco_conn_commit(connectionObject *self, PyObject *args)
-{
-    EXC_IF_CONN_CLOSED(self);
-
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-
-    /* FIXME: check return status? */
-    conn_commit(self);
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* rollback method - roll back all changes done to the database */
-
-#define psyco_conn_rollback_doc \
-"rollback() -- Roll back all changes done to database."
-
-static PyObject *
-psyco_conn_rollback(connectionObject *self, PyObject *args)
-{
-    EXC_IF_CONN_CLOSED(self);
-
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-
-    /* FIXME: check return status? */
-    conn_rollback(self);
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-#ifdef PSYCOPG_EXTENSIONS
-/* set_isolation_level method - switch connection isolation level */
-
-#define psyco_conn_set_isolation_level_doc \
-"set_isolation_level(level) -- Switch isolation level to ``level``."
-
-static PyObject *
-psyco_conn_set_isolation_level(connectionObject *self, PyObject *args)
-{
-    int level = 1;
-    
-    EXC_IF_CONN_CLOSED(self);
-
-    if (!PyArg_ParseTuple(args, "i", &level)) return NULL;
-
-    if (level < 0 || level > 2) {
-        PyErr_SetString(PyExc_ValueError,
-                        "isolation level out of bounds (0,3)");
-        return NULL;
-    }
-    
-    /* FIXME: check return status? */
-    conn_switch_isolation_level(self, level);
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-\f
-
-/* set_isolation_level method - switch connection isolation level */
-
-#define psyco_conn_set_client_encoding_doc \
-"set_client_encoding(encoding) -- Set client encoding to ``encoding``."
-
-static PyObject *
-psyco_conn_set_client_encoding(connectionObject *self, PyObject *args)
-{
-    char *enc = NULL;
-    
-    EXC_IF_CONN_CLOSED(self);
-
-    if (!PyArg_ParseTuple(args, "s", &enc)) return NULL;
-    
-    if (conn_set_client_encoding(self, enc) == 0) {
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-    else {
-        return NULL;
-    }
-}
-#endif
-
-
-/** the connection object **/
-
-
-/* object method list */
-
-static struct PyMethodDef connectionObject_methods[] = {
-    {"cursor", (PyCFunction)psyco_conn_cursor,
-     METH_VARARGS|METH_KEYWORDS, psyco_conn_cursor_doc},
-    {"close", (PyCFunction)psyco_conn_close,
-     METH_VARARGS, psyco_conn_close_doc},
-    {"commit", (PyCFunction)psyco_conn_commit,
-     METH_VARARGS, psyco_conn_commit_doc},
-    {"rollback", (PyCFunction)psyco_conn_rollback,
-     METH_VARARGS, psyco_conn_rollback_doc},
-#ifdef PSYCOPG_EXTENSIONS
-    {"set_isolation_level", (PyCFunction)psyco_conn_set_isolation_level,
-     METH_VARARGS, psyco_conn_set_isolation_level_doc},
-    {"set_client_encoding", (PyCFunction)psyco_conn_set_client_encoding,
-     METH_VARARGS, psyco_conn_set_client_encoding_doc},    
-#endif    
-    {NULL}
-};
-
-/* object member list */
-
-static struct PyMemberDef connectionObject_members[] = {
-    /* DBAPI-2.0 extensions (exception objects) */
-    {"Error", T_OBJECT, 
-        offsetof(connectionObject, exc_Error), RO, Error_doc},
-    {"Warning", 
-        T_OBJECT, offsetof(connectionObject, exc_Warning), RO, Warning_doc},
-    {"InterfaceError", T_OBJECT,
-        offsetof(connectionObject, exc_InterfaceError), RO,
-        InterfaceError_doc},
-    {"DatabaseError", T_OBJECT,
-        offsetof(connectionObject, exc_DatabaseError), RO, DatabaseError_doc},
-    {"InternalError", T_OBJECT,
-        offsetof(connectionObject, exc_InternalError), RO, InternalError_doc},
-    {"OperationalError", T_OBJECT,
-        offsetof(connectionObject, exc_OperationalError), RO,
-        OperationalError_doc},
-    {"ProgrammingError", T_OBJECT,
-        offsetof(connectionObject, exc_ProgrammingError), RO,
-        ProgrammingError_doc},
-    {"IntegrityError", T_OBJECT,
-        offsetof(connectionObject, exc_IntegrityError), RO,
-        IntegrityError_doc},
-    {"DataError", T_OBJECT,
-        offsetof(connectionObject, exc_DataError), RO, DataError_doc},
-    {"NotSupportedError", T_OBJECT,
-        offsetof(connectionObject, exc_NotSupportedError), RO,
-        NotSupportedError_doc},
-#ifdef PSYCOPG_EXTENSIONS    
-    {"closed", T_LONG, offsetof(connectionObject, closed), RO,
-        "True if the connection is closed."},
-    {"isolation_level", T_LONG,
-        offsetof(connectionObject, isolation_level), RO,
-        "The current isolation level."},
-    {"encoding", T_STRING, offsetof(connectionObject, encoding), RO,
-        "The current client encoding."},
-    {"notices", T_OBJECT, offsetof(connectionObject, notice_list), RO},
-    {"notifies", T_OBJECT, offsetof(connectionObject, notifies), RO},
-    {"dsn", T_STRING, offsetof(connectionObject, dsn), RO,
-        "The current connection string."},
-    {"status", T_LONG,
-        offsetof(connectionObject, status), RO,
-       "The current transaction status."},
-#endif    
-    {NULL}
-};
-
-/* initialization and finalization methods */
-
-static int
-connection_setup(connectionObject *self, char *dsn)
-{
-    Dprintf("connection_setup: init connection object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    
-    self->dsn = strdup(dsn);
-    self->notice_list = PyList_New(0);
-    self->notifies = PyList_New(0);
-    self->closed = 0;
-    self->status = CONN_STATUS_READY;
-    self->critical = NULL;
-    self->async_cursor = NULL;
-    self->pgconn = NULL;
-    self->mark = 0;
-    
-    pthread_mutex_init(&(self->lock), NULL);
-    if (conn_connect(self) != 0) {
-        pthread_mutex_destroy(&(self->lock));
-        Dprintf("connection_init: FAILED");
-        return -1;
-    }
-    Dprintf("connection_setup: good connection object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-connection_dealloc(PyObject* obj)
-{
-    connectionObject *self = (connectionObject *)obj;
-
-    if (self->closed == 0) conn_close(self);
-    
-    if (self->dsn) free(self->dsn);
-    if (self->encoding) PyMem_Free(self->encoding);
-    if (self->critical) free(self->critical);
-    
-    Py_XDECREF(self->notice_list);
-    Py_XDECREF(self->notifies);
-    Py_XDECREF(self->async_cursor);
-    
-    pthread_mutex_destroy(&(self->lock));
-
-    Dprintf("connection_dealloc: deleted connection object at %p, refcnt = %d",
-            obj, obj->ob_refcnt);
-
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-connection_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    char *dsn;
-
-    if (!PyArg_ParseTuple(args, "s", &dsn))
-        return -1;
-
-    return connection_setup((connectionObject *)obj, dsn);
-}
-
-static PyObject *
-connection_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
-    return type->tp_alloc(type, 0);
-}
-
-static void
-connection_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-connection_repr(connectionObject *self)
-{
-    return PyString_FromFormat(
-        "<connection object at %p; dsn: '%s', closed: %ld>",
-        self, self->dsn, self->closed);
-}
-
-
-/* object type */
-
-#define connectionType_doc \
-"connection(dsn, ...) -> new connection object\n\n" \
-":Groups:\n" \
-"  * `DBAPI-2.0 errors`: Error, Warning, InterfaceError,\n" \
-"    DatabaseError, InternalError, OperationalError,\n" \
-"    ProgrammingError, IntegrityError, DataError, NotSupportedError"
-
-PyTypeObject connectionType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.connection",
-    sizeof(connectionObject),
-    0,
-    connection_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/ 
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/
-    0,          /*tp_compare*/
-    (reprfunc)connection_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)connection_repr, /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    connectionType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    connectionObject_methods, /*tp_methods*/
-    connectionObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    connection_init, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    connection_new, /*tp_new*/
-    (freefunc)connection_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
diff --git a/psycopg2/psycopg/cursor.h b/psycopg2/psycopg/cursor.h
deleted file mode 100644 (file)
index 5aab172..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/* cursor.h - definition for the psycopg cursor type
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_CURSOR_H
-#define PSYCOPG_CURSOR_H 1
-
-#include <Python.h>
-#include <libpq-fe.h>
-
-#include "psycopg/connection.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern PyTypeObject cursorType;
-
-typedef struct {
-    PyObject HEAD;
-
-    connectionObject *conn; /* connection owning the cursor */
-
-    int closed:1;            /* 1 if the cursor is closed */
-    int notuples:1;          /* 1 if the command was not a SELECT query */
-    int needsfetch:1;        /* 1 if a call to pq_fetch is pending */
-    
-    long int rowcount;       /* number of rows affected by last execute */
-    long int columns;        /* number of columns fetched from the db */
-    long int arraysize;      /* how many rows should fetchmany() return */
-    long int row;            /* the row counter for fetch*() operations */
-    long int mark;           /* transaction marker, copied from conn */
-
-    PyObject *description;   /* read-only attribute: sequence of 7-item
-                                sequences.*/
-
-    /* postgres connection stuff */
-    PGresult   *pgres;     /* result of last query */
-    PyObject   *pgstatus;  /* last message from the server after an execute */
-    Oid         lastoid;   /* last oid from an insert or InvalidOid */
-
-    PyObject *casts;      /* an array (tuple) of typecast functions */
-    PyObject *caster;     /* the current typecaster object */
-    
-    PyObject *copyfile;   /* file-like used during COPY TO/FROM ops */
-    long int  copysize;   /* size of the copy buffer during COPY TO/FROM ops */
-#define DEFAULT_COPYSIZE 16384
-    
-    PyObject *tuple_factory;    /* factory for result tuples */
-    PyObject *tzinfo_factory;   /* factory for tzinfo objects */
-    
-    PyObject *query;      /* last query executed */
-    
-    char *qattr;          /* quoting attr, used when quoting strings */
-    char *notice;         /* a notice from the backend */
-    char *name;           /* this cursor name */
-    
-    PyObject *string_types;   /* a set of typecasters for string types */
-    PyObject *binary_types;   /* a set of typecasters for binary types */
-
-} cursorObject;
-    
-/* C-callable functions in cursor_int.c and cursor_ext.c */
-extern void curs_reset(cursorObject *self);
-    
-/* exception-raising macros */
-#define EXC_IF_CURS_CLOSED(self) \
-if ((self)->closed || ((self)->conn && (self)->conn->closed)) { \
-    PyErr_SetString(InterfaceError, "cursor already closed");   \
-    return NULL; }
-
-#define EXC_IF_NO_TUPLES(self) \
-if ((self)->notuples && (self)->name == NULL) {               \
-    PyErr_SetString(ProgrammingError, "no results to fetch"); \
-    return NULL; }
-    
-#define EXC_IF_NO_MARK(self) \
-if ((self)->mark != (self)->conn->mark) {                                  \
-    PyErr_SetString(ProgrammingError, "named cursor isn't valid anymore"); \
-    return NULL; }
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_CURSOR_H) */
diff --git a/psycopg2/psycopg/cursor_int.c b/psycopg2/psycopg/cursor_int.c
deleted file mode 100644 (file)
index 8036268..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* cursor_int.c - code used by the cursor object
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/cursor.h"
-#include "psycopg/pqpath.h"
-
-/* curs_reset - reset the cursor to a clean state */
-
-void
-curs_reset(cursorObject *self)
-{
-    /* initialize some variables to default values */
-    self->notuples = 1;
-    self->rowcount = -1;
-    self->row = 0;
-
-    Py_XDECREF(self->description);
-    Py_INCREF(Py_None);
-    self->description = Py_None;
-
-    Py_XDECREF(self->casts);
-    self->casts = NULL;
-}
diff --git a/psycopg2/psycopg/cursor_type.c b/psycopg2/psycopg/cursor_type.c
deleted file mode 100644 (file)
index 73e4de6..0000000
+++ /dev/null
@@ -1,1553 +0,0 @@
-/* cursor_type.c - python interface to cursor objects
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public Likcense
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/cursor.h"
-#include "psycopg/connection.h"
-#include "psycopg/pqpath.h"
-#include "psycopg/typecast.h"
-#include "psycopg/microprotocols.h"
-#include "psycopg/microprotocols_proto.h"
-#include "pgversion.h"
-
-extern PyObject *pyPsycopgTzFixedOffsetTimezone;
-
-
-/** DBAPI methods **/
-
-/* close method - close the cursor */
-
-#define psyco_curs_close_doc \
-"close() -- Close the cursor."
-
-static PyObject *
-psyco_curs_close(cursorObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    
-    EXC_IF_CURS_CLOSED(self);
-    
-    if (self->name != NULL) {
-        char buffer[128];
-        
-        EXC_IF_NO_MARK(self);
-        PyOS_snprintf(buffer, 127, "CLOSE %s", self->name);
-        if (pq_execute(self, buffer, 0) == -1) return NULL;
-    }
-
-    self->closed = 1;
-    Dprintf("psyco_curs_close: cursor at %p closed", self);
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* execute method - executes a query */
-
-/* mogrify a query string and build argument array or dict */
-
-static int
-_mogrify(PyObject *var, PyObject *fmt, connectionObject *conn, PyObject **new)
-{
-    PyObject *key, *value, *n, *item;
-    char *d, *c;
-    int index = 0, force = 0;
-
-    /* from now on we'll use n and replace its value in *new only at the end,
-       just before returning. we also init *new to NULL to exit with an error
-       if we can't complete the mogrification */
-    n = *new = NULL;
-    c = PyString_AsString(fmt);
-
-    while(*c) {
-        /* handle plain percent symbol in format string */
-        if (c[0] == '%' && c[1] == '%') {
-            c+=2; force = 1;
-        }
-        
-        /* if we find '%(' then this is a dictionary, we:
-           1/ find the matching ')' and extract the key name
-           2/ locate the value in the dictionary (or return an error)
-           3/ mogrify the value into something usefull (quoting)...
-           4/ ...and add it to the new dictionary to be used as argument
-        */
-        else if (c[0] == '%' && c[1] == '(') {
-
-            /* let's have d point the end of the argument */
-            for (d = c + 2; *d && *d != ')'; d++);
-
-            if (*d == ')') {
-                key = PyString_FromStringAndSize(c+2, d-c-2);
-                value = PyObject_GetItem(var, key);
-                /* key has refcnt 1, value the original value + 1 */
-                
-                /*  if value is NULL we did not find the key (or this is not a
-                    dictionary): let python raise a KeyError */
-                if (value == NULL) {
-                    Py_DECREF(key); /* destroy key */
-                    Py_XDECREF(n);  /* destroy n */
-                    return -1;
-                }
-
-                Dprintf("_mogrify: value refcnt: %d (+1)", value->ob_refcnt);
-                
-                if (n == NULL) {
-                    n = PyDict_New();
-                }
-                
-                if ((item = PyObject_GetItem(n, key)) == NULL) {
-                    PyObject *t = NULL;
-
-                    PyErr_Clear();
-
-                    /* None is always converted to NULL; this is an
-                       optimization over the adapting code and can go away in
-                       the future if somebody finds a None adapter usefull. */
-                    if (value == Py_None) {
-                        t = PyString_FromString("NULL");
-                        PyDict_SetItem(n, key, t);
-                        /* t is a new object, refcnt = 1, key is at 2 */
-                        
-                        /* if the value is None we need to substitute the
-                           formatting char with 's' (FIXME: this should not be
-                           necessary if we drop support for formats other than
-                           %s!) */
-                        while (*d && !isalpha(*d)) d++;
-                        if (*d) *d = 's';
-                    }
-                    else {
-                        t = microprotocol_getquoted(value, conn);
-
-                        if (t != NULL) {
-                            PyDict_SetItem(n, key, t);
-                            /* both key and t refcnt +1, key is at 2 now */
-                        }
-                        else {
-                            /* no adapter found, raise a BIG exception */
-                            Py_XDECREF(value); 
-                            Py_DECREF(n);
-                            return -1;
-                        }
-                    }
-
-                    Py_XDECREF(t); /* t dies here */
-                    /* after the DECREF value has the original refcnt plus 1
-                       if it was added to the dictionary directly; good */
-                    Py_XDECREF(value); 
-                }
-                else {
-                    /* we have an item with one extra refcnt here, zap! */
-                    Py_DECREF(item);
-                }
-                Py_DECREF(key); /* key has the original refcnt now */
-                Dprintf("_mogrify: after value refcnt: %d",value->ob_refcnt);
-            }
-            c = d;
-        }
-        
-        else if (c[0] == '%' && c[1] != '(') {
-            /* this is a format that expects a tuple; it is much easier,
-               because we don't need to check the old/new dictionary for
-               keys */
-            
-            value = PySequence_GetItem(var, index);
-            /* value has refcnt inc'ed by 1 here */
-            
-            /*  if value is NULL this is not a sequence or the index is wrong;
-                anyway we let python set its own exception */
-            if (value == NULL) {
-                Py_XDECREF(n);
-                return -1;
-            }
-
-            if (n == NULL) {
-                n = PyTuple_New(PyObject_Length(var));
-            }
-            
-            /* let's have d point just after the '%' */
-            d = c+1;
-            
-            if (value == Py_None) {
-                PyTuple_SET_ITEM(n, index, PyString_FromString("NULL"));
-                while (*d && !isalpha(*d)) d++;
-                if (*d) *d = 's';
-                Py_DECREF(value);
-            }
-            else {
-                PyObject *t = microprotocol_getquoted(value, conn);
-
-                if (t != NULL) {
-                    PyTuple_SET_ITEM(n, index, t);
-                    Py_DECREF(value);
-                }
-                else {
-                    Py_DECREF(n);
-                    Py_DECREF(value);
-                    return -1;
-                }
-            }
-            c = d;
-            index += 1;
-        }
-        else {
-            c++;
-        }
-    }
-
-    if (force && n == NULL)
-        n = PyTuple_New(0);
-    *new = n;
-    
-    return 0;
-}
-    
-#define psyco_curs_execute_doc \
-"execute(query, vars=None, async=0) -- Execute query with bound vars."
-
-static int
-_psyco_curs_execute(cursorObject *self,
-                    PyObject *operation, PyObject *vars, long int async)
-{
-    int res;
-    PyObject *fquery, *cvt = NULL, *uoperation = NULL;
-    
-    pthread_mutex_lock(&(self->conn->lock));
-    if (self->conn->async_cursor != NULL
-        && self->conn->async_cursor != (PyObject*)self) {
-        pthread_mutex_unlock(&(self->conn->lock));
-        psyco_set_error(ProgrammingError, (PyObject*)self,
-                         "asynchronous query already in execution", NULL, NULL);
-        return 0;
-    }
-    pthread_mutex_unlock(&(self->conn->lock));
-    
-    if (!PyObject_IsTrue(operation)) {
-        psyco_set_error(ProgrammingError, (PyObject*)self,
-                         "can't execute an empty query", NULL, NULL);
-       return 0;
-    }
-    
-    if (PyUnicode_Check(operation)) {
-        PyObject *enc = PyDict_GetItemString(psycoEncodings,
-                                             self->conn->encoding);
-        /* enc is a borrowed reference, we won't decref it */
-        
-        if (enc) {
-            operation = PyUnicode_AsEncodedString(
-                operation, PyString_AsString(enc), NULL);
-
-            /* if there was an error during the encoding from unicode to the
-               target encoding we just let the exception propagate */
-            if (operation == NULL) return 0;
-
-            /* we clone operation in uoperation to be sure to free it later */ 
-            uoperation = operation;
-        }
-        else {
-            PyErr_Format(InterfaceError, "can't encode unicode query to %s",
-                         self->conn->encoding);
-            return 0;
-        }
-    }
-    else if (!PyString_Check(operation)) {
-        /* the operation is not unicode or string, raise an error */
-        PyErr_SetString(PyExc_TypeError,
-                        "argument 1 must be a string or unicode object");
-        return 0;
-    }
-    
-    IFCLEARPGRES(self->pgres);
-
-    if (self->query) {
-        Py_DECREF(self->query);
-        self->query = NULL;
-    }
-    
-    Dprintf("psyco_curs_execute: starting execution of new query");
-
-    /* here we are, and we have a sequence or a dictionary filled with
-       objects to be substituted (bound variables). we try to be smart and do
-       the right thing (i.e., what the user expects) */
-    
-    if (vars && vars != Py_None)
-    {
-        if(_mogrify(vars, operation, self->conn, &cvt) == -1) {
-            Py_XDECREF(uoperation);
-            return 0;
-        }
-    }
-
-    if (vars && cvt) {
-        /* if PyString_Format() return NULL an error occured: if the error is
-           a TypeError we need to check the exception.args[0] string for the
-           values:
-
-               "not enough arguments for format string"
-               "not all arguments converted"
-
-           and return the appropriate ProgrammingError. we do that by grabbing
-           the curren exception (we will later restore it if the type or the
-           strings do not match.) */
-        
-        if (!(fquery = PyString_Format(operation, cvt))) {
-            PyObject *err, *arg, *trace;
-            int pe = 0;
-
-            PyErr_Fetch(&err, &arg, &trace);
-            
-            if (err && PyErr_GivenExceptionMatches(err, PyExc_TypeError)) {
-                Dprintf("psyco_curs_execute: TypeError exception catched");
-                PyErr_NormalizeException(&err, &arg, &trace);
-
-                if (PyObject_HasAttrString(arg, "args")) {
-                    PyObject *args = PyObject_GetAttrString(arg, "args");
-                    PyObject *str = PySequence_GetItem(args, 0);
-                    char *s = PyString_AS_STRING(str);
-
-                    Dprintf("psyco_curs_execute:     -> %s", s);
-
-                    if (!strcmp(s, "not enough arguments for format string")
-                      || !strcmp(s, "not all arguments converted")) {
-                        Dprintf("psyco_curs_execute:     -> got a match");
-                        psyco_set_error(ProgrammingError, (PyObject*)self,
-                                         s, NULL, NULL);
-                        pe = 1;
-                    }
-
-                    Py_DECREF(args);
-                    Py_DECREF(str);
-                }
-            }
-
-            /* if we did not manage our own exception, restore old one */
-            if (pe == 1) {
-                Py_XDECREF(err); Py_XDECREF(arg); Py_XDECREF(trace);
-            }
-            else {
-                PyErr_Restore(err, arg, trace);
-            }
-            Py_XDECREF(uoperation);
-            return 0;
-        }
-        
-        if (self->name != NULL) {
-            self->query = PyString_FromFormat(
-                "DECLARE %s CURSOR WITHOUT HOLD FOR %s",
-                self->name, PyString_AS_STRING(fquery));
-            Py_DECREF(fquery);
-        }
-        else {
-            self->query = fquery;
-        }
-        
-        Dprintf("psyco_curs_execute: cvt->refcnt = %d", cvt->ob_refcnt);
-        Py_DECREF(cvt);
-    }
-    else {
-        if (self->name != NULL) {
-            self->query = PyString_FromFormat(
-                "DECLARE %s CURSOR WITHOUT HOLD FOR %s",
-                self->name, PyString_AS_STRING(operation));
-        }
-        else {
-            Py_INCREF(operation);
-            self->query = operation;
-        }
-    }
-    
-    res = pq_execute(self, PyString_AS_STRING(self->query), async);
-    
-    Dprintf("psyco_curs_execute: res = %d, pgres = %p", res, self->pgres);
-
-    Py_XDECREF(uoperation);
-    
-    return res == -1 ? 0 : 1;
-}
-
-static PyObject *
-psyco_curs_execute(cursorObject *self, PyObject *args, PyObject *kwargs)
-{   
-    long int async = 0;
-    PyObject *vars = NULL, *operation = NULL;
-    
-    static char *kwlist[] = {"query", "vars", "async", NULL};
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|Oi", kwlist,
-                                     &operation, &vars, &async)) {
-        return NULL;
-    }
-
-    if (self->name != NULL) {
-        if (self->query != Py_None) {
-            psyco_set_error(ProgrammingError, (PyObject*)self,
-                "can't call .execute() on named cursors more than once",
-                NULL, NULL);
-            return NULL;
-        }
-        if (self->conn->isolation_level == 0) {
-            psyco_set_error(ProgrammingError, (PyObject*)self,
-                "can't use a named cursor outside of transactions", NULL, NULL);
-            return NULL;          
-        }
-        if (self->conn->mark != self->mark) {
-            psyco_set_error(ProgrammingError, (PyObject*)self,
-                "named cursor isn't valid anymore", NULL, NULL);
-            return NULL;
-        }
-    }
-
-    EXC_IF_CURS_CLOSED(self);
-    
-    if (_psyco_curs_execute(self, operation, vars, async)) {
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-    else {
-        return NULL;
-    }
-}
-
-#define psyco_curs_executemany_doc \
-"executemany(query, vars_list) -- Execute many queries with bound vars."
-
-static PyObject *
-psyco_curs_executemany(cursorObject *self, PyObject *args, PyObject *kwargs)
-{
-    PyObject *operation = NULL, *vars = NULL;
-    PyObject *v, *iter = NULL;
-    
-    static char *kwlist[] = {"query", "vars_list", NULL};
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO", kwlist,
-                                     &operation, &vars)) {
-        return NULL;
-    }
-
-    EXC_IF_CURS_CLOSED(self);
-    
-    if (self->name != NULL) {
-        psyco_set_error(ProgrammingError, (PyObject*)self,
-                "can't call .executemany() on named cursors", NULL, NULL);
-        return NULL;
-    } 
-
-    if (!PyIter_Check(vars)) {
-        vars = iter = PyObject_GetIter(vars);
-        if (iter == NULL) return NULL;
-    }
-    
-    while ((v = PyIter_Next(vars)) != NULL) {
-        if (_psyco_curs_execute(self, operation, v, 0) == 0) {
-            Py_DECREF(v);
-            return NULL;
-        }
-        else {
-            Py_DECREF(v);
-        }
-    }
-    Py_XDECREF(iter);
-    
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-#ifdef PSYCOPG_EXTENSIONS
-#define psyco_curs_mogrify_doc \
-"mogrify(query, vars=None) -> str -- Return query after vars binding."
-
-static PyObject *
-psyco_curs_mogrify(cursorObject *self, PyObject *args, PyObject *kwargs)
-{   
-    PyObject *vars = NULL, *cvt = NULL, *operation = NULL;
-    PyObject *fquery;
-    
-    static char *kwlist[] = {"query", "vars", NULL};
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O", kwlist,
-                                     &operation, &vars)) {
-        return NULL;
-    }
-
-    if (PyUnicode_Check(operation)) {
-        PyErr_SetString(NotSupportedError,
-                        "unicode queries not yet supported");
-        return NULL;
-    }
-    
-    EXC_IF_CURS_CLOSED(self);
-    IFCLEARPGRES(self->pgres);
-
-    /* note that we don't overwrite the last query executed on the cursor, we
-       just *return* the new query with bound variables
-
-       TODO: refactor the common mogrification code (see psycopg_curs_execute
-       for comments, the code is amost identical) */
-
-    if (vars)
-    {
-        if(_mogrify(vars, operation, self->conn, &cvt) == -1) return NULL;
-    }
-
-    if (vars && cvt) {        
-        if (!(fquery = PyString_Format(operation, cvt))) {
-            PyObject *err, *arg, *trace;
-            int pe = 0;
-
-            PyErr_Fetch(&err, &arg, &trace);
-            
-            if (err && PyErr_GivenExceptionMatches(err, PyExc_TypeError)) {
-                Dprintf("psyco_curs_execute: TypeError exception catched");
-                PyErr_NormalizeException(&err, &arg, &trace);
-
-                if (PyObject_HasAttrString(arg, "args")) {
-                    PyObject *args = PyObject_GetAttrString(arg, "args");
-                    PyObject *str = PySequence_GetItem(args, 0);
-                    char *s = PyString_AS_STRING(str);
-
-                    Dprintf("psyco_curs_execute:     -> %s", s);
-
-                    if (!strcmp(s, "not enough arguments for format string")
-                      || !strcmp(s, "not all arguments converted")) {
-                        Dprintf("psyco_curs_execute:     -> got a match");
-                        psyco_set_error(ProgrammingError, (PyObject*)self,
-                                         s, NULL, NULL);
-                        pe = 1;
-                    }
-
-                    Py_DECREF(args);
-                    Py_DECREF(str);
-                }
-            }
-
-            /* if we did not manage our own exception, restore old one */
-            if (pe == 1) {
-                Py_XDECREF(err); Py_XDECREF(arg); Py_XDECREF(trace);
-            }
-            else {
-                PyErr_Restore(err, arg, trace);
-            }
-            return NULL;
-        }
-
-        Dprintf("psyco_curs_execute: cvt->refcnt = %d, fquery->refcnt = %d",
-                cvt->ob_refcnt, fquery->ob_refcnt);
-        Py_DECREF(cvt);
-    }
-    else {
-        fquery = operation;
-        Py_INCREF(operation);
-    }
-
-    return fquery;
-}
-#endif
-
-
-/* fetchone method - fetch one row of results */
-
-#define psyco_curs_fetchone_doc \
-"fetchone() -> tuple or None\n\n" \
-"Return the next row of a query result set in the form of a tuple (by\n" \
-"default) or using the sequence factory previously set in the\n" \
-"`row_factory` attribute. Return `None` when no more data is available.\n"
-
-static int
-_psyco_curs_prefetch(cursorObject *self)
-{
-    int i = 0;
-    
-    /* check if the fetching cursor is the one that did the asynchronous query
-       and raise an exception if not */
-    pthread_mutex_lock(&(self->conn->lock));
-    if (self->conn->async_cursor != NULL
-        && self->conn->async_cursor != (PyObject*)self) {
-        pthread_mutex_unlock(&(self->conn->lock));
-        psyco_set_error(ProgrammingError, (PyObject*)self,
-                         "asynchronous fetch by wrong cursor", NULL, NULL);
-        return -2;
-    }
-    pthread_mutex_unlock(&(self->conn->lock));
-    
-    if (self->pgres == NULL || self->needsfetch) {
-        self->needsfetch = 0;
-        Dprintf("_psyco_curs_prefetch: trying to fetch data");
-        do {
-            i = pq_fetch(self);
-            Dprintf("_psycopg_curs_prefetch: result = %d", i);
-        } while(i == 1);
-    }
-
-    Dprintf("_psyco_curs_prefetch: result = %d", i);
-    return i;
-}
-
-static PyObject *
-_psyco_curs_buildrow_fill(cursorObject *self, PyObject *res,
-                          int row, int n, int istuple)
-{
-    int i, len;
-    unsigned char *str;
-    PyObject *val;
-    
-    for (i=0; i < n; i++) {
-        if (PQgetisnull(self->pgres, row, i)) {
-            str = NULL;
-            len = 0;
-        }
-        else {
-            str = (unsigned char*)PQgetvalue(self->pgres, row, i);
-            len = PQgetlength(self->pgres, row, i);
-        }
-
-        Dprintf("_psyco_curs_buildrow: row %ld, element %d, len %i",
-                self->row, i, len);
-
-        val = typecast_cast(PyTuple_GET_ITEM(self->casts, i), (char*)str, len,
-                            (PyObject*)self);
-
-        if (val) {
-            Dprintf("_psyco_curs_buildrow: val->refcnt = %d", val->ob_refcnt);
-            if (istuple) {
-                PyTuple_SET_ITEM(res, i, val);
-            }
-            else {
-                PySequence_SetItem(res, i, val);
-                Py_DECREF(val);
-            }
-        }
-        else {
-            /* an error occurred in the type system, we return NULL to raise
-               an exception. the typecast code should already have set the
-               exception type and text */
-            Py_DECREF(res);
-            res = NULL;
-            break;
-        }
-    }
-    return res;
-}
-
-static PyObject *
-_psyco_curs_buildrow(cursorObject *self, int row)
-{
-    int n;
-    
-    n = PQnfields(self->pgres);
-    return _psyco_curs_buildrow_fill(self, PyTuple_New(n), row, n, 1);
-}
-
-static PyObject *
-_psyco_curs_buildrow_with_factory(cursorObject *self, int row)
-{
-    int n;
-    PyObject *res;
-
-    n = PQnfields(self->pgres);
-    if ((res = PyObject_CallFunction(self->tuple_factory, "O", self))== NULL)
-        return NULL;
-
-    return _psyco_curs_buildrow_fill(self, res, row, n, 0);
-}
-
-PyObject *
-psyco_curs_fetchone(cursorObject *self, PyObject *args)
-{
-    PyObject *res;
-    
-    if (args && !PyArg_ParseTuple(args, "")) return NULL;
-    
-    EXC_IF_CURS_CLOSED(self)
-    if (_psyco_curs_prefetch(self) < 0) return NULL;
-    EXC_IF_NO_TUPLES(self);
-    
-    if (self->name != NULL) {
-        char buffer[128];
-        
-        EXC_IF_NO_MARK(self);
-        PyOS_snprintf(buffer, 127, "FETCH FORWARD 1 FROM %s", self->name);
-        if (pq_execute(self, buffer, 0) == -1) return NULL;
-        if (_psyco_curs_prefetch(self) < 0) return NULL;
-    }
-    
-    Dprintf("psyco_curs_fetchone: fetching row %ld", self->row);
-    Dprintf("psyco_curs_fetchone: rowcount = %ld", self->rowcount); 
-
-    if (self->row >= self->rowcount) {
-        /* we exausted available data: return None */
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-
-    if (self->tuple_factory == Py_None)
-        res = _psyco_curs_buildrow(self, self->row);
-    else
-        res = _psyco_curs_buildrow_with_factory(self, self->row);
-    
-    self->row++; /* move the counter to next line */
-
-    /* if the query was async aggresively free pgres, to allow
-       successive requests to reallocate it */
-    if (self->row >= self->rowcount
-        && self->conn->async_cursor == (PyObject*)self)
-        IFCLEARPGRES(self->pgres);
-
-    return res;
-}
-
-
-/* fetch many - fetch some results */
-
-#define psyco_curs_fetchmany_doc \
-"fetchmany(size=self.arraysize) -> list of tuple\n\n" \
-"Return the next `size` rows of a query result set in the form of a list\n" \
-"of tuples (by default) or using the sequence factory previously set in\n" \
-"the `row_factory` attribute. Return `None` when no more data is available.\n"
-
-PyObject *
-psyco_curs_fetchmany(cursorObject *self, PyObject *args, PyObject *kwords)
-{
-    int i;
-    PyObject *list, *res;
-    
-    long int size = self->arraysize;
-    static char *kwlist[] = {"size", NULL};
-    
-    if (!PyArg_ParseTupleAndKeywords(args, kwords, "|l", kwlist, &size)) {
-        return NULL;
-    }
-
-    EXC_IF_CURS_CLOSED(self);
-    if (_psyco_curs_prefetch(self) < 0) return NULL;
-    EXC_IF_NO_TUPLES(self);
-
-    if (self->name != NULL) {
-        char buffer[128];
-        
-        EXC_IF_NO_MARK(self);
-        PyOS_snprintf(buffer, 127, "FETCH FORWARD %d FROM %s",
-            (int)size, self->name);
-        if (pq_execute(self, buffer, 0) == -1) return NULL;
-        if (_psyco_curs_prefetch(self) < 0) return NULL;
-    }
-
-    /* make sure size is not > than the available number of rows */
-    if (size > self->rowcount - self->row || size < 0) {
-        size = self->rowcount - self->row;
-    }
-
-    Dprintf("psyco_curs_fetchmany: size = %ld", size);
-    
-    if (size <= 0) {
-        return PyList_New(0);
-    }
-    
-    list = PyList_New(size);
-    
-    for (i = 0; i < size; i++) {
-        if (self->tuple_factory == Py_None)
-            res = _psyco_curs_buildrow(self, self->row);
-        else
-            res = _psyco_curs_buildrow_with_factory(self, self->row);
-        
-        self->row++;
-
-        if (res == NULL) {
-            Py_DECREF(list);
-            return NULL;
-        }
-
-        PyList_SET_ITEM(list, i, res);
-    }
-
-    /* if the query was async aggresively free pgres, to allow
-       successive requests to reallocate it */
-    if (self->row >= self->rowcount
-        && self->conn->async_cursor == (PyObject*)self)
-        IFCLEARPGRES(self->pgres);
-    
-    return list;
-}
-
-
-/* fetch all - fetch all results */
-
-#define psyco_curs_fetchall_doc \
-"fetchall() -> list of tuple\n\n" \
-"Return all the remaining rows of a query result set.\n\n" \
-"Rows are returned in the form of a list of tuples (by default) or using\n" \
-"the sequence factory previously set in the `row_factory` attribute.\n" \
-"Return `None` when no more data is available.\n"
-
-PyObject *
-psyco_curs_fetchall(cursorObject *self, PyObject *args)
-{
-    int i, size;
-    PyObject *list, *res;
-
-    if (!PyArg_ParseTuple(args, "")) {
-        return NULL;
-    }
-
-    EXC_IF_CURS_CLOSED(self);
-    if (_psyco_curs_prefetch(self) < 0) return NULL;
-    EXC_IF_NO_TUPLES(self);
-    
-    if (self->name != NULL) {
-        char buffer[128];
-        
-        EXC_IF_NO_MARK(self);
-        PyOS_snprintf(buffer, 127, "FETCH FORWARD ALL FROM %s", self->name);
-        if (pq_execute(self, buffer, 0) == -1) return NULL;
-        if (_psyco_curs_prefetch(self) < 0) return NULL;
-    }
-
-    size = self->rowcount - self->row;
-    
-    if (size <= 0) {
-        return PyList_New(0);
-    }
-    
-    list = PyList_New(size);
-    
-    for (i = 0; i < size; i++) {
-        if (self->tuple_factory == Py_None)
-            res = _psyco_curs_buildrow(self, self->row);
-        else
-            res = _psyco_curs_buildrow_with_factory(self, self->row);
-        
-        self->row++;
-
-        if (res == NULL) {
-            Py_DECREF(list);
-            return NULL;
-        }
-
-        PyList_SET_ITEM(list, i, res);
-    }
-
-    /* if the query was async aggresively free pgres, to allow
-       successive requests to reallocate it */
-    if (self->row >= self->rowcount
-        && self->conn->async_cursor == (PyObject*)self)
-        IFCLEARPGRES(self->pgres);
-    
-    return list;
-}
-
-
-/* callproc method - execute a stored procedure */
-
-#define psyco_curs_callproc_doc \
-"callproc(procname, parameters=None, async=0) -- Execute stored procedure."
-
-static PyObject *
-psyco_curs_callproc(cursorObject *self, PyObject *args, PyObject *kwargs)
-{
-    char *procname = NULL, *sql = NULL;
-    long int async = 0;
-    int i, nparameters = 0, sl = 0;
-    PyObject *parameters = NULL;
-    PyObject *operation = NULL;
-    PyObject *res = NULL;
-
-    if (!PyArg_ParseTuple(args, "s|Oi", &procname, &parameters, &async)) {
-        return NULL;
-    }
-
-    EXC_IF_CURS_CLOSED(self);
-
-    if (self->name != NULL) {
-        psyco_set_error(ProgrammingError, (PyObject*)self,
-                         "can't call .callproc() on named cursors", NULL, NULL);
-        return NULL;
-    } 
-
-    if(parameters && parameters != Py_None) {
-        nparameters = PyObject_Length(parameters);
-       if (nparameters < 0) nparameters = 0;
-    }
-
-    /* allocate some memory, build the SQL and create a PyString from it */
-    sl = strlen(procname) + 10 + nparameters*3 - (nparameters ? 1 : 0);
-    sql = (char*)PyMem_Malloc(sl);
-    if (sql == NULL) return NULL;
-    
-    sprintf(sql, "SELECT %s(", procname);
-    for(i=0; i<nparameters; i++) {
-        strcat(sql, "%s,");
-    }
-    sql[sl-2] = ')';
-    sql[sl-1] = '\0';
-    
-    operation = PyString_FromString(sql);
-    PyMem_Free((void*)sql);
-    
-    if (_psyco_curs_execute(self, operation, parameters, async)) {
-        Py_INCREF(Py_None);
-        res = Py_None;
-    }
-
-    Py_DECREF(operation);
-    return res;
-}
-
-
-/* nextset method - return the next set of data (not supported) */
-
-#define psyco_curs_nextset_doc \
-"nextset() -- Skip to next set of data.\n\n" \
-"This method is not supported (PostgreSQL does not have multiple data \n" \
-"sets) and will raise a NotSupportedError exception."
-
-static PyObject *
-psyco_curs_nextset(cursorObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    
-    EXC_IF_CURS_CLOSED(self);
-
-    PyErr_SetString(NotSupportedError, "not supported by PostgreSQL");
-    return NULL;
-}
-
-
-/* setinputsizes - predefine memory areas for execute (does nothing) */
-
-#define psyco_curs_setinputsizes_doc \
-"setinputsizes(sizes) -- Set memory areas before execute.\n\n" \
-"This method currently does nothing but it is safe to call it."
-
-static PyObject *
-psyco_curs_setinputsizes(cursorObject *self, PyObject *args)
-{
-    PyObject *sizes;
-    
-    if (!PyArg_ParseTuple(args, "O", &sizes))
-        return NULL;
-    
-    EXC_IF_CURS_CLOSED(self);
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* setoutputsize - predefine memory areas for execute (does nothing) */
-
-#define psyco_curs_setoutputsize_doc \
-"setoutputsize(size, column=None) -- Set column buffer size.\n\n" \
-"This method currently does nothing but it is safe to call it."
-
-static PyObject *
-psyco_curs_setoutputsize(cursorObject *self, PyObject *args)
-{
-    long int size, column;
-    
-    if (!PyArg_ParseTuple(args, "l|l", &size, &column))
-        return NULL;
-    
-    EXC_IF_CURS_CLOSED(self);
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* scroll - scroll position in result list */
-
-#define psyco_curs_scroll_doc \
-"scroll(value, mode='relative') -- Scroll to new position according to mode." 
-
-static PyObject *
-psyco_curs_scroll(cursorObject *self, PyObject *args, PyObject *kwargs)
-{
-    int value, newpos;
-    char *mode = "relative";
-
-    static char *kwlist[] = {"value", "mode", NULL};
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i|s",
-                                     kwlist, &value, &mode))
-        return NULL;
-    
-    EXC_IF_CURS_CLOSED(self);
-
-    /* if the cursor is not named we have the full result set and we can do
-       our own calculations to scroll; else we just delegate the scrolling
-       to the MOVE SQL statement */
-    if (self->name == NULL) {
-        if (strcmp(mode, "relative") == 0) {
-            newpos = self->row + value;
-        } else if (strcmp( mode, "absolute") == 0) {
-            newpos = value;
-        } else {
-            psyco_set_error(ProgrammingError, (PyObject*)self,
-                "scroll mode must be 'relative' or 'absolute'", NULL, NULL);
-            return NULL;
-        }
-    
-        if (newpos < 0 || newpos >= self->rowcount ) {
-            psyco_set_error(ProgrammingError, (PyObject*)self,
-                             "scroll destination out of bounds", NULL, NULL);
-            return NULL;
-        }
-        
-        self->row = newpos;
-    }
-    
-    else {
-        char buffer[128];
-        
-        EXC_IF_NO_MARK(self);
-        
-        if (strcmp(mode, "absolute") == 0) {
-            PyOS_snprintf(buffer, 127, "MOVE ABSOLUTE %d FROM %s",
-                value, self->name);
-        }
-        else {
-            PyOS_snprintf(buffer, 127, "MOVE %d FROM %s", value, self->name);
-        }
-        if (pq_execute(self, buffer, 0) == -1) return NULL;
-        if (_psyco_curs_prefetch(self) < 0) return NULL;
-    }
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-#ifdef PSYCOPG_EXTENSIONS
-
-/* extension: copy_from - implements COPY FROM */
-
-#define psyco_curs_copy_from_doc \
-"copy_from(file, table, sep='\\t', null='\\N', columns=None) -- Copy table from file."
-
-static int
-_psyco_curs_has_read_check(PyObject* o, void* var)
-{
-    if (PyObject_HasAttrString(o, "readline")
-        && PyObject_HasAttrString(o, "read")) {
-        Py_INCREF(o);
-        *((PyObject**)var) = o;
-        return 1;
-    }
-    else {
-        PyErr_SetString(PyExc_TypeError,
-            "argument 1 must have both .read() and .readline() methods");
-        return 0;
-    }   
-}
-
-static PyObject *
-psyco_curs_copy_from(cursorObject *self, PyObject *args, PyObject *kwargs)
-{
-    char query[1024];
-    char *table_name;
-    char *sep = "\t", *null = NULL;
-    long int bufsize = DEFAULT_COPYSIZE;
-    PyObject *file, *columns = NULL, *res = NULL;
-    char columnlist[1024] = "";
-
-    static char *kwlist[] = {"file", "table", "sep", "null", "size", 
-                             "columns", NULL};
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&s|ssiO", kwlist,
-                                     _psyco_curs_has_read_check, &file,
-                                     &table_name, &sep, &null, &bufsize,
-                                     &columns)) {
-        return NULL;
-    }
-    
-    if (columns != NULL && columns != Py_None) {
-        PyObject* collistiter = PyObject_GetIter(columns);
-        PyObject* col;
-        int collistlen = 2;
-        int colitemlen;
-        char* colname;
-        if (collistiter == NULL) {
-            return NULL;
-        }
-        strcpy(columnlist, " (");
-        while ((col = PyIter_Next(collistiter)) != NULL) {
-            if (!PyString_Check(col)) {
-                Py_DECREF(col);
-                Py_DECREF(collistiter);
-                PyErr_SetString(PyExc_ValueError,
-                   "Elements in column list must be strings");
-                return NULL;
-            }
-            PyString_AsStringAndSize(col, &colname, &colitemlen);
-            if (collistlen + colitemlen > 1022) {
-                Py_DECREF(col);
-                Py_DECREF(collistiter);
-                PyErr_SetString(PyExc_ValueError, "Column list too long");
-                return NULL;
-            }
-            strncpy(&columnlist[collistlen], colname, colitemlen);
-            collistlen += colitemlen;
-            columnlist[collistlen++] = ',';
-            Py_DECREF(col);
-        }
-        Py_DECREF(collistiter);
-
-        if (collistlen == 2) {  /* empty list; we printed no comma */
-            collistlen++;
-        }
-
-        columnlist[collistlen - 1] = ')';
-        columnlist[collistlen] = '\0';
-    }
-
-    if (PyErr_Occurred()) {
-        return NULL;
-    }
-
-    EXC_IF_CURS_CLOSED(self);
-
-    if (null) {
-        PyOS_snprintf(query, 1023, "COPY %s%s FROM stdin USING DELIMITERS '%s'"
-                      " WITH NULL AS '%s'", table_name, columnlist, sep, null);
-    }
-    else {
-        PyOS_snprintf(query, 1023, "COPY %s%s FROM stdin USING DELIMITERS '%s'",
-                      table_name, columnlist, sep);
-    }
-    Dprintf("psyco_curs_copy_from: query = %s", query);
-
-    self->copysize = bufsize;
-    self->copyfile = file;
-
-    if (pq_execute(self, query, 0) == 1) {
-        res = Py_None;
-        Py_INCREF(Py_None);
-    }
-
-    self->copyfile =NULL;
-    
-    return res;
-}
-
-#define psyco_curs_copy_to_doc \
-"copy_to(file, table, sep='\\t', null='\\N') -- Copy table to file."
-
-static int
-_psyco_curs_has_write_check(PyObject* o, void* var)
-{
-    if (PyObject_HasAttrString(o, "write")) {
-        Py_INCREF(o);
-        *((PyObject**)var) = o;
-        return 1;
-    }
-    else {
-        PyErr_SetString(PyExc_TypeError,
-                        "argument 1 must have a .write() method");
-        return 0;
-    }   
-}
-
-static PyObject *
-psyco_curs_copy_to(cursorObject *self, PyObject *args, PyObject *kwargs)
-{
-    char query[256];
-    char *table_name;
-    char *sep = "\t", *null = NULL;
-    PyObject *file, *res = NULL;
-
-    static char *kwlist[] = {"file", "table", "sep", "null", NULL};
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&s|ss", kwlist,
-                                     _psyco_curs_has_write_check, &file,
-                                     &table_name, &sep, &null)) {
-        return NULL;
-    }
-    
-    EXC_IF_CURS_CLOSED(self);
-
-    if (null) {
-        PyOS_snprintf(query, 255, "COPY %s TO stdout USING DELIMITERS '%s'"
-                      " WITH NULL AS '%s'", table_name, sep, null);
-    }
-    else {
-        PyOS_snprintf(query, 255, "COPY %s TO stdout USING DELIMITERS '%s'",
-                      table_name, sep);
-    }
-
-    self->copysize = 0;
-    self->copyfile = file;
-
-    if (pq_execute(self, query, 0) == 1) {
-        res = Py_None;
-        Py_INCREF(Py_None);   
-    }
-    
-    self->copyfile = NULL;
-    
-    return res;
-}   
-/* extension: fileno - return the file descripor of the connection */
-
-#define psyco_curs_fileno_doc \
-"fileno() -> int -- Return file descriptor associated to database connection."
-
-static PyObject *
-psyco_curs_fileno(cursorObject *self, PyObject *args)
-{
-    long int socket;
-    
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    EXC_IF_CURS_CLOSED(self);
-
-    /* note how we call PQflush() to make sure the user will use
-       select() in the safe way! */
-    pthread_mutex_lock(&(self->conn->lock));
-    Py_BEGIN_ALLOW_THREADS;
-    PQflush(self->conn->pgconn);
-    socket = (long int)PQsocket(self->conn->pgconn);
-    Py_END_ALLOW_THREADS;
-    pthread_mutex_unlock(&(self->conn->lock));
-
-    return PyInt_FromLong(socket);
-}
-
-/* extension: isready - return true if data from async execute is ready */
-
-#define psyco_curs_isready_doc \
-"isready() -> bool -- Return True if data is ready after an async query."
-
-static PyObject *
-psyco_curs_isready(cursorObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    EXC_IF_CURS_CLOSED(self);
-
-    /* pq_is_busy does its own locking, we don't need anything special but if
-       the cursor is ready we need to fetch the result and free the connection
-       for the next query. */
-    
-    if (pq_is_busy(self->conn)) {
-        Py_INCREF(Py_False);
-        return Py_False;
-    }
-    else {
-        IFCLEARPGRES(self->pgres);
-        pthread_mutex_lock(&(self->conn->lock));
-        self->pgres = PQgetResult(self->conn->pgconn);
-        self->conn->async_cursor = NULL;
-        pthread_mutex_unlock(&(self->conn->lock));
-        self->needsfetch = 1;
-        Py_INCREF(Py_True);
-        return Py_True;
-    }
-}
-
-#endif
-
-
-/** the cursor object **/
-
-/* iterator protocol */
-
-static PyObject *
-cursor_iter(PyObject *self)
-{
-    EXC_IF_CURS_CLOSED((cursorObject*)self);
-    Py_INCREF(self);
-    return self;
-}
-
-static PyObject *
-cursor_next(PyObject *self)
-{
-    PyObject *res;
-
-    /* we don't parse arguments: psyco_curs_fetchone will do that for us */
-    res = psyco_curs_fetchone((cursorObject*)self, NULL);
-
-    /* convert a None to NULL to signal the end of iteration */
-    if (res && res == Py_None) {
-        Py_DECREF(res);
-        res = NULL;
-    }
-    return res;
-}
-
-/* object method list */
-
-static struct PyMethodDef cursorObject_methods[] = {
-    /* DBAPI-2.0 core */
-    {"close", (PyCFunction)psyco_curs_close,
-     METH_VARARGS, psyco_curs_close_doc},
-    {"execute", (PyCFunction)psyco_curs_execute,
-     METH_VARARGS|METH_KEYWORDS, psyco_curs_execute_doc},
-    {"executemany", (PyCFunction)psyco_curs_executemany,
-     METH_VARARGS|METH_KEYWORDS, psyco_curs_executemany_doc},
-    {"fetchone", (PyCFunction)psyco_curs_fetchone,
-     METH_VARARGS, psyco_curs_fetchone_doc},
-    {"fetchmany", (PyCFunction)psyco_curs_fetchmany,
-     METH_VARARGS|METH_KEYWORDS, psyco_curs_fetchmany_doc},
-    {"fetchall", (PyCFunction)psyco_curs_fetchall,
-     METH_VARARGS, psyco_curs_fetchall_doc},
-    {"callproc", (PyCFunction)psyco_curs_callproc,
-     METH_VARARGS, psyco_curs_callproc_doc},
-    {"nextset", (PyCFunction)psyco_curs_nextset,
-     METH_VARARGS, psyco_curs_nextset_doc},
-    {"setinputsizes", (PyCFunction)psyco_curs_setinputsizes,
-     METH_VARARGS, psyco_curs_setinputsizes_doc},
-    {"setoutputsize", (PyCFunction)psyco_curs_setoutputsize,
-     METH_VARARGS, psyco_curs_setoutputsize_doc},
-    /* DBAPI-2.0 extensions */
-    {"scroll", (PyCFunction)psyco_curs_scroll,
-     METH_VARARGS|METH_KEYWORDS, psyco_curs_scroll_doc},
-    /* psycopg extensions */
-#ifdef PSYCOPG_EXTENSIONS
-    {"mogrify", (PyCFunction)psyco_curs_mogrify,
-     METH_VARARGS|METH_KEYWORDS, psyco_curs_mogrify_doc},
-    {"fileno", (PyCFunction)psyco_curs_fileno,
-     METH_VARARGS, psyco_curs_fileno_doc},
-    {"isready", (PyCFunction)psyco_curs_isready,
-     METH_VARARGS, psyco_curs_isready_doc},
-    {"copy_from", (PyCFunction)psyco_curs_copy_from,
-     METH_VARARGS|METH_KEYWORDS, psyco_curs_copy_from_doc},
-    {"copy_to", (PyCFunction)psyco_curs_copy_to,
-     METH_VARARGS|METH_KEYWORDS, psyco_curs_copy_to_doc},
-#endif
-    {NULL}
-};
-
-/* object member list */
-
-#define OFFSETOF(x) offsetof(cursorObject, x)
-
-static struct PyMemberDef cursorObject_members[] = {
-    /* DBAPI-2.0 basics */
-    {"rowcount", T_LONG, OFFSETOF(rowcount), RO,
-        "Number of rows read from the backend in the last command."},
-    {"arraysize", T_LONG, OFFSETOF(arraysize), 0, 
-        "Number of records `fetchmany()` must fetch if not explicitely " \
-        "specified."},
-    {"description", T_OBJECT, OFFSETOF(description), RO,
-        "Cursor description as defined in DBAPI-2.0."},
-    {"lastrowid", T_LONG, OFFSETOF(lastoid), RO,
-        "The ``oid`` of the last row inserted by the cursor."},
-    /* DBAPI-2.0 extensions */
-    {"rownumber", T_LONG, OFFSETOF(row), RO,
-        "The current row position."},
-    {"connection", T_OBJECT, OFFSETOF(conn), RO, 
-        "The connection where the cursor comes from."},
-#ifdef PSYCOPG_EXTENSIONS
-    {"name", T_STRING, OFFSETOF(name), RO},
-    {"statusmessage", T_OBJECT, OFFSETOF(pgstatus), RO,
-        "The return message of the last command."},
-    {"query", T_OBJECT, OFFSETOF(query), RO,
-        "The last query text sent to the backend."},
-    {"row_factory", T_OBJECT, OFFSETOF(tuple_factory), 0},
-    {"tzinfo_factory", T_OBJECT, OFFSETOF(tzinfo_factory), 0},
-    {"typecaster", T_OBJECT, OFFSETOF(caster), RO},
-    {"string_types", T_OBJECT, OFFSETOF(string_types), 0},
-    {"binary_types", T_OBJECT, OFFSETOF(binary_types), 0},
-#endif
-    {NULL}
-};
-
-/* initialization and finalization methods */
-
-static int
-cursor_setup(cursorObject *self, connectionObject *conn, char *name)
-{
-    Dprintf("cursor_setup: init cursor object at %p", self);
-    Dprintf("cursor_setup:     parameters: name = %s, conn = %p", name, conn);
-    
-    if (name) {
-        self->name = PyMem_Malloc(strlen(name)+1);
-        if (self->name == NULL) return 1;
-        strncpy(self->name, name, strlen(name)+1);
-    }
-
-    /* FIXME: why does this raise an excpetion on the _next_ line of code?
-    if (PyObject_IsInstance((PyObject*)conn,
-                             (PyObject *)&connectionType) == 0) {
-        PyErr_SetString(PyExc_TypeError,
-            "argument 1 must be subclass of psycopg2._psycopg.connection");
-        return 1;
-    } */
-    self->conn = conn;
-    Py_INCREF((PyObject*)self->conn);
-    
-    self->closed = 0;
-    self->mark = conn->mark;
-    self->pgres = NULL; 
-    self->notuples = 1;
-    self->arraysize = 1;
-    self->rowcount = -1;
-    self->lastoid = InvalidOid;
-    
-    self->casts = NULL;
-    self->notice = NULL;
-    
-    self->string_types = NULL;
-    self->binary_types = NULL;
-    
-    self->description = Py_None;
-    Py_INCREF(Py_None);
-    self->pgstatus = Py_None;
-    Py_INCREF(Py_None);
-    self->tuple_factory = Py_None;
-    Py_INCREF(Py_None);
-    self->query = Py_None;
-    Py_INCREF(Py_None);
-    
-    /* default tzinfo factory */
-    self->tzinfo_factory = pyPsycopgTzFixedOffsetTimezone;
-    Py_INCREF(self->tzinfo_factory);
-    
-    Dprintf("cursor_setup: good cursor object at %p, refcnt = %d",
-            self, ((PyObject *)self)->ob_refcnt);
-    return 0;
-}
-
-static void
-cursor_dealloc(PyObject* obj)
-{
-    cursorObject *self = (cursorObject *)obj;
-
-    if (self->name) PyMem_Free(self->name);
-    
-    Py_XDECREF((PyObject*)self->conn);
-    Py_XDECREF(self->casts);
-    Py_XDECREF(self->description);
-    Py_XDECREF(self->pgstatus);
-    Py_XDECREF(self->tuple_factory);
-    Py_XDECREF(self->tzinfo_factory);
-    Py_XDECREF(self->query);
-
-    IFCLEARPGRES(self->pgres);
-    
-    Dprintf("cursor_dealloc: deleted cursor object at %p, refcnt = %d",
-            obj, obj->ob_refcnt);
-
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-cursor_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    char *name = NULL;
-    PyObject *conn;
-    
-    if (!PyArg_ParseTuple(args, "O|s", &conn, &name))
-        return -1;
-
-    return cursor_setup((cursorObject *)obj, (connectionObject *)conn, name);
-}
-
-static PyObject *
-cursor_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
-    return type->tp_alloc(type, 0);
-}
-
-static void
-cursor_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-static PyObject *
-cursor_repr(cursorObject *self)
-{
-    return PyString_FromFormat(
-        "<cursor object at %p; closed: %d>", self, self->closed);
-}
-
-
-/* object type */
-
-#define cursorType_doc \
-"A database cursor."
-
-PyTypeObject cursorType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.cursor",
-    sizeof(cursorObject),
-    0,
-    cursor_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/  
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/
-    0,          /*tp_compare*/
-    (reprfunc)cursor_repr, /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    (reprfunc)cursor_repr, /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_ITER, /*tp_flags*/
-    cursorType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    cursor_iter, /*tp_iter*/
-    cursor_next, /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    cursorObject_methods, /*tp_methods*/
-    cursorObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    cursor_init, /*tp_init*/
-    0, /*tp_alloc  Will be set to PyType_GenericAlloc in module init*/
-    cursor_new, /*tp_new*/
-    (freefunc)cursor_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
diff --git a/psycopg2/psycopg/microprotocols.c b/psycopg2/psycopg/microprotocols.c
deleted file mode 100644 (file)
index 73abbfc..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/* microprotocols.c - minimalist and non-validating protocols implementation
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/cursor.h"
-#include "psycopg/connection.h"
-#include "psycopg/microprotocols.h"
-#include "psycopg/microprotocols_proto.h"
-
-
-/** the adapters registry **/
-
-PyObject *psyco_adapters;
-
-/* microprotocols_init - initialize the adapters dictionary */
-
-int
-microprotocols_init(PyObject *dict)
-{
-    /* create adapters dictionary and put it in module namespace */
-    if ((psyco_adapters = PyDict_New()) == NULL) {
-        return -1;
-    }                         
-
-    PyDict_SetItemString(dict, "adapters", psyco_adapters);
-    
-    return 0;
-}
-
-
-/* microprotocols_add - add a reverse type-caster to the dictionary */
-
-int
-microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast)
-{
-    if (proto == NULL) proto = (PyObject*)&isqlquoteType;
-
-    Dprintf("microprotocols_add: cast %p for (%s, ?)", cast, type->tp_name);
-
-    PyDict_SetItem(psyco_adapters,
-                   Py_BuildValue("(OO)", (PyObject*)type, proto),
-                   cast);
-    return 0;
-}
-
-/* microprotocols_adapt - adapt an object to the built-in protocol */
-
-PyObject *
-microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt)
-{
-    PyObject *adapter, *key;
-
-    /* we don't check for exact type conformance as specified in PEP 246
-       because the ISQLQuote type is abstract and there is no way to get a
-       quotable object to be its instance */
-
-    Dprintf("microprotocols_adapt: trying to adapt %s", obj->ob_type->tp_name);
-    
-    /* look for an adapter in the registry */
-    key = Py_BuildValue("(OO)", (PyObject*)obj->ob_type, proto);
-    adapter = PyDict_GetItem(psyco_adapters, key);
-    Py_DECREF(key);
-    if (adapter) {
-        PyObject *adapted = PyObject_CallFunctionObjArgs(adapter, obj, NULL);
-        return adapted;
-    }
-
-    /* try to have the protocol adapt this object*/
-    if (PyObject_HasAttrString(proto, "__adapt__")) {
-        PyObject *adapted = PyObject_CallMethod(proto, "__adapt__", "O", obj);
-        if (adapted && adapted != Py_None) return adapted;
-        Py_XDECREF(adapted);
-        if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError))
-            return NULL;
-    }
-
-    /* and finally try to have the object adapt itself */   
-    if (PyObject_HasAttrString(obj, "__conform__")) {
-        PyObject *adapted = PyObject_CallMethod(obj, "__conform__","O", proto);
-        if (adapted && adapted != Py_None) return adapted;
-        Py_XDECREF(adapted);
-        if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError))
-            return NULL;
-    }
-    
-    /* else set the right exception and return NULL */
-    psyco_set_error(ProgrammingError, NULL, "can't adapt", NULL, NULL);
-    return NULL;
-}
-
-/* microprotocol_getquoted - utility function that adapt and call getquoted */
-
-PyObject *
-microprotocol_getquoted(PyObject *obj, connectionObject *conn)
-{
-    PyObject *res = NULL;
-    PyObject *tmp = microprotocols_adapt(
-        obj, (PyObject*)&isqlquoteType, NULL);
-    
-    if (tmp != NULL) {
-        Dprintf("microprotocol_getquoted: adapted to %s",
-                tmp->ob_type->tp_name);
-
-        /* if requested prepare the object passing it the connection */
-        if (PyObject_HasAttrString(tmp, "prepare") && conn) {
-            res = PyObject_CallMethod(tmp, "prepare", "O", (PyObject*)conn);
-            if (res == NULL) {
-                Py_DECREF(tmp);
-                return NULL;
-            }
-            else {
-                Py_DECREF(res);
-            }
-        }
-
-        /* call the getquoted method on tmp (that should exist because we
-           adapted to the right protocol) */
-        res = PyObject_CallMethod(tmp, "getquoted", NULL);
-        Py_DECREF(tmp);
-    }
-
-    /* we return res with one extra reference, the caller shall free it */
-    return res;
-}
-
-
-/** module-level functions **/
-
-PyObject *
-psyco_microprotocols_adapt(cursorObject *self, PyObject *args)
-{
-    PyObject *obj, *alt = NULL;
-    PyObject *proto = (PyObject*)&isqlquoteType;
-
-    if (!PyArg_ParseTuple(args, "O|OO", &obj, &proto, &alt)) return NULL;
-    return microprotocols_adapt(obj, proto, alt);
-}
diff --git a/psycopg2/psycopg/microprotocols.h b/psycopg2/psycopg/microprotocols.h
deleted file mode 100644 (file)
index 5501a7c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* microprotocols.c - definitions for minimalist and non-validating protocols
- *
- * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_MICROPROTOCOLS_H
-#define PSYCOPG_MICROPROTOCOLS_H 1
-
-#include <Python.h>
-#include "psycopg/connection.h"
-#include "psycopg/cursor.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** adapters registry **/
-
-extern PyObject *psyco_adapters;
-
-/** the names of the three mandatory methods **/
-
-#define MICROPROTOCOLS_GETQUOTED_NAME "getquoted"
-#define MICROPROTOCOLS_GETSTRING_NAME "getstring"
-#define MICROPROTOCOLS_GETBINARY_NAME "getbinary"
-
-/** exported functions **/
-
-/* used by module.c to init the microprotocols system */
-extern int microprotocols_init(PyObject *dict);
-extern int microprotocols_add(
-    PyTypeObject *type, PyObject *proto, PyObject *cast);
-    
-extern PyObject *microprotocols_adapt(
-    PyObject *obj, PyObject *proto, PyObject *alt);
-extern PyObject *microprotocol_getquoted(
-    PyObject *obj, connectionObject *conn);
-    
-extern PyObject *
-    psyco_microprotocols_adapt(cursorObject *self, PyObject *args);   
-#define psyco_microprotocols_adapt_doc \
-    "adapt(obj, protocol, alternate) -> object -- adapt obj to given protocol"
-    
-#endif /* !defined(PSYCOPG_MICROPROTOCOLS_H) */
diff --git a/psycopg2/psycopg/microprotocols_proto.c b/psycopg2/psycopg/microprotocols_proto.c
deleted file mode 100644 (file)
index 72c3a7e..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/* microprotocol_proto.c - psycopg protocols
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-#include <stringobject.h>
-
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/microprotocols_proto.h"
-
-
-/** void protocol implementation **/
-
-
-/* getquoted - return quoted representation for object */
-
-#define psyco_isqlquote_getquoted_doc \
-"getquoted() -- return SQL-quoted representation of this object"
-
-static PyObject *
-psyco_isqlquote_getquoted(isqlquoteObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-/* getbinary - return quoted representation for object */
-
-#define psyco_isqlquote_getbinary_doc \
-"getbinary() -- return SQL-quoted binary representation of this object"
-
-static PyObject *
-psyco_isqlquote_getbinary(isqlquoteObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-/* getbuffer - return quoted representation for object */
-
-#define psyco_isqlquote_getbuffer_doc \
-"getbuffer() -- return this object"
-
-static PyObject *
-psyco_isqlquote_getbuffer(isqlquoteObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, "")) return NULL;
-    
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-\f
-
-/** the ISQLQuote object **/
-
-
-/* object method list */
-
-static struct PyMethodDef isqlquoteObject_methods[] = {
-    {"getquoted", (PyCFunction)psyco_isqlquote_getquoted,
-     METH_VARARGS, psyco_isqlquote_getquoted_doc},
-    {"getbinary", (PyCFunction)psyco_isqlquote_getbinary,
-     METH_VARARGS, psyco_isqlquote_getbinary_doc},
-    {"getbuffer", (PyCFunction)psyco_isqlquote_getbuffer,
-     METH_VARARGS, psyco_isqlquote_getbuffer_doc},
-    /*    {"prepare", (PyCFunction)psyco_isqlquote_prepare,
-          METH_VARARGS, psyco_isqlquote_prepare_doc}, */
-    {NULL}
-};
-
-/* object member list */
-
-static struct PyMemberDef isqlquoteObject_members[] = {
-    /* DBAPI-2.0 extensions (exception objects) */
-    {"_wrapped", T_OBJECT, offsetof(isqlquoteObject, wrapped), RO},
-    {NULL}
-};
-
-/* initialization and finalization methods */
-
-static int
-isqlquote_setup(isqlquoteObject *self, PyObject *wrapped)
-{
-    self->wrapped = wrapped;
-    Py_INCREF(wrapped);
-
-    return 0;
-}
-
-static void
-isqlquote_dealloc(PyObject* obj)
-{
-    isqlquoteObject *self = (isqlquoteObject *)obj;
-    
-    Py_XDECREF(self->wrapped);
-    
-    obj->ob_type->tp_free(obj);
-}
-
-static int
-isqlquote_init(PyObject *obj, PyObject *args, PyObject *kwds)
-{
-    PyObject *wrapped = NULL;
-
-    if (!PyArg_ParseTuple(args, "O", &wrapped))
-        return -1;
-
-    return isqlquote_setup((isqlquoteObject *)obj, wrapped);
-}
-
-static PyObject *
-isqlquote_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
-{
-    return type->tp_alloc(type, 0);
-}
-
-static void
-isqlquote_del(PyObject* self)
-{
-    PyObject_Del(self);
-}
-
-
-/* object type */
-
-#define isqlquoteType_doc \
-"Abstract ISQLQuote protocol\n\n" \
-"An object conform to this protocol should expose a ``getquoted()`` method\n" \
-"returning the SQL representation of the object.\n\n"
-
-PyTypeObject isqlquoteType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.ISQLQuote",
-    sizeof(isqlquoteObject),
-    0,
-    isqlquote_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/ 
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/
-    0,          /*tp_compare*/
-    0,          /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    0,          /*tp_call*/
-    0,          /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    isqlquoteType_doc, /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    0,          /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    isqlquoteObject_methods, /*tp_methods*/
-    isqlquoteObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    isqlquote_init, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    isqlquote_new, /*tp_new*/
-    (freefunc)isqlquote_del, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
diff --git a/psycopg2/psycopg/microprotocols_proto.h b/psycopg2/psycopg/microprotocols_proto.h
deleted file mode 100644 (file)
index c671264..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* microporotocols_proto.h - definiton for psycopg's protocols
- *
- * Copyright (C) 2004 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_ISQLQUOTE_H
-#define PSYCOPG_ISQLQUOTE_H 1
-
-#include <Python.h>
-#include <libpq-fe.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-    
-extern PyTypeObject isqlquoteType;
-
-typedef struct {
-    PyObject HEAD;
-
-    PyObject *wrapped;
-    
-} isqlquoteObject;
-    
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_ISQLQUOTE_H) */
diff --git a/psycopg2/psycopg/pgtypes.h b/psycopg2/psycopg/pgtypes.h
deleted file mode 100644 (file)
index 1fdbda9..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#define BOOLOID 16
-#define BYTEAOID 17
-#define CHAROID 18
-#define NAMEOID 19
-#define INT8OID 20
-#define INT2OID 21
-#define INT2VECTOROID 22
-#define INT4OID 23
-#define REGPROCOID 24
-#define TEXTOID 25
-#define OIDOID 26
-#define TIDOID 27
-#define XIDOID 28
-#define CIDOID 29
-#define OIDVECTOROID 30
-#define PG_TYPE_RELTYPE_OID 71
-#define PG_ATTRIBUTE_RELTYPE_OID 75
-#define PG_PROC_RELTYPE_OID 81
-#define PG_CLASS_RELTYPE_OID 83
-#define POINTOID 600
-#define LSEGOID 601
-#define PATHOID 602
-#define BOXOID 603
-#define POLYGONOID 604
-#define LINEOID 628
-#define FLOAT4OID 700
-#define FLOAT8OID 701
-#define ABSTIMEOID 702
-#define RELTIMEOID 703
-#define TINTERVALOID 704
-#define UNKNOWNOID 705
-#define CIRCLEOID 718
-#define CASHOID 790
-#define MACADDROID 829
-#define INETOID 869
-#define CIDROID 650
-#define INT4ARRAYOID 1007
-#define ACLITEMOID 1033
-#define BPCHAROID 1042
-#define VARCHAROID 1043
-#define DATEOID 1082
-#define TIMEOID 1083
-#define TIMESTAMPOID 1114
-#define TIMESTAMPTZOID 1184
-#define INTERVALOID 1186
-#define TIMETZOID 1266
-#define BITOID 1560
-#define VARBITOID 1562
-#define NUMERICOID 1700
-#define REFCURSOROID 1790
-#define REGPROCEDUREOID 2202
-#define REGOPEROID 2203
-#define REGOPERATOROID 2204
-#define REGCLASSOID 2205
-#define REGTYPEOID 2206
-#define RECORDOID 2249
-#define CSTRINGOID 2275
-#define ANYOID 2276
-#define ANYARRAYOID 2277
-#define VOIDOID 2278
-#define TRIGGEROID 2279
-#define LANGUAGE_HANDLEROID 2280
-#define INTERNALOID 2281
-#define OPAQUEOID 2282
-#define ANYELEMENTOID 2283
diff --git a/psycopg2/psycopg/pgversion.h b/psycopg2/psycopg/pgversion.h
deleted file mode 100644 (file)
index f874a9a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define PG_VERSION_MAJOR 7
-#define PG_VERSION_MINOR 4
diff --git a/psycopg2/psycopg/pqpath.c b/psycopg2/psycopg/pqpath.c
deleted file mode 100644 (file)
index 1ebb569..0000000
+++ /dev/null
@@ -1,883 +0,0 @@
-/* pqpath.c - single path into libpq
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/* IMPORTANT NOTE: no function in this file do its own connection locking
-   except for pg_execute and pq_fetch (that are somehow high-level. This means
-   that all the othe functions should be called while holding a lock to the
-   connection.
-*/
-
-#include <Python.h>
-#include <string.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/pqpath.h"
-#include "psycopg/connection.h"
-#include "psycopg/cursor.h"
-#include "psycopg/typecast.h"
-#include "psycopg/pgtypes.h"
-#include "psycopg/pgversion.h"
-
-/* pq_raise - raise a python exception of the right kind
-
-   This function should be called while holding the GIL. */
-
-void
-pq_raise(connectionObject *conn, cursorObject *curs, PyObject *exc, char *msg)
-{
-    PyObject *pgc = (PyObject*)curs;
-    
-    char *err = NULL;
-    char *err2 = NULL;
-    char *code = NULL;
-    char *buf = NULL;
-    
-    if ((conn == NULL && curs == NULL) || (curs != NULL && conn == NULL)) {
-        PyErr_SetString(Error, "psycopg went psycotic and raised a null error");
-        return;
-    }
-    
-    if (curs && curs->pgres) {
-        err = PQresultErrorMessage(curs->pgres);
-#ifdef HAVE_PQPROTOCOL3
-        if (err != NULL && conn->protocol == 3) {
-            code = PQresultErrorField(curs->pgres, PG_DIAG_SQLSTATE);
-        }
-#endif
-    }
-    if (err == NULL)
-        err = PQerrorMessage(conn->pgconn);
-
-    /* if the is no error message we probably called pq_raise without reason:
-       we need to set an exception anyway because the caller will probably
-       raise and a meaningful message is better than an empty one */
-    if (err == NULL) {
-        PyErr_SetString(Error, "psycopg went psycotic without error set");
-        return;
-    }
-    
-    /* if exc is NULL, analyze the message and try to deduce the right
-       exception kind (only if we have a pgres, obviously) */
-    if (exc == NULL) {
-        if (curs && curs->pgres) {
-            if (conn->protocol == 3) {
-#ifdef HAVE_PQPROTOCOL3
-                char *pgstate =
-                    PQresultErrorField(curs->pgres, PG_DIAG_SQLSTATE);
-                if (pgstate != NULL && !strncmp(pgstate, "23", 2))
-                    exc = IntegrityError;
-                else
-                    exc = ProgrammingError;
-#endif
-            }
-        }
-    }
-    
-    /* if exc is still NULL psycopg was not built with HAVE_PQPROTOCOL3 or the
-       connection is using protocol 2: in both cases we default to comparing
-       error messages */
-    if (exc == NULL) {
-        if (!strncmp(err, "ERROR:  Cannot insert a duplicate key", 37)
-            || !strncmp(err, "ERROR:  ExecAppend: Fail to add null", 36)
-            || strstr(err, "referential integrity violation"))
-            exc = IntegrityError;
-        else
-            exc = ProgrammingError;
-    }
-    
-    /* try to remove the initial "ERROR: " part from the postgresql error */
-    if (err && strlen(err) > 8) err2 = &(err[8]);
-    else err2 = err;
-
-    /* if msg is not NULL, add it to the error message, after a '\n' */
-    if (msg && code) {
-        int len = strlen(code) + strlen(err) + strlen(msg) + 5;
-        if ((buf = PyMem_Malloc(len))) {
-            snprintf(buf, len, "[%s] %s\n%s", code, err2, msg);
-            psyco_set_error(exc, pgc, buf, err, code);
-        }
-    }
-    else if (msg) {
-        int len = strlen(err) + strlen(msg) + 2;
-        if ((buf = PyMem_Malloc(len))) {
-            snprintf(buf, len, "%s\n%s", err2, msg);
-            psyco_set_error(exc, pgc, buf, err, code);
-        }
-    }
-    else {
-        psyco_set_error(exc, pgc, err2, err, code);        
-    }
-    
-    if (buf != NULL) PyMem_Free(buf);
-}
-
-/* pq_set_critical, pq_resolve_critical - manage critical errors
-
-   this function is invoked when a PQexec() call returns NULL, meaning a
-   critical condition like out of memory or lost connection. it save the error
-   message and mark the connection as 'wanting cleanup'.
-
-   both functions do not call any Py_*_ALLOW_THREADS macros.
-   pq_resolve_critical should be called while holding the GIL. */
-
-void
-pq_set_critical(connectionObject *conn, const char *msg)
-{
-    if (msg == NULL) 
-        msg = PQerrorMessage(conn->pgconn);
-    if (conn->critical) free(conn->critical);
-    if (msg && msg[0] != '\0') conn->critical = strdup(msg);
-    else conn->critical = NULL;
-}
-
-PyObject *
-pq_resolve_critical(connectionObject *conn, int close)
-{
-    Dprintf("pq_resolve_critical: resolving %s", conn->critical);
-    
-    if (conn->critical) {
-        char *msg = &(conn->critical[6]);
-        Dprintf("pq_resolve_critical: error = %s", msg);
-        /* we can't use pq_raise because the error has already been cleared
-           from the connection, so we just raise an OperationalError with the
-           critical message */
-        PyErr_SetString(OperationalError, msg);
-        
-        /* we don't want to destroy this connection but just close it */
-        if (close == 1) conn_close(conn);
-    }
-    return NULL;
-}
-
-/* pq_clear_async - clear the effects of a previous async query
-
-   note that this function does block because it needs to wait for the full
-   result sets of the previous query to clear them.
-
-   
-   this function does not call any Py_*_ALLOW_THREADS macros */
-
-void
-pq_clear_async(connectionObject *conn)
-{
-    PGresult *pgres;
-
-    do {
-        pgres = PQgetResult(conn->pgconn);
-        Dprintf("pq_clear_async: clearing PGresult at %p", pgres);
-        IFCLEARPGRES(pgres);
-    } while (pgres != NULL);
-}
-
-/* pq_begin - send a BEGIN WORK, if necessary
-
-   this function does not call any Py_*_ALLOW_THREADS macros */
-
-int
-pq_begin(connectionObject *conn)
-{
-    const char *query[] = {
-        NULL,
-        "BEGIN; SET TRANSACTION ISOLATION LEVEL READ COMMITTED",
-        "BEGIN; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE"};
-    
-    int pgstatus, retvalue = -1;
-    PGresult *pgres = NULL;
-
-    Dprintf("pq_begin: pgconn = %p, isolevel = %ld, status = %d",
-            conn->pgconn, conn->isolation_level, conn->status);
-
-    if (conn->isolation_level == 0 || conn->status != CONN_STATUS_READY) {
-        Dprintf("pq_begin: transaction in progress");
-        return 0;
-    }
-
-    pq_clear_async(conn);
-    pgres = PQexec(conn->pgconn, query[conn->isolation_level]);
-    if (pgres == NULL) {
-        Dprintf("pq_begin: PQexec() failed");
-        pq_set_critical(conn, NULL);
-        goto cleanup;
-    }
-
-    pgstatus = PQresultStatus(pgres);
-    if (pgstatus != PGRES_COMMAND_OK ) {
-        Dprintf("pq_begin: result is NOT OK");
-        pq_set_critical(conn, NULL);
-        goto cleanup;
-    }
-    Dprintf("pq_begin: issued '%s' command", query[conn->isolation_level]);
-
-    retvalue = 0;
-    conn->status = CONN_STATUS_BEGIN;
-
- cleanup:
-    IFCLEARPGRES(pgres);
-    return retvalue;
-}
-
-/* pq_commit - send an END, if necessary
-
-   this function does not call any Py_*_ALLOW_THREADS macros */
-
-int
-pq_commit(connectionObject *conn)
-{
-    const char *query = "END";
-    int pgstatus, retvalue = -1;
-    PGresult *pgres = NULL;
-
-    Dprintf("pq_commit: pgconn = %p, isolevel = %ld, status = %d",
-            conn->pgconn, conn->isolation_level, conn->status);
-
-    if (conn->isolation_level == 0 || conn->status != CONN_STATUS_BEGIN) {
-        Dprintf("pq_commit: no transaction to commit");
-        return 0;
-    }
-
-    pq_clear_async(conn);
-    pgres = PQexec(conn->pgconn, query);
-    if (pgres == NULL) {
-        Dprintf("pq_commit: PQexec() failed");
-        pq_set_critical(conn, NULL);
-        goto cleanup;
-    }
-
-    pgstatus = PQresultStatus(pgres);
-    if (pgstatus != PGRES_COMMAND_OK ) {
-        Dprintf("pq_commit: result is NOT OK");
-        pq_set_critical(conn, NULL);
-        goto cleanup;
-    }
-    Dprintf("pq_commit: issued '%s' command", query);
-
-    retvalue = 0;
-    conn->status = CONN_STATUS_READY;
-
- cleanup:
-    IFCLEARPGRES(pgres);
-    return retvalue;
-}
-
-/* pq_abort - send an ABORT, if necessary
-
-   this function does not call any Py_*_ALLOW_THREADS macros */
-
-int
-pq_abort(connectionObject *conn)
-{
-    const char *query = "ABORT";
-    int pgstatus, retvalue = -1;
-    PGresult *pgres = NULL;
-
-    Dprintf("pq_abort: pgconn = %p, isolevel = %ld, status = %d",
-            conn->pgconn, conn->isolation_level, conn->status);
-
-    if (conn->isolation_level == 0 || conn->status != CONN_STATUS_BEGIN) {
-        Dprintf("pq_abort: no transaction to abort");
-        return 0;
-    }
-
-    pq_clear_async(conn);
-    pgres = PQexec(conn->pgconn, query);
-    if (pgres == NULL) {
-        Dprintf("pq_abort: PQexec() failed");
-        pq_set_critical(conn, NULL);
-        goto cleanup;
-    }
-
-    pgstatus = PQresultStatus(pgres);
-    if (pgstatus != PGRES_COMMAND_OK ) {
-        Dprintf("pq_abort: result is NOT OK");
-        pq_set_critical(conn, NULL);
-        goto cleanup;
-    }
-    Dprintf("pq_abort: issued '%s' command", query);
-
-    retvalue = 0;
-    conn->status = CONN_STATUS_READY;
-
- cleanup:
-    IFCLEARPGRES(pgres);
-    return retvalue;
-}
-
-/* pq_is_busy - consume input and return connection status
-   a status of 1 means that a call to pq_fetch will block, while a status of 0
-   means that there is data available to be collected. -1 means an error, the
-   exception will be set accordingly.
-
-   this fucntion locks the connection object
-   this function call Py_*_ALLOW_THREADS macros */
-
-int
-pq_is_busy(connectionObject *conn)
-{
-    PGnotify *pgn;
-    
-    Dprintf("pq_is_busy: consuming input");
-
-    Py_BEGIN_ALLOW_THREADS;
-    pthread_mutex_lock(&(conn->lock));
-
-    if (PQconsumeInput(conn->pgconn) == 0) {
-        Dprintf("pq_is_busy: PQconsumeInput() failed");
-        pthread_mutex_unlock(&(conn->lock));
-        Py_BLOCK_THREADS;
-        PyErr_SetString(OperationalError, PQerrorMessage(conn->pgconn));
-        return -1;
-    }
-
-    pthread_mutex_unlock(&(conn->lock));
-    Py_END_ALLOW_THREADS;
-    
-    /* now check for notifies */
-    while ((pgn = PQnotifies(conn->pgconn)) != NULL) {
-        PyObject *notify;
-        
-        Dprintf("curs_is_busy: got NOTIFY from pid %d, msg = %s",
-                pgn->be_pid, pgn->relname);
-
-        notify = PyTuple_New(2);
-        PyTuple_SET_ITEM(notify, 0, PyInt_FromLong((long)pgn->be_pid));
-        PyTuple_SET_ITEM(notify, 1, PyString_FromString(pgn->relname));
-        PyList_Append(conn->notifies, notify);
-        free(pgn);
-    }
-    
-    return PQisBusy(conn->pgconn);
-}
-
-/* pq_execute - execute a query, possibly asyncronously
-
-   this fucntion locks the connection object
-   this function call Py_*_ALLOW_THREADS macros */
-
-int
-pq_execute(cursorObject *curs, const char *query, int async)
-{
-    /* if the status of the connection is critical raise an exception and
-       definitely close the connection */
-    if (curs->conn->critical) {
-        pq_resolve_critical(curs->conn, 1);
-        return -1;
-    }
-
-    /* check status of connection, raise error if not OK */
-    if (PQstatus(curs->conn->pgconn) != CONNECTION_OK) {
-        Dprintf("pq_execute: connection NOT OK");
-        PyErr_SetString(OperationalError, PQerrorMessage(curs->conn->pgconn));
-        return -1;
-    }
-    Dprintf("curs_execute: pg connection at %p OK", curs->conn->pgconn);
-
-    Py_BEGIN_ALLOW_THREADS;
-    pthread_mutex_lock(&(curs->conn->lock));
-
-    pq_begin(curs->conn);
-
-    if (async == 0) {
-        IFCLEARPGRES(curs->pgres);
-        Dprintf("pq_execute: executing SYNC query:");
-        Dprintf("    %-.200s", query);
-        curs->pgres = PQexec(curs->conn->pgconn, query);
-    }
-
-    else if (async == 1) {
-        /* first of all, let see if the previous query has already ended, if
-           not what should we do? just block and discard data or execute
-           another query? */
-        pq_clear_async(curs->conn);
-        
-        Dprintf("pq_execute: executing ASYNC query:");
-        Dprintf("    %-.200s", query);
-        
-        /* then we can go on and send a new query without fear */
-        IFCLEARPGRES(curs->pgres);
-        if (PQsendQuery(curs->conn->pgconn, query) == 0) {
-            pthread_mutex_unlock(&(curs->conn->lock));
-            Py_BLOCK_THREADS;
-            PyErr_SetString(OperationalError,
-                            PQerrorMessage(curs->conn->pgconn));
-            return -1;
-        }
-        Dprintf("pq_execute: async query sent to backend");
-    }
-    
-    pthread_mutex_unlock(&(curs->conn->lock));
-    Py_END_ALLOW_THREADS;
-    
-    /* if the execute was sync, we call pq_fetch() immediately,
-       to respect the old DBAPI-2.0 compatible behaviour */
-    if (async == 0) {
-        Dprintf("pq_execute: entering syncronous DBAPI compatibility mode");
-        if (pq_fetch(curs) == -1) return -1;
-    }
-    else {
-        curs->conn->async_cursor = (PyObject*)curs;
-    }
-    
-    return 1-async;
-}
-
-
-/* pq_fetch - fetch data after a query
-
-   this fucntion locks the connection object
-   this function call Py_*_ALLOW_THREADS macros
-
-   return value:
-     -1 - some error occurred while calling libpq
-      0 - no result from the backend but no libpq errors
-      1 - result from backend (possibly data is ready)
-*/
-
-static void
-_pq_fetch_tuples(cursorObject *curs)
-{
-    int i, *dsize = NULL;
-
-    int pgnfields = PQnfields(curs->pgres);
-    int pgbintuples = PQbinaryTuples(curs->pgres);
-
-    curs->notuples = 0;
-
-    /* create the tuple for description and typecasting */
-    Py_XDECREF(curs->description);
-    Py_XDECREF(curs->casts);
-    curs->description = PyTuple_New(pgnfields);
-    curs->casts = PyTuple_New(pgnfields);
-    curs->columns = pgnfields;
-    
-    /* calculate the display size for each column (cpu intensive, can be
-       switched off at configuration time) */
-#ifdef PSYCOPG_DISPLAY_SIZE
-    dsize = (int *)PyMem_Malloc(pgnfields * sizeof(int));
-    if (dsize != NULL) {
-        int j, len;
-        for (i=0; i < pgnfields; i++) {
-            dsize[i] = -1;
-        }
-        for (j = 0; j < curs->rowcount; j++) {
-            for (i = 0; i < pgnfields; i++) {
-                len = PQgetlength(curs->pgres, j, i);
-                if (len > dsize[i]) dsize[i] = len;
-            }
-        }
-    }
-#endif
-
-    /* calculate various parameters and typecasters */
-    for (i = 0; i < pgnfields; i++) {
-        Oid ftype = PQftype(curs->pgres, i);
-        int fsize = PQfsize(curs->pgres, i);
-        int fmod =  PQfmod(curs->pgres, i);
-        
-        PyObject *dtitem = PyTuple_New(7);
-        PyObject *type = PyInt_FromLong(ftype);
-        PyObject *cast = NULL;
-        
-        PyTuple_SET_ITEM(curs->description, i, dtitem);
-        
-        /* fill the right cast function by accessing the global dictionary of
-           casting objects.  if we got no defined cast use the default
-           one */
-        if (!(cast = PyDict_GetItem(curs->casts, type))) {
-            Dprintf("_pq_fetch_tuples: cast %d not in per-cursor dict", ftype);
-            if (!(cast = PyDict_GetItem(psyco_types, type))) {
-                Dprintf("_pq_fetch_tuples: cast %d not found, using default",
-                        PQftype(curs->pgres,i));
-                cast = psyco_default_cast;
-            }
-        }
-        /* else if we got binary tuples and if we got a field that
-           is binary use the default cast
-           FIXME: what the hell am I trying to do here? This just can't work..
-        */
-        else if (pgbintuples && cast == psyco_default_binary_cast) {
-            Dprintf("_pq_fetch_tuples: Binary cursor and "
-                    "binary field: %i using default cast",
-                    PQftype(curs->pgres,i));
-            cast = psyco_default_cast;
-        }
-        Dprintf("_pq_fetch_tuples: using cast at %p (%s) for type %d",
-                cast, PyString_AS_STRING(((typecastObject*)cast)->name),
-                PQftype(curs->pgres,i));
-        Py_INCREF(cast);
-        PyTuple_SET_ITEM(curs->casts, i, cast);
-    
-
-        /* 1/ fill the other fields */
-        PyTuple_SET_ITEM(dtitem, 0,
-                         PyString_FromString(PQfname(curs->pgres, i)));
-        PyTuple_SET_ITEM(dtitem, 1, type);
-
-        /* 2/ display size is the maximum size of this field result tuples. */
-        if (dsize && dsize[i] >= 0) {
-            PyTuple_SET_ITEM(dtitem, 2, PyInt_FromLong(dsize[i]));
-        }
-        else {
-            Py_INCREF(Py_None);
-            PyTuple_SET_ITEM(dtitem, 2, Py_None);
-        }
-
-        /* 3/ size on the backend */
-        if (fmod > 0) fmod = fmod - sizeof(int);
-        if (fsize == -1) {
-            if (ftype == NUMERICOID) {
-                PyTuple_SET_ITEM(dtitem, 3,
-                                 PyInt_FromLong((fmod >> 16) & 0xFFFF));
-            }
-            else { /* If variable length record, return maximum size */
-                PyTuple_SET_ITEM(dtitem, 3, PyInt_FromLong(fmod));
-            }
-        }
-        else {
-            PyTuple_SET_ITEM(dtitem, 3, PyInt_FromLong(fsize));
-        }
-
-        /* 4,5/ scale and precision */
-        if (ftype == NUMERICOID) {
-            PyTuple_SET_ITEM(dtitem, 4, PyInt_FromLong((fmod >> 16) & 0xFFFF));
-            PyTuple_SET_ITEM(dtitem, 5, PyInt_FromLong((fmod & 0xFFFF) - 4));
-        }
-        else {
-            Py_INCREF(Py_None);
-            PyTuple_SET_ITEM(dtitem, 4, Py_None);
-            Py_INCREF(Py_None);
-            PyTuple_SET_ITEM(dtitem, 5, Py_None);
-        }
-
-        /* 6/ FIXME: null_ok??? */
-        Py_INCREF(Py_None);
-        PyTuple_SET_ITEM(dtitem, 6, Py_None);
-    }
-    
-    if (dsize) PyMem_Free(dsize);
-}
-
-#ifdef HAVE_PQPROTOCOL3
-static int
-_pq_copy_in_v3(cursorObject *curs)
-{
-    /* COPY FROM implementation when protocol 3 is available: this function
-       uses the new PQputCopyData() and can detect errors and set the correct
-       exception */
-    PyObject *o;
-    int length = 0, error = 0;
-    
-    while (1) {
-        o = PyObject_CallMethod(curs->copyfile, "read", "i", curs->copysize);
-        if (!o || !PyString_Check(o) || (length = PyString_Size(o)) == -1) {
-            error = 1;
-        }
-        if (length == 0 || error == 1) break;
-        
-        Py_BEGIN_ALLOW_THREADS;
-        if (PQputCopyData(curs->conn->pgconn,
-                          PyString_AS_STRING(o), length) == -1) {
-            error = 2;
-        }
-        Py_END_ALLOW_THREADS;
-
-        if (error == 2) break;
-        
-        Py_DECREF(o);
-    }
-    
-    Py_XDECREF(o);
-    
-    if (error == 0 || error == 2)
-        /* 0 means that the copy went well, 2 that there was an error on the
-           backend: in both cases we'll get the error message from the
-           PQresult */
-        PQputCopyEnd(curs->conn->pgconn, NULL);
-    else
-        PQputCopyEnd(curs->conn->pgconn, "error during .read() call");
-
-    /* and finally we grab the operation result from the backend */
-    IFCLEARPGRES(curs->pgres);
-    while ((curs->pgres = PQgetResult(curs->conn->pgconn)) != NULL) {
-        if (PQresultStatus(curs->pgres) == PGRES_FATAL_ERROR)
-            pq_raise(curs->conn, curs, NULL, NULL);
-        IFCLEARPGRES(curs->pgres);
-    }
-
-    return 1;
-}
-#endif
-static int
-_pq_copy_in(cursorObject *curs)
-{
-    /* COPY FROM implementation when protocol 3 is not available: this
-       function can't fail but the backend will send an ERROR notice that will
-       be catched by our notice collector */
-    PyObject *o;
-
-    while (1) {
-        o = PyObject_CallMethod(curs->copyfile, "readline", NULL);
-        if (!o || o == Py_None || PyString_GET_SIZE(o) == 0) break;
-        if (PQputline(curs->conn->pgconn, PyString_AS_STRING(o)) != 0) {
-            Py_DECREF(o);
-            return -1;
-        }
-        Py_DECREF(o);
-    }
-    Py_XDECREF(o);
-    PQputline(curs->conn->pgconn, "\\.\n");
-    PQendcopy(curs->conn->pgconn);
-
-    /* if for some reason we're using a protocol 3 libpq to connect to a
-       protocol 2 backend we still need to cycle on the result set */
-    IFCLEARPGRES(curs->pgres);
-    while ((curs->pgres = PQgetResult(curs->conn->pgconn)) != NULL) {
-        if (PQresultStatus(curs->pgres) == PGRES_FATAL_ERROR)
-            pq_raise(curs->conn, curs, NULL, NULL);
-        IFCLEARPGRES(curs->pgres);
-    }
-
-    return 1;
-}
-
-#ifdef HAVE_PQPROTOCOL3
-static int
-_pq_copy_out_v3(cursorObject *curs)
-{
-    char *buffer;
-    int len;
-    
-    while (1) {
-        Py_BEGIN_ALLOW_THREADS;
-        len = PQgetCopyData(curs->conn->pgconn, &buffer, 0);
-        Py_END_ALLOW_THREADS;
-            
-        if (len > 0 && buffer) {
-            PyObject_CallMethod(curs->copyfile, "write", "s#", buffer, len);
-            PQfreemem(buffer);
-        }
-        /* we break on len == 0 but note that that should *not* happen,
-           because we are not doing an async call (if it happens blame
-           postgresql authors :/) */
-        else if (len <= 0) break;
-    }
-    
-    if (len == -2) {
-        pq_raise(curs->conn, NULL, NULL, NULL);
-        return -1;
-    }
-
-    /* and finally we grab the operation result from the backend */
-    IFCLEARPGRES(curs->pgres);
-    while ((curs->pgres = PQgetResult(curs->conn->pgconn)) != NULL) {
-        if (PQresultStatus(curs->pgres) == PGRES_FATAL_ERROR)
-            pq_raise(curs->conn, curs, NULL, NULL);
-        IFCLEARPGRES(curs->pgres);
-    }
-    return 1;
-}
-#endif
-
-static int
-_pq_copy_out(cursorObject *curs)
-{
-    char buffer[4096];
-    int status, len;
-
-    while (1) {
-        Py_BEGIN_ALLOW_THREADS;
-        status = PQgetline(curs->conn->pgconn, buffer, 4096);
-        Py_END_ALLOW_THREADS;
-        if (status == 0) {
-            if (buffer[0] == '\\' && buffer[1] == '.') break;
-
-            len = strlen(buffer);
-            buffer[len++] = '\n';
-        }
-        else if (status == 1) {
-            len = 4096-1;
-        }
-        else {
-            return -1;
-        }
-        
-        PyObject_CallMethod(curs->copyfile, "write", "s#", buffer, len);
-    }
-
-    status = 1;
-    if (PQendcopy(curs->conn->pgconn) != 0)
-        status = -1;
-    
-    /* if for some reason we're using a protocol 3 libpq to connect to a
-       protocol 2 backend we still need to cycle on the result set */
-    IFCLEARPGRES(curs->pgres);
-    while ((curs->pgres = PQgetResult(curs->conn->pgconn)) != NULL) {
-        if (PQresultStatus(curs->pgres) == PGRES_FATAL_ERROR)
-            pq_raise(curs->conn, curs, NULL, NULL);
-        IFCLEARPGRES(curs->pgres);
-    }
-
-    return status;
-}
-
-int
-pq_fetch(cursorObject *curs)
-{
-    int pgstatus, ex = -1;
-
-    /* even if we fail, we remove any information about the previous query */
-    curs_reset(curs);
-    
-    /* we check the result from the previous execute; if the result is not
-       already there, we need to consume some input and go to sleep until we
-       get something edible to eat */
-    if (!curs->pgres) {
-        
-        Dprintf("pq_fetch: no data: entering polling loop");
-        
-        while (pq_is_busy(curs->conn) > 0) {
-            fd_set rfds;
-            struct timeval tv;
-            int sval, sock;
-
-            Py_BEGIN_ALLOW_THREADS;
-            pthread_mutex_lock(&(curs->conn->lock));
-
-            sock = PQsocket(curs->conn->pgconn);
-            FD_ZERO(&rfds);
-            FD_SET(sock, &rfds);
-
-            /* set a default timeout of 5 seconds
-               TODO: make use of the timeout, maybe allowing the user to
-               make a non-blocking (timeouted) call to fetchXXX */
-            tv.tv_sec = 5;
-            tv.tv_usec = 0;
-
-            Dprintf("pq_fetch: entering PDflush() loop");
-            while (PQflush(curs->conn->pgconn) != 0);
-            sval = select(sock+1, &rfds, NULL, NULL, &tv);
-
-            pthread_mutex_unlock(&(curs->conn->lock));
-            Py_END_ALLOW_THREADS;
-        }
-
-        Dprintf("pq_fetch: data is probably ready");
-        IFCLEARPGRES(curs->pgres);
-        curs->pgres = PQgetResult(curs->conn->pgconn);
-    }
-
-    /* check for PGRES_FATAL_ERROR result */
-    /* FIXME: I am not sure we need to check for critical error here.
-    if (curs->pgres == NULL) {
-        Dprintf("pq_fetch: got a NULL pgres, checking for critical");
-        pq_set_critical(curs->conn);
-        if (curs->conn->critical) {
-            pq_resolve_critical(curs->conn);
-            return -1;
-        }
-        else {
-            return 0;
-        }
-    }
-    */
-    
-    if (curs->pgres == NULL) return 0;
-    
-    pgstatus = PQresultStatus(curs->pgres);
-    Dprintf("pq_fetch: pgstatus = %s", PQresStatus(pgstatus));
-
-    /* backend status message */
-    Py_XDECREF(curs->pgstatus);
-    curs->pgstatus = PyString_FromString(PQcmdStatus(curs->pgres));
-
-    switch(pgstatus) {
-
-    case PGRES_COMMAND_OK:
-        Dprintf("pq_fetch: command returned OK (no tuples)");
-        curs->rowcount = atoi(PQcmdTuples(curs->pgres));
-        curs->lastoid = PQoidValue(curs->pgres);
-        CLEARPGRES(curs->pgres);
-        ex = 1;
-        break;
-
-    case PGRES_COPY_OUT:
-        Dprintf("pq_fetch: data from a COPY TO (no tuples)");
-#ifdef HAVE_PQPROTOCOL3
-        if (curs->conn->protocol == 3)
-            ex = _pq_copy_out_v3(curs);
-        else
-#endif
-            ex = _pq_copy_out(curs);
-        curs->rowcount = -1;
-        /* error caught by out glorious notice handler */
-        if (PyErr_Occurred()) ex = -1;
-        IFCLEARPGRES(curs->pgres);
-        break;
-        
-    case PGRES_COPY_IN:
-        Dprintf("pq_fetch: data from a COPY FROM (no tuples)");
-#ifdef HAVE_PQPROTOCOL3
-        if (curs->conn->protocol == 3)        
-            ex = _pq_copy_in_v3(curs);
-        else
-#endif
-            ex = _pq_copy_in(curs);
-        curs->rowcount = -1;
-        /* error caught by out glorious notice handler */
-        if (PyErr_Occurred()) ex = -1;
-        IFCLEARPGRES(curs->pgres);
-        break;
-        
-    case PGRES_TUPLES_OK:
-        Dprintf("pq_fetch: data from a SELECT (got tuples)");
-        curs->rowcount = PQntuples(curs->pgres);
-        _pq_fetch_tuples(curs); ex = 0;
-        /* don't clear curs->pgres, because it contains the results! */
-        break;
-        
-    default:
-        Dprintf("pq_fetch: uh-oh, something FAILED");
-        pq_raise(curs->conn, curs, NULL, NULL);
-        IFCLEARPGRES(curs->pgres);
-        ex = -1;
-        break;
-    }
-
-    Dprintf("pq_fetch: fetching done; check for critical errors");
-    
-    /* error checking, close the connection if necessary (some critical errors
-       are not really critical, like a COPY FROM error: if that's the case we
-       raise the exception but we avoid to close the connection) */
-    if (curs->conn->critical) {
-        if (ex == -1) {
-            pq_resolve_critical(curs->conn, 1);
-        }
-        else {
-            pq_resolve_critical(curs->conn, 0);
-        }
-        return -1;
-    }
-    
-    return ex;
-}
diff --git a/psycopg2/psycopg/pqpath.h b/psycopg2/psycopg/pqpath.h
deleted file mode 100644 (file)
index 64d113e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* pqpath.h - definitions for pqpath.c
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_PQPATH_H
-#define PSYCOPG_PQPATH_H 1
-
-#include "psycopg/cursor.h"
-#include "psycopg/connection.h"
-
-/* macros to clean the pg result */
-#define IFCLEARPGRES(pgres)  if (pgres) {PQclear(pgres); pgres = NULL;}
-#define CLEARPGRES(pgres)    PQclear(pgres); pgres = NULL
-
-/* exported functions */
-extern int pq_fetch(cursorObject *curs);
-extern int pq_execute(cursorObject *curs, const char *query, int async);
-extern int pq_begin(connectionObject *conn);
-extern int pq_commit(connectionObject *conn);
-extern int pq_abort(connectionObject *conn);
-extern int pq_is_busy(connectionObject *conn);
-extern void pq_set_critical(connectionObject *conn, const char *msg);
-
-#endif /* !defined(PSYCOPG_PQPATH_H) */
diff --git a/psycopg2/psycopg/psycopg.h b/psycopg2/psycopg/psycopg.h
deleted file mode 100644 (file)
index a689ea4..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/* psycopg.h - definitions for the psycopg python module 
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_H
-#define PSYCOPG_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* DBAPI compliance parameters */
-#define APILEVEL "2.0"
-#define THREADSAFETY 2
-#define PARAMSTYLE "pyformat"
-    
-/* C API functions */
-#define psyco_errors_fill_NUM 0
-#define psyco_errors_fill_RETURN void
-#define psyco_errors_fill_PROTO (PyObject *dict)   
-#define psyco_errors_set_NUM 1
-#define psyco_errors_set_RETURN void
-#define psyco_errors_set_PROTO (PyObject *type)
-    
-/* Total number of C API pointers */
-#define PSYCOPG_API_pointers 2
-    
-#ifdef PSYCOPG_MODULE
-    /** This section is used when compiling psycopgmodule.c & co. **/
-extern psyco_errors_fill_RETURN psyco_errors_fill psyco_errors_fill_PROTO;
-extern psyco_errors_set_RETURN psyco_errors_set psyco_errors_set_PROTO;
-
-/* global excpetions */
-extern PyObject *Error, *Warning, *InterfaceError, *DatabaseError,
-    *InternalError, *OperationalError, *ProgrammingError,
-    *IntegrityError, *DataError, *NotSupportedError;
-
-/* python versions and compatibility stuff */
-#ifndef PyMODINIT_FUNC
-#define PyMODINIT_FUNC void
-#endif
-    
-#else
-    /** This section is used in modules that use psycopg's C API **/
-
-static void **PSYCOPG_API;
-
-#define psyco_errors_fill \
- (*(psyco_errors_fill_RETURN (*)psyco_errors_fill_PROTO) \
-  PSYCOPG_API[psyco_errors_fill_NUM])
-#define psyco_errors_set \
- (*(psyco_errors_set_RETURN (*)psyco_errors_set_PROTO) \
-  PSYCOPG_API[psyco_errors_set_NUM])
-    
-/* Return -1 and set exception on error, 0 on success. */
-static int
-import_psycopg(void)
-{
-    PyObject *module = PyImport_ImportModule("psycopg");
-
-    if (module != NULL) {
-        PyObject *c_api_object = PyObject_GetAttrString(module, "_C_API");
-        if (c_api_object == NULL) return -1;
-        if (PyCObject_Check(c_api_object))
-            PSYCOPG_API = (void **)PyCObject_AsVoidPtr(c_api_object);
-        Py_DECREF(c_api_object);
-    }
-    return 0;
-}
-
-#endif
-
-/* postgresql<->python encoding map */
-extern PyObject *psycoEncodings;
-    
-typedef struct {
-    char *pgenc;
-    char *pyenc;
-} encodingPair;
-
-/* the Decimal type, used by the DECIMAL typecaster */    
-extern PyObject *decimalType;
-
-/* some utility functions */
-extern void psyco_set_error(PyObject *exc, PyObject *curs,  char *msg, 
-                             char *pgerror, char *pgcode);
-                                  
-/* Exceptions docstrings */
-#define Error_doc \
-"Base class for error exceptions."
-
-#define Warning_doc \
-"A database warning."
-
-#define InterfaceError_doc \
-"Error related to the database interface."
-
-#define DatabaseError_doc \
-"Error related to the database engine."
-
-#define InternalError_doc \
-"The database encountered an internal error."
-
-#define OperationalError_doc \
-"Error related to database operation (disconnect, memory allocation etc)."
-
-#define ProgrammingError_doc \
-"Error related to database programming (SQL error, table not found etc)."
-
-#define IntegrityError_doc \
-"Error related to database integrity."
-
-#define DataError_doc \
-"Error related to problems with the processed data."
-
-#define NotSupportedError_doc \
-"A not supported datbase API was called."
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_H) */
diff --git a/psycopg2/psycopg/psycopgmodule.c b/psycopg2/psycopg/psycopgmodule.c
deleted file mode 100644 (file)
index 426fb27..0000000
+++ /dev/null
@@ -1,672 +0,0 @@
-/* psycopgmodule.c - psycopg module (will import other C classes)
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/python.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/connection.h"
-#include "psycopg/cursor.h"
-#include "psycopg/typecast.h"
-#include "psycopg/microprotocols.h"
-#include "psycopg/microprotocols_proto.h"
-
-#include "psycopg/adapter_qstring.h"
-#include "psycopg/adapter_binary.h"
-#include "psycopg/adapter_pboolean.h"
-#include "psycopg/adapter_asis.h"
-#include "psycopg/adapter_list.h"
-#include "psycopg/typecast_binary.h"
-
-#ifdef HAVE_MXDATETIME
-#include <mxDateTime.h>
-#include "psycopg/adapter_mxdatetime.h"
-mxDateTimeModule_APIObject *mxDateTimeP = NULL;
-#endif
-
-/* some module-level variables, like the datetime module */
-#ifdef HAVE_PYDATETIME
-#include <datetime.h>
-#include "psycopg/adapter_datetime.h"
-PyObject *pyDateTimeModuleP = NULL;
-PyObject *pyDateTypeP = NULL;
-PyObject *pyTimeTypeP = NULL;
-PyObject *pyDateTimeTypeP = NULL;
-PyObject *pyDeltaTypeP = NULL;
-#endif
-
-/* pointers to the psycopg.tz classes */
-PyObject *pyPsycopgTzModule = NULL;
-PyObject *pyPsycopgTzLOCAL = NULL;
-PyObject *pyPsycopgTzFixedOffsetTimezone = NULL;
-
-PyObject *psycoEncodings = NULL;
-PyObject *decimalType = NULL;
-
-/** connect module-level function **/
-#define psyco_connect_doc \
-"connect(dsn, ...) -- Create a new database connection.\n\n"               \
-"This function supports two different but equivalent sets of arguments.\n" \
-"A single data source name or ``dsn`` string can be used to specify the\n" \
-"connection parameters, as follows::\n\n"                                  \
-"    psycopg2.connect(\"dbname=xxx user=xxx ...\")\n\n"   \
-"If ``dsn`` is not provided it is possible to pass the parameters as\n"    \
-"keyword arguments; e.g.::\n\n"                                            \
-"    psycopg2.connect(database='xxx', user='xxx', ...)\n\n"                \
-"The full list of available parameters is:\n\n"                            \
-"- ``dbname`` -- database name (only in 'dsn')\n"                          \
-"- ``database`` -- database name (only as keyword argument)\n"             \
-"- ``host`` -- host address (defaults to UNIX socket if not provided)\n"   \
-"- ``port`` -- port number (defaults to 5432 if not provided)\n"           \
-"- ``user`` -- user name used to authenticate\n"                           \
-"- ``password`` -- password used to authenticate\n"                        \
-"- ``sslmode`` -- SSL mode (see PostgreSQL documentation)\n\n"             \
-"If the ``connection_factory`` keyword argument is not provided this\n"    \
-"function always return an instance of the `connection` class.\n"          \
-"Else the given sub-class of `extensions.connection` will be used to\n"    \
-"instantiate the connection object.\n\n"                                   \
-":return: New database connection\n"                                         \
-":rtype: `extensions.connection`"
-
-static int
-_psyco_connect_fill_dsn(char *dsn, char *kw, char *v, int i)
-{
-    strcpy(&dsn[i], kw); i += strlen(kw);
-    strcpy(&dsn[i], v); i += strlen(v);
-    return i;
-}
-
-static void
-_psyco_connect_fill_exc(connectionObject *conn)
-{
-    /* fill the connection object with the exceptions */
-    conn->exc_Error = Error;
-    Py_INCREF(Error);
-    conn->exc_Warning = Warning;
-    Py_INCREF(Warning);
-    conn->exc_InterfaceError = InterfaceError;
-    Py_INCREF(InterfaceError);
-    conn->exc_DatabaseError = DatabaseError;
-    Py_INCREF(DatabaseError);
-    conn->exc_InternalError = InternalError;
-    Py_INCREF(InternalError);
-    conn->exc_ProgrammingError = ProgrammingError;
-    Py_INCREF(ProgrammingError);
-    conn->exc_IntegrityError = IntegrityError;
-    Py_INCREF(IntegrityError);
-    conn->exc_DataError = DataError;
-    Py_INCREF(DataError);
-    conn->exc_NotSupportedError = NotSupportedError;
-    Py_INCREF(NotSupportedError);
-    conn->exc_OperationalError = OperationalError;
-    Py_INCREF(OperationalError);
-}
-
-static PyObject *
-psyco_connect(PyObject *self, PyObject *args, PyObject *keywds)
-{
-    PyObject *conn, *factory = NULL;
-    PyObject *pyport = NULL;
-    
-    int idsn=-1, iport=-1;
-    char *dsn=NULL, *database=NULL, *user=NULL, *password=NULL;
-    char *host=NULL, *sslmode=NULL;
-    char port[16];
-    
-    static char *kwlist[] = {"dsn", "database", "host", "port",
-                             "user", "password", "sslmode",
-                             "connection_factory", NULL};
-    
-    if (!PyArg_ParseTupleAndKeywords(args, keywds, "|sssOsssO", kwlist,
-                                     &dsn, &database, &host, &pyport,
-                                     &user, &password, &sslmode, &factory)) {
-        return NULL;
-    }
-
-    if (pyport && PyString_Check(pyport)) {
-       PyObject *pyint = PyInt_FromString(PyString_AsString(pyport), NULL, 10);
-       if (!pyint) return NULL;
-       iport = PyInt_AsLong(pyint);
-    }
-    else if (pyport && PyInt_Check(pyport)) {
-       iport = PyInt_AsLong(pyport);
-    }
-    else if (pyport != NULL) {
-       PyErr_SetString(PyExc_TypeError, "port must be a string or int");
-       return NULL;
-    }
-
-    if (iport > 0)
-      PyOS_snprintf(port, 16, "%d", iport);
-
-    if (dsn == NULL) {
-        int l = 45;  /* len("dbname= user= password= host= port= sslmode=\0") */
-
-        if (database) l += strlen(database);
-        if (host) l += strlen(host);
-        if (iport > 0) l += strlen(port);
-        if (user) l += strlen(user);
-        if (password) l += strlen(password);
-        if (sslmode) l += strlen(sslmode);
-        
-        dsn = malloc(l*sizeof(char));
-        if (dsn == NULL) {
-            PyErr_SetString(InterfaceError, "dynamic dsn allocation failed");
-            return NULL;
-        }
-
-        idsn = 0;
-        if (database)
-            idsn = _psyco_connect_fill_dsn(dsn, " dbname=", database, idsn);
-        if (host)
-            idsn = _psyco_connect_fill_dsn(dsn, " host=", host, idsn);
-        if (iport > 0)
-            idsn = _psyco_connect_fill_dsn(dsn, " port=", port, idsn);
-        if (user)
-            idsn = _psyco_connect_fill_dsn(dsn, " user=", user, idsn);
-        if (password)
-            idsn = _psyco_connect_fill_dsn(dsn, " password=", password, idsn);
-        if (sslmode)
-            idsn = _psyco_connect_fill_dsn(dsn, " sslmode=", sslmode, idsn);
-        
-        if (idsn > 0) {
-            dsn[idsn] = '\0';
-            memmove(dsn, &dsn[1], idsn);
-        }
-        else {
-            free(dsn);
-            PyErr_SetString(InterfaceError, "missing dsn and no parameters");
-            return NULL;
-        }
-    }
-
-    Dprintf("psyco_connect: dsn = '%s'", dsn);
-
-    /* allocate connection, fill with errors and return it */
-    if (factory == NULL) factory = (PyObject *)&connectionType;
-    conn = PyObject_CallFunction(factory, "s", dsn);
-    if (conn) _psyco_connect_fill_exc((connectionObject*)conn);
-    
-    return conn;
-}
-
-/** type registration **/
-#define psyco_register_type_doc \
-"register_type(obj) -> None -- register obj with psycopg type system\n\n" \
-":Parameters:\n" \
-"  * `obj`: A type adapter created by `new_type()`"
-
-#define typecast_from_python_doc \
-"new_type(oids, name, adapter) -> new type object\n\n" \
-"Create a new binding object. The object can be used with the\n" \
-"`register_type()` function to bind PostgreSQL objects to python objects.\n\n" \
-":Parameters:\n" \
-"  * `oids`: Tuple of ``oid`` of the PostgreSQL types to convert.\n" \
-"  * `name`: Name for the new type\n" \
-"  * `adapter`: Callable to perform type conversion.\n" \
-"    It must have the signature ``fun(value, cur)`` where ``value`` is\n" \
-"    the string representation returned by PostgreSQL (`None` if ``NULL``)\n" \
-"    and ``cur`` is the cursor from which data are read."
-
-static PyObject *
-psyco_register_type(PyObject *self, PyObject *args)
-{
-    PyObject *type;
-
-    if (!PyArg_ParseTuple(args, "O!", &typecastType, &type)) {
-        return NULL;
-    }
-
-    typecast_add(type, 0);
-    
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* default adapters */
-
-static void
-psyco_adapters_init(PyObject *mod)
-{
-    PyObject *call;
-    
-    microprotocols_add(&PyFloat_Type, NULL, (PyObject*)&asisType);
-    microprotocols_add(&PyInt_Type, NULL, (PyObject*)&asisType);
-    microprotocols_add(&PyLong_Type, NULL, (PyObject*)&asisType);
-    
-    microprotocols_add(&PyString_Type, NULL, (PyObject*)&qstringType);
-    microprotocols_add(&PyUnicode_Type, NULL, (PyObject*)&qstringType);
-    microprotocols_add(&PyBuffer_Type, NULL, (PyObject*)&binaryType);
-    microprotocols_add(&PyList_Type, NULL, (PyObject*)&listType);
-                       
-#ifdef HAVE_MXDATETIME
-    /* the module has already been initialized, so we can obtain the callable
-       objects directly from its dictionary :) */
-    call = PyMapping_GetItemString(mod, "TimestampFromMx");
-    microprotocols_add(mxDateTimeP->DateTime_Type, NULL, call);
-    call = PyMapping_GetItemString(mod, "TimeFromMx");
-    microprotocols_add(mxDateTimeP->DateTimeDelta_Type, NULL, call);
-#endif
-
-#ifdef HAVE_PYDATETIME
-    /* as above, we use the callable objects from the psycopg module */
-    call = PyMapping_GetItemString(mod, "DateFromPy");
-    microprotocols_add((PyTypeObject*)pyDateTypeP, NULL, call);
-    call = PyMapping_GetItemString(mod, "TimeFromPy");
-    microprotocols_add((PyTypeObject*)pyTimeTypeP, NULL, call);
-    call = PyMapping_GetItemString(mod, "TimestampFromPy");
-    microprotocols_add((PyTypeObject*)pyDateTimeTypeP, NULL, call);
-    call = PyMapping_GetItemString(mod, "IntervalFromPy");
-    microprotocols_add((PyTypeObject*)pyDeltaTypeP, NULL, call);
-#endif
-    
-#ifdef HAVE_PYBOOL
-    microprotocols_add(&PyBool_Type, NULL, (PyObject*)&pbooleanType);
-#endif
-
-#ifdef HAVE_DECIMAL
-    microprotocols_add((PyTypeObject*)decimalType, NULL, (PyObject*)&asisType);
-#endif
-}
-
-/* psyco_encodings_fill
-   
-   Fill the module's postgresql<->python encoding table */
-
-static encodingPair encodings[] = {
-    {"SQL_ASCII",    "ascii"},
-    {"LATIN1",       "latin_1"},
-    {"UNICODE",      "utf_8"},
-    {"UTF8",         "utf_8"},
-    
-    /* some compatibility stuff */
-    {"LATIN-1",      "latin_1"},
-    
-    {NULL, NULL}
-};
-static void psyco_encodings_fill(PyObject *dict)
-{
-    encodingPair *enc;
-
-    for (enc = encodings; enc->pgenc != NULL; enc++) {
-        PyObject *value = PyString_FromString(enc->pyenc);
-        PyDict_SetItemString(dict, enc->pgenc, value);
-        Py_DECREF(value);
-    }
-}
-
-/* psyco_errors_init, psyco_errors_fill (callable from C)
-
-   Initialize the module's exceptions and after that a dictionary with a full
-   set of exceptions. */
-
-PyObject *Error, *Warning, *InterfaceError, *DatabaseError,
-    *InternalError, *OperationalError, *ProgrammingError,
-    *IntegrityError, *DataError, *NotSupportedError;
-
-/* mapping between exception names and their PyObject */
-static struct {
-    char *name;
-    PyObject **exc;
-    PyObject **base;
-    char *docstr;
-} exctable[] = {
-    { "psycopg2.Error", &Error, 0, Error_doc },
-    { "psycopg2.Warning", &Warning, 0, Warning_doc },
-    { "psycopg2.InterfaceError", &InterfaceError, &Error, InterfaceError_doc },
-    { "psycopg2.DatabaseError", &DatabaseError, &Error, DatabaseError_doc },
-    { "psycopg2.InternalError", &InternalError, &DatabaseError, InternalError_doc },
-    { "psycopg2.OperationalError", &OperationalError, &DatabaseError, 
-        OperationalError_doc },
-    { "psycopg2.ProgrammingError", &ProgrammingError, &DatabaseError, 
-        ProgrammingError_doc },
-    { "psycopg2.IntegrityError", &IntegrityError, &DatabaseError, 
-        IntegrityError_doc },
-    { "psycopg2.DataError", &DataError, &DatabaseError, DataError_doc },
-    { "psycopg2.NotSupportedError", &NotSupportedError, &DatabaseError, 
-        NotSupportedError_doc },
-    {NULL}  /* Sentinel */
-};
-
-static void
-psyco_errors_init(void)
-{
-    /* the names of the exceptions here reflect the oranization of the
-       psycopg2 module and not the fact the the original error objects
-       live in _psycopg */
-       
-    int i;
-    PyObject *dict;
-    PyObject *base;
-    PyObject *str;
-
-    for (i=0; exctable[i].name; i++) {
-        dict = PyDict_New();
-
-        if (exctable[i].docstr) {
-            str = PyString_FromString(exctable[i].docstr);
-            PyDict_SetItemString(dict, "__doc__", str);
-        }
-
-        if (exctable[i].base == 0)
-            base = PyExc_StandardError;
-        else
-            base = *exctable[i].base;
-
-        *exctable[i].exc = PyErr_NewException(exctable[i].name, base, dict);
-    }
-}
-
-void
-psyco_errors_fill(PyObject *dict)
-{
-    PyDict_SetItemString(dict, "Error", Error);
-    PyDict_SetItemString(dict, "Warning", Warning);
-    PyDict_SetItemString(dict, "InterfaceError", InterfaceError);
-    PyDict_SetItemString(dict, "DatabaseError", DatabaseError);
-    PyDict_SetItemString(dict, "InternalError", InternalError);
-    PyDict_SetItemString(dict, "OperationalError", OperationalError);
-    PyDict_SetItemString(dict, "ProgrammingError", ProgrammingError);
-    PyDict_SetItemString(dict, "IntegrityError", IntegrityError);
-    PyDict_SetItemString(dict, "DataError", DataError);
-    PyDict_SetItemString(dict, "NotSupportedError", NotSupportedError);    
-}
-
-void
-psyco_errors_set(PyObject *type)
-{
-    PyObject_SetAttrString(type, "Error", Error);
-    PyObject_SetAttrString(type, "Warning", Warning);
-    PyObject_SetAttrString(type, "InterfaceError", InterfaceError);
-    PyObject_SetAttrString(type, "DatabaseError", DatabaseError);
-    PyObject_SetAttrString(type, "InternalError", InternalError);
-    PyObject_SetAttrString(type, "OperationalError", OperationalError);
-    PyObject_SetAttrString(type, "ProgrammingError", ProgrammingError);
-    PyObject_SetAttrString(type, "IntegrityError", IntegrityError);
-    PyObject_SetAttrString(type, "DataError", DataError);
-    PyObject_SetAttrString(type, "NotSupportedError", NotSupportedError);
-}
-
-/* psyco_error_new
-  
-   Create a new error of the given type with extra attributes. */
-   
-void
-psyco_set_error(PyObject *exc, PyObject *curs, char *msg, 
-                 char *pgerror, char *pgcode)
-{
-    PyObject *t;
-    
-    PyObject *err = PyObject_CallFunction(exc, "s", msg);
-  
-    if (err) {
-        if (pgerror) {
-            t = PyString_FromString(pgerror);
-        }
-        else {
-            t = Py_None ; Py_INCREF(t);
-        }
-        PyObject_SetAttrString(err, "pgerror", t);
-        Py_DECREF(t);
-
-        if (pgcode) {
-            t = PyString_FromString(pgcode);
-        }
-        else {
-            t = Py_None ; Py_INCREF(t);
-        }
-        PyObject_SetAttrString(err, "pgcode", t);
-        Py_DECREF(t);
-        
-        if (curs)
-            PyObject_SetAttrString(err, "cursor", curs);
-        else
-            PyObject_SetAttrString(err, "cursor", Py_None);
-
-        PyErr_SetObject(exc, err);
-       Py_DECREF(err);
-    }
-} 
-
-/* psyco_decimal_init
-
-   Initialize the module's pointer to the decimal type. */
-
-void
-psyco_decimal_init(void)
-{
-#ifdef HAVE_DECIMAL
-    PyObject *decimal = PyImport_ImportModule("decimal");
-    if (decimal) {
-        decimalType = PyObject_GetAttrString(decimal, "Decimal");
-    }
-    else {
-        PyErr_Clear();
-        decimalType = (PyObject *)&PyFloat_Type;
-        Py_INCREF(decimalType);
-    }
-#endif
-}
-
-
-/** method table and module initialization **/
-
-static PyMethodDef psycopgMethods[] = {
-    {"connect",  (PyCFunction)psyco_connect,
-     METH_VARARGS|METH_KEYWORDS, psyco_connect_doc},
-    {"adapt",  (PyCFunction)psyco_microprotocols_adapt,
-     METH_VARARGS, psyco_microprotocols_adapt_doc},
-
-    {"register_type", (PyCFunction)psyco_register_type,
-     METH_VARARGS, psyco_register_type_doc},
-    {"new_type", (PyCFunction)typecast_from_python,
-     METH_VARARGS|METH_KEYWORDS, typecast_from_python_doc},
-
-    {"AsIs",  (PyCFunction)psyco_AsIs,
-     METH_VARARGS, psyco_AsIs_doc},
-    {"QuotedString",  (PyCFunction)psyco_QuotedString,
-     METH_VARARGS, psyco_QuotedString_doc},
-    {"Boolean",  (PyCFunction)psyco_Boolean,
-     METH_VARARGS, psyco_Boolean_doc},
-    {"Binary",  (PyCFunction)psyco_Binary,
-     METH_VARARGS, psyco_Binary_doc},
-    {"Date",  (PyCFunction)psyco_Date,
-     METH_VARARGS, psyco_Date_doc},
-    {"Time",  (PyCFunction)psyco_Time,
-     METH_VARARGS, psyco_Time_doc},
-    {"Timestamp",  (PyCFunction)psyco_Timestamp,
-     METH_VARARGS, psyco_Timestamp_doc},
-    {"DateFromTicks",  (PyCFunction)psyco_DateFromTicks,
-     METH_VARARGS, psyco_DateFromTicks_doc},
-    {"TimeFromTicks",  (PyCFunction)psyco_TimeFromTicks,
-     METH_VARARGS, psyco_TimeFromTicks_doc},
-    {"TimestampFromTicks",  (PyCFunction)psyco_TimestampFromTicks,
-     METH_VARARGS, psyco_TimestampFromTicks_doc},
-    {"List",  (PyCFunction)psyco_List,
-     METH_VARARGS, psyco_List_doc},
-    
-#ifdef HAVE_MXDATETIME
-    {"DateFromMx",  (PyCFunction)psyco_DateFromMx,
-     METH_VARARGS, psyco_DateFromMx_doc},
-    {"TimeFromMx",  (PyCFunction)psyco_TimeFromMx,
-     METH_VARARGS, psyco_TimeFromMx_doc},
-    {"TimestampFromMx",  (PyCFunction)psyco_TimestampFromMx,
-     METH_VARARGS, psyco_TimestampFromMx_doc},
-    {"IntervalFromMx",  (PyCFunction)psyco_IntervalFromMx,
-     METH_VARARGS, psyco_IntervalFromMx_doc}, 
-#endif
-
-#ifdef HAVE_PYDATETIME
-    {"DateFromPy",  (PyCFunction)psyco_DateFromPy,
-     METH_VARARGS, psyco_DateFromPy_doc},
-    {"TimeFromPy",  (PyCFunction)psyco_TimeFromPy,
-     METH_VARARGS, psyco_TimeFromPy_doc},
-    {"TimestampFromPy",  (PyCFunction)psyco_TimestampFromPy,
-     METH_VARARGS, psyco_TimestampFromPy_doc},
-    {"IntervalFromPy",  (PyCFunction)psyco_IntervalFromPy,
-     METH_VARARGS, psyco_IntervalFromPy_doc},     
-#endif
-
-    {NULL, NULL, 0, NULL}        /* Sentinel */
-};
-
-PyMODINIT_FUNC
-init_psycopg(void)
-{
-    static void *PSYCOPG_API[PSYCOPG_API_pointers];
-    
-    PyObject *module, *dict;
-    PyObject *c_api_object;
-
-    Dprintf("initpsycopg: initializing psycopg %s", PSYCOPG_VERSION);
-
-    /* initialize all the new types and then the module */
-    connectionType.ob_type = &PyType_Type;
-    cursorType.ob_type     = &PyType_Type;
-    typecastType.ob_type   = &PyType_Type;
-    qstringType.ob_type    = &PyType_Type;
-    binaryType.ob_type     = &PyType_Type;
-    isqlquoteType.ob_type  = &PyType_Type;
-    asisType.ob_type       = &PyType_Type;
-    listType.ob_type       = &PyType_Type;
-    chunkType.ob_type      = &PyType_Type;
-    
-    if (PyType_Ready(&connectionType) == -1) return;
-    if (PyType_Ready(&cursorType) == -1) return;
-    if (PyType_Ready(&typecastType) == -1) return;
-    if (PyType_Ready(&qstringType) == -1) return;
-    if (PyType_Ready(&binaryType) == -1) return;
-    if (PyType_Ready(&isqlquoteType) == -1) return;
-    if (PyType_Ready(&asisType) == -1) return;
-    if (PyType_Ready(&listType) == -1) return;
-    if (PyType_Ready(&chunkType) == -1) return;
-    
-#ifdef HAVE_PYBOOL
-    pbooleanType.ob_type   = &PyType_Type;
-    if (PyType_Ready(&pbooleanType) == -1) return;
-#endif
-    
-    /* import mx.DateTime module, if necessary */
-#ifdef HAVE_MXDATETIME
-    mxdatetimeType.ob_type = &PyType_Type;
-    if (PyType_Ready(&mxdatetimeType) == -1) return;
-    if (mxDateTime_ImportModuleAndAPI() != 0) {
-        Dprintf("initpsycopg: why marc hide mx.DateTime again?!"); 
-        PyErr_SetString(PyExc_ImportError, "can't import mx.DateTime module");
-        return;
-    }
-    mxDateTimeP = &mxDateTime;
-#endif
-
-    /* import python builtin datetime module, if available */
-#ifdef HAVE_PYDATETIME
-    pyDateTimeModuleP = PyImport_ImportModule("datetime");
-    if (pyDateTimeModuleP == NULL) {
-        Dprintf("initpsycopg: can't import datetime module"); 
-        PyErr_SetString(PyExc_ImportError, "can't import datetime module");
-        return;
-    }
-    pydatetimeType.ob_type = &PyType_Type;
-    if (PyType_Ready(&pydatetimeType) == -1) return;
-
-    /* now we define the datetime types, this is crazy because python should
-       be doing that, not us! */
-    pyDateTypeP = PyObject_GetAttrString(pyDateTimeModuleP, "date");
-    pyTimeTypeP = PyObject_GetAttrString(pyDateTimeModuleP, "time");
-    pyDateTimeTypeP = PyObject_GetAttrString(pyDateTimeModuleP, "datetime");
-    pyDeltaTypeP = PyObject_GetAttrString(pyDateTimeModuleP, "timedelta");
-#endif    
-
-    /* import psycopg2.tz anyway (TODO: replace with C-level module?) */
-    pyPsycopgTzModule = PyImport_ImportModule("psycopg2.tz");
-    if (pyPsycopgTzModule == NULL) {
-        Dprintf("initpsycopg: can't import psycopg2.tz module"); 
-        PyErr_SetString(PyExc_ImportError, "can't import psycopg2.tz module");
-        return;        
-    }
-    pyPsycopgTzLOCAL = 
-        PyObject_GetAttrString(pyPsycopgTzModule, "LOCAL"); 
-    pyPsycopgTzFixedOffsetTimezone = 
-        PyObject_GetAttrString(pyPsycopgTzModule, "FixedOffsetTimezone");
-        
-    /* initialize the module and grab module's dictionary */
-    module = Py_InitModule("_psycopg", psycopgMethods);
-    dict = PyModule_GetDict(module);
-
-    /* initialize all the module's exported functions */
-    /* PyBoxer_API[PyBoxer_Fake_NUM] = (void *)PyBoxer_Fake; */
-
-    /* Create a CObject containing the API pointer array's address */
-    c_api_object = PyCObject_FromVoidPtr((void *)PSYCOPG_API, NULL);
-    if (c_api_object != NULL)
-        PyModule_AddObject(module, "_C_API", c_api_object);
-
-    /* other mixed initializations of module-level variables */
-    psycoEncodings = PyDict_New();
-    psyco_encodings_fill(psycoEncodings);
-    psyco_decimal_init();
-    
-    /* set some module's parameters */
-    PyModule_AddStringConstant(module, "__version__", PSYCOPG_VERSION);
-    PyModule_AddStringConstant(module, "__doc__", "psycopg PostgreSQL driver");
-    PyModule_AddObject(module, "apilevel", PyString_FromString(APILEVEL));
-    PyModule_AddObject(module, "threadsafety", PyInt_FromLong(THREADSAFETY));
-    PyModule_AddObject(module, "paramstyle", PyString_FromString(PARAMSTYLE));
-    
-    /* put new types in module dictionary */
-    PyModule_AddObject(module, "connection", (PyObject*)&connectionType);
-    PyModule_AddObject(module, "cursor", (PyObject*)&cursorType);
-    PyModule_AddObject(module, "ISQLQuote", (PyObject*)&isqlquoteType);
-    
-    /* encodings dictionary in module dictionary */
-    PyModule_AddObject(module, "encodings", psycoEncodings);
-    
-    /* initialize default set of typecasters */
-    typecast_init(dict);
-
-    /* initialize microprotocols layer */
-    microprotocols_init(dict);
-    psyco_adapters_init(dict);
-    
-    /* create a standard set of exceptions and add them to the module's dict */
-    psyco_errors_init();
-    psyco_errors_fill(dict);
-    
-    /* Solve win32 build issue about non-constant initializer element */
-    cursorType.tp_alloc = PyType_GenericAlloc;
-    binaryType.tp_alloc = PyType_GenericAlloc;
-    isqlquoteType.tp_alloc = PyType_GenericAlloc;
-    pbooleanType.tp_alloc = PyType_GenericAlloc;
-    connectionType.tp_alloc = PyType_GenericAlloc;
-    asisType.tp_alloc = PyType_GenericAlloc;
-    qstringType.tp_alloc = PyType_GenericAlloc;
-    listType.tp_alloc = PyType_GenericAlloc;
-    chunkType.tp_alloc = PyType_GenericAlloc;
-    
-#ifdef HAVE_PYDATETIME
-    pydatetimeType.tp_alloc = PyType_GenericAlloc;
-#endif
-    
-    Dprintf("initpsycopg: module initialization complete");
-}
diff --git a/psycopg2/psycopg/python.h b/psycopg2/psycopg/python.h
deleted file mode 100644 (file)
index 1c2b96d..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* python.h - python version compatibility stuff
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_PYTHON_H
-#define PSYCOPG_PYTHON_H 1
-
-#include <Python.h>
-#include <structmember.h>
-
-/* python < 2.2 does not have PyMemeberDef */
-#if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 2
-#define PyMemberDef memberlist 
-#endif
-
-/* PyObject_TypeCheck introduced in 2.2 */
-#ifndef PyObject_TypeCheck
-#define PyObject_TypeCheck(o, t) ((o)->ob_type == (t))
-#endif
-
-/* python 2.2 does not have freefunc (it has destructor instead) */
-#if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 3
-#define freefunc destructor
-#endif
-
-#endif /* !defined(PSYCOPG_PYTHON_H) */
diff --git a/psycopg2/psycopg/typecast.c b/psycopg2/psycopg/typecast.c
deleted file mode 100644 (file)
index ef91bfd..0000000
+++ /dev/null
@@ -1,563 +0,0 @@
-/* typecast.c - basic utility functions related to typecasting
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Python.h>
-#include <structmember.h>
-
-#define PSYCOPG_MODULE
-#include "psycopg/config.h"
-#include "psycopg/psycopg.h"
-#include "psycopg/python.h"
-#include "psycopg/typecast.h"
-#include "psycopg/cursor.h"
-
-/* usefull function used by some typecasters */
-
-static char *
-skip_until_space(char *s)
-{
-    while (*s && *s != ' ') s++;
-    return s;
-}
-
-static char *
-skip_until_space2(char *s, int *len)
-{
-    while (*len > 0 && *s && *s != ' ') {
-        s++; (*len)--;
-    }
-    return s;
-}
-
-static int
-typecast_parse_date(char* s, char** t, int* len,
-                     int* year, int* month, int* day)
-{
-    int acc = -1, cz = 0;
-    
-    Dprintf("typecast_parse_date: len = %d, s = %s", *len, s);
-     
-    while (cz < 3 && *len > 0 && *s) {
-        switch (*s) {
-        case '-':
-        case ' ':
-        case 'T':
-            if (cz == 0) *year = acc;
-            else if (cz == 1) *month = acc;
-            else if (cz == 2) *day = acc;
-            acc = -1; cz++;
-            break;
-        default:
-            acc = (acc == -1 ? 0 : acc*10) + ((int)*s - (int)'0');
-            break;            
-        }
-
-        s++; (*len)--;
-    }
-
-    if (acc != -1) {
-        *day = acc;
-        cz += 1;
-    }
-    if (t != NULL) *t = s;    
-
-    return cz;
-}
-
-static int
-typecast_parse_time(char* s, char** t, int* len,
-                     int* hh, int* mm, int* ss, int* us, int* tz)
-{
-    int acc = -1, cz = 0;
-    int tzs = 1, tzhh = 0, tzmm = 0;
-    int usd = 0;
-    
-    /* sets microseconds and timezone to 0 because they may be missing */
-    *us = *tz = 0;
-    
-    Dprintf("typecast_parse_time: len = %d, s = %s", *len, s);
-     
-    while (cz < 6 && *len > 0 && *s) {
-        switch (*s) {
-        case ':':
-            if (cz == 0) *hh = acc;
-            else if (cz == 1) *mm = acc;
-            else if (cz == 2) *ss = acc;
-            else if (cz == 3) *us = acc;
-            else if (cz == 4) tzhh = acc;
-            acc = -1; cz++;
-            break;
-        case '.':
-            /* we expect seconds and if we don't get them we return an error */
-            if (cz != 2) return -1;
-            *ss = acc;
-            acc = -1; cz++;
-            break;
-        case '+':
-        case '-':
-            /* seconds or microseconds here, anything else is an error */
-            if (cz < 2 || cz > 3) return -1;
-            if (*s == '-') tzs = -1;
-            if      (cz == 2) *ss = acc;
-            else if (cz == 3) *us = acc;
-            acc = -1; cz = 4;
-            break;
-        default:
-            acc = (acc == -1 ? 0 : acc*10) + ((int)*s - (int)'0');
-            if (cz == 3) usd += 1;
-            break;            
-        }
-
-        s++; (*len)--;
-    }
-
-    if (acc != -1) {
-        if (cz == 2)      { *ss = acc; cz += 1; }
-        else if (cz == 3) { *us = acc; cz += 1; }
-        else if (cz == 4) { tzhh = acc; cz += 1; }
-        else if (cz == 5)   tzmm = acc;
-    }
-    if (t != NULL) *t = s;
-    
-    *tz = tzs * tzhh*60 + tzmm;
-    
-    if (*us != 0.0) {
-        while (usd++ < 6) *us *= 10.0;
-    }
-    
-    return cz;
-}
-
-/** include casting objects **/
-#include "psycopg/typecast_basic.c"
-#include "psycopg/typecast_binary.c"
-
-#ifdef HAVE_MXDATETIME
-#include "psycopg/typecast_mxdatetime.c"
-#endif
-
-#ifdef HAVE_PYDATETIME
-#include "psycopg/typecast_datetime.c"
-#endif
-
-#include "psycopg/typecast_array.c"
-#include "psycopg/typecast_builtins.c"
-
-
-/* a list of initializers, used to make the typecasters accessible anyway */
-#ifdef HAVE_PYDATETIME
-typecastObject_initlist typecast_pydatetime[] = {
-    {"PYDATETIME", typecast_DATETIME_types, typecast_PYDATETIME_cast},
-    {"PYTIME", typecast_TIME_types, typecast_PYTIME_cast},
-    {"PYDATE", typecast_DATE_types, typecast_PYDATE_cast},
-    {"PYINTERVAL", typecast_INTERVAL_types, typecast_PYINTERVAL_cast},    
-    {NULL, NULL, NULL}
-};
-#endif
-
-/* a list of initializers, used to make the typecasters accessible anyway */
-#ifdef HAVE_MXDATETIME
-typecastObject_initlist typecast_mxdatetime[] = {
-    {"MXDATETIME", typecast_DATETIME_types, typecast_MXDATE_cast},
-    {"MXTIME", typecast_TIME_types, typecast_MXTIME_cast},
-    {"MXDATE", typecast_DATE_types, typecast_MXDATE_cast},
-    {"MXINTERVAL", typecast_INTERVAL_types, typecast_MXINTERVAL_cast},    
-    {NULL, NULL, NULL}
-};
-#endif
-
-
-/** the type dictionary and associated functions **/
-
-PyObject *psyco_types;
-PyObject *psyco_default_cast;
-PyObject *psyco_binary_types;
-PyObject *psyco_default_binary_cast;
-
-static long int typecast_default_DEFAULT[] = {0};
-static typecastObject_initlist typecast_default = {
-    "DEFAULT", typecast_default_DEFAULT, typecast_STRING_cast};
-
-
-/* typecast_init - initialize the dictionary and create default types */
-
-int
-typecast_init(PyObject *dict)
-{
-    int i;
-    
-    /* create type dictionary and put it in module namespace */
-    psyco_types = PyDict_New();
-    psyco_binary_types = PyDict_New();
-    
-    if (!psyco_types || !psyco_binary_types) {
-        Py_XDECREF(psyco_types);
-        Py_XDECREF(psyco_binary_types);
-        return -1;
-    }                         
-
-    PyDict_SetItemString(dict, "string_types", psyco_types);
-    PyDict_SetItemString(dict, "binary_types", psyco_binary_types);
-    
-    /* insert the cast types into the 'types' dictionary and register them in
-       the module dictionary */
-    for (i = 0; typecast_builtins[i].name != NULL; i++) {
-        typecastObject *t;
-
-        Dprintf("typecast_init: initializing %s", typecast_builtins[i].name);
-
-        t = (typecastObject *)typecast_from_c(&(typecast_builtins[i]), dict);
-        if (t == NULL) return -1;
-        if (typecast_add((PyObject *)t, 0) != 0) return -1;
-
-        PyDict_SetItem(dict, t->name, (PyObject *)t);
-
-        /* export binary object */
-        if (typecast_builtins[i].values == typecast_BINARY_types) {
-            psyco_default_binary_cast = (PyObject *)t;
-        }
-    }
-    
-    /* create and save a default cast object (but does not register it) */
-    psyco_default_cast = typecast_from_c(&typecast_default, dict);
-
-    /* register the date/time typecasters with their original names */
-#ifdef HAVE_MXDATETIME
-    for (i = 0; typecast_mxdatetime[i].name != NULL; i++) {
-        typecastObject *t;
-        Dprintf("typecast_init: initializing %s", typecast_mxdatetime[i].name);
-        t = (typecastObject *)typecast_from_c(&(typecast_mxdatetime[i]), dict);
-        if (t == NULL) return -1;
-        PyDict_SetItem(dict, t->name, (PyObject *)t);
-    }
-#endif
-#ifdef HAVE_PYDATETIME
-    for (i = 0; typecast_pydatetime[i].name != NULL; i++) {
-        typecastObject *t;
-        Dprintf("typecast_init: initializing %s", typecast_pydatetime[i].name);
-        t = (typecastObject *)typecast_from_c(&(typecast_pydatetime[i]), dict);
-        if (t == NULL) return -1;
-        PyDict_SetItem(dict, t->name, (PyObject *)t);
-    }
-#endif
-    
-    return 0;
-}
-
-/* typecast_add - add a type object to the dictionary */
-int
-typecast_add(PyObject *obj, int binary)
-{
-    PyObject *val;
-    int len, i;
-
-    typecastObject *type = (typecastObject *)obj;
-    
-    Dprintf("typecast_add: object at %p, values refcnt = %d",
-            obj, type->values->ob_refcnt);
-
-    len = PyTuple_Size(type->values);
-    for (i = 0; i < len; i++) {
-        val = PyTuple_GetItem(type->values, i);
-        Dprintf("typecast_add:     adding val: %ld", PyInt_AsLong(val));
-        if (binary) {
-            PyDict_SetItem(psyco_binary_types, val, obj);
-        }
-        else {
-            PyDict_SetItem(psyco_types, val, obj);
-        }
-    }
-
-    Dprintf("typecast_add:     base caster: %p", type->bcast);
-
-    return 0;
-}
-
-
-/** typecast type **/
-
-#define OFFSETOF(x) offsetof(typecastObject, x)
-
-static int
-typecast_cmp(PyObject *obj1, PyObject* obj2)
-{
-    typecastObject *self = (typecastObject*)obj1;
-    typecastObject *other = NULL;
-    PyObject *number = NULL;
-    int i, j, res = -1;
-    
-    if (PyObject_TypeCheck(obj2, &typecastType)) {
-        other = (typecastObject*)obj2;
-    }
-    else {
-        number = PyNumber_Int(obj2);
-    }
-
-    Dprintf("typecast_cmp: other = %p, number = %p", other, number);
-    
-    for (i=0; i < PyObject_Length(self->values) && res == -1; i++) {
-        long int val = PyInt_AsLong(PyTuple_GET_ITEM(self->values, i));
-        
-        if (other != NULL) {
-            for (j=0; j < PyObject_Length(other->values); j++) {
-                if (PyInt_AsLong(PyTuple_GET_ITEM(other->values, j)) == val) {
-                    res = 0; break;   
-                }
-            }
-        }
-        
-        else if (number != NULL) {
-            if (PyInt_AsLong(number) == val) {
-                res = 0; break;
-            }
-        }
-    }
-    
-    Py_XDECREF(number);
-    return res;
-}
-
-static PyObject*
-typecast_richcompare(PyObject *obj1, PyObject* obj2, int opid)
-{
-    PyObject *result = NULL;
-    int res = typecast_cmp(obj1, obj2);
-    
-    if (PyErr_Occurred()) return NULL;
-    
-    if ((opid == Py_EQ && res == 0) || (opid != Py_EQ && res != 0))
-        result = Py_True;
-    else
-        result = Py_False;
-    
-    Py_INCREF(result);
-    return result;
-}
-     
-static struct PyMemberDef typecastObject_members[] = {
-    {"name", T_OBJECT, OFFSETOF(name), RO},
-    {"values", T_OBJECT, OFFSETOF(values), RO},
-    {NULL}
-};
-    
-static void
-typecast_dealloc(PyObject *obj)
-{
-    typecastObject *self = (typecastObject*)obj;
-    
-    Py_XDECREF(self->values);
-    Py_XDECREF(self->name);
-    Py_XDECREF(self->pcast);
-
-    PyObject_Del(self);
-}
-
-static PyObject *
-typecast_call(PyObject *obj, PyObject *args, PyObject *kwargs)
-{   
-    PyObject *string, *cursor;
-    
-    if (!PyArg_ParseTuple(args, "OO", &string, &cursor)) {
-        return NULL;
-    }
-
-    return typecast_cast(obj,
-                         PyString_AsString(string), PyString_Size(string),
-                         cursor);
-}
-
-PyTypeObject typecastType = {
-    PyObject_HEAD_INIT(NULL)
-    0,
-    "psycopg2._psycopg.type",
-    sizeof(typecastObject),
-    0,
-    
-    typecast_dealloc, /*tp_dealloc*/
-    0,          /*tp_print*/ 
-    0,          /*tp_getattr*/
-    0,          /*tp_setattr*/
-    typecast_cmp, /*tp_compare*/
-    0,          /*tp_repr*/
-    0,          /*tp_as_number*/
-    0,          /*tp_as_sequence*/
-    0,          /*tp_as_mapping*/
-    0,          /*tp_hash */
-
-    typecast_call, /*tp_call*/
-    0,          /*tp_str*/
-    0,          /*tp_getattro*/
-    0,          /*tp_setattro*/
-    0,          /*tp_as_buffer*/
-
-    Py_TPFLAGS_HAVE_RICHCOMPARE, /*tp_flags*/
-    "psycopg type-casting object", /*tp_doc*/
-    
-    0,          /*tp_traverse*/
-    0,          /*tp_clear*/
-
-    typecast_richcompare, /*tp_richcompare*/
-    0,          /*tp_weaklistoffset*/
-
-    0,          /*tp_iter*/
-    0,          /*tp_iternext*/
-
-    /* Attribute descriptor and subclassing stuff */
-
-    0, /*tp_methods*/
-    typecastObject_members, /*tp_members*/
-    0,          /*tp_getset*/
-    0,          /*tp_base*/
-    0,          /*tp_dict*/
-    
-    0,          /*tp_descr_get*/
-    0,          /*tp_descr_set*/
-    0,          /*tp_dictoffset*/
-    
-    0, /*tp_init*/
-    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
-    0, /*tp_new*/
-    0, /*tp_free  Low-level free-memory routine */
-    0,          /*tp_is_gc For PyObject_IS_GC */
-    0,          /*tp_bases*/
-    0,          /*tp_mro method resolution order */
-    0,          /*tp_cache*/
-    0,          /*tp_subclasses*/
-    0           /*tp_weaklist*/
-};
-
-static PyObject *
-typecast_new(PyObject *name, PyObject *values, PyObject *cast, PyObject *base)
-{
-    typecastObject *obj;
-
-    obj = PyObject_NEW(typecastObject, &typecastType);
-    if (obj == NULL) return NULL;
-
-    Dprintf("typecast_new: new type at = %p, refcnt = %d", obj, obj->ob_refcnt);
-             
-    Py_INCREF(values);
-    obj->values = values;
-    
-    if (name) {
-        Py_INCREF(name);
-        obj->name = name;
-    }
-    else {
-        Py_INCREF(Py_None);
-        obj->name = Py_None;
-    }
-
-    obj->pcast = NULL;
-    obj->ccast = NULL;
-    obj->bcast = base;
-
-    if (obj->bcast) Py_INCREF(obj->bcast);
-
-    /* FIXME: raise an exception when None is passed as Python caster */
-    if (cast && cast != Py_None) {
-        Py_INCREF(cast);
-        obj->pcast = cast;
-    }
-    
-    Dprintf("typecast_new: typecast object created at %p", obj);
-    
-    return (PyObject *)obj;
-}
-
-PyObject *
-typecast_from_python(PyObject *self, PyObject *args, PyObject *keywds)
-{
-    PyObject *v, *name, *cast = NULL, *base = NULL;
-
-    static char *kwlist[] = {"values", "name", "castobj", "baseobj", NULL};
-    
-    if (!PyArg_ParseTupleAndKeywords(args, keywds, "O!|O!OO", kwlist, 
-                                     &PyTuple_Type, &v,
-                                     &PyString_Type, &name,
-                                     &cast, &base)) {
-        return NULL;
-    }
-    
-    return typecast_new(name, v, cast, base);
-}
-
-PyObject *
-typecast_from_c(typecastObject_initlist *type, PyObject *dict)
-{
-    PyObject *tuple, *base = NULL;
-    typecastObject *obj;
-    int i, len = 0;
-
-    /* before doing anything else we look for the base */
-    if (type->base) {
-        /* NOTE: base is a borrowed reference! */
-        base = PyDict_GetItemString(dict, type->base);
-        if (!base) {
-            PyErr_Format(Error, "typecast base not found: %s", type->base);
-            return NULL;
-        }
-    }
-
-    while (type->values[len] != 0) len++;
-    
-    tuple = PyTuple_New(len);
-    if (!tuple) return NULL;
-    
-    for (i = 0; i < len ; i++) {
-        PyTuple_SET_ITEM(tuple, i, PyInt_FromLong(type->values[i]));
-    }
-
-        
-    obj = (typecastObject *)
-        typecast_new(PyString_FromString(type->name), tuple, NULL, base);
-    
-    if (obj) {
-        obj->ccast = type->cast;
-        obj->pcast = NULL;
-    }
-    return (PyObject *)obj;
-}
-
-PyObject *
-typecast_cast(PyObject *obj, char *str, int len, PyObject *curs)
-{
-    PyObject *old, *res = NULL;
-    typecastObject *self = (typecastObject *)obj;
-
-    /* we don't incref, the caster *can't* die at this point */
-    old = ((cursorObject*)curs)->caster;
-    ((cursorObject*)curs)->caster = obj;
-    
-    if (self->ccast) {
-        res = self->ccast(str, len, curs);
-    }
-    else if (self->pcast) {
-        res = PyObject_CallFunction(self->pcast, "s#O", str, len, curs);
-    }
-    else {
-        PyErr_SetString(Error, "internal error: no casting function found");
-    }
-
-    ((cursorObject*)curs)->caster = old;
-
-    return res;
-}
diff --git a/psycopg2/psycopg/typecast.h b/psycopg2/psycopg/typecast.h
deleted file mode 100644 (file)
index ec77e5c..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/* typecast.h - definitions for typecasters
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_TYPECAST_H
-#define PSYCOPG_TYPECAST_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* type of type-casting functions (both C and Python) */
-typedef PyObject *(*typecast_function)(char *, int len, PyObject *);
-
-/** typecast type **/
-
-extern PyTypeObject typecastType;
-
-typedef struct {
-    PyObject_HEAD
-
-    PyObject *name;    /* the name of this type */
-    PyObject *values;  /* the different types this instance can match */
-
-    typecast_function  ccast;  /* the C casting function */
-    PyObject          *pcast;  /* the python casting function */
-    PyObject          *bcast;  /* base cast, used by array typecasters */
-} typecastObject;
-
-/* the initialization values are stored here */
-
-typedef struct {
-    char *name;
-    long int *values;
-    typecast_function cast;
-
-    /* base is the base typecaster for arrays */
-    char *base;
-} typecastObject_initlist;
-
-/* the type dictionary, much faster to access it globally */
-extern PyObject *psyco_types;
-extern PyObject *psyco_binary_types;
-    
-/* the default casting objects, used when no other objects are available */
-extern PyObject *psyco_default_cast;
-extern PyObject *psyco_default_binary_cast;
-
-/** exported functions **/
-
-/* used by module.c to init the type system and register types */
-extern int typecast_init(PyObject *dict);
-extern int typecast_add(PyObject *obj, int binary);
-
-/* the C callable typecastObject creator function */
-extern PyObject *typecast_from_c(typecastObject_initlist *type, PyObject *d);
-
-/* the python callable typecast creator function */
-extern PyObject *typecast_from_python(
-    PyObject *self, PyObject *args, PyObject *keywds);
-
-/* the function used to dispatch typecasting calls */
-extern PyObject *typecast_cast(
-    PyObject *self, char *str, int len, PyObject *curs);
-    
-#endif /* !defined(PSYCOPG_TYPECAST_H) */
diff --git a/psycopg2/psycopg/typecast_array.c b/psycopg2/psycopg/typecast_array.c
deleted file mode 100644 (file)
index 7dcb3a3..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/* typecast_array.c - array typecasters
- *
- * Copyright (C) 2005 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of the psycopg module.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#define MAX_DIMENSIONS 16
-
-/** typecast_array_cleanup - remove the horrible [...]= stuff **/
-
-static int
-typecast_array_cleanup(char **str, int *len)
-{
-    int i, depth = 1;
-    
-    if ((*str)[0] != '[') return -1;
-    
-    for (i=1 ; depth > 0 && i < *len ; i++) {
-        if ((*str)[i] == '[')
-            depth += 1;
-        else if ((*str)[i] == ']')
-            depth -= 1;
-    }
-    if ((*str)[i] != '=') return -1;
-    
-    *str = &((*str)[i+1]);
-    *len = *len - i - 1;
-    return 0;
-}
-
-/** typecast_array_scan - scan a string looking for array items **/
-
-#define ASCAN_ERROR -1
-#define ASCAN_EOF    0
-#define ASCAN_BEGIN  1
-#define ASCAN_END    2
-#define ASCAN_TOKEN  3
-#define ASCAN_QUOTED 4
-
-static int
-typecast_array_tokenize(char *str, int strlength,
-                        int *pos, char** token, int *length)
-{
-    /* FORTRAN glory */
-    int i, j, q, b, l, res;
-
-    Dprintf("typecast_array_tokenize: '%s', %d/%d",
-            &str[*pos], *pos, strlength);
-
-    /* we always get called with pos pointing at the start of a token, so a
-       fast check is enough for ASCAN_EOF, ASCAN_BEGIN and ASCAN_END */
-    if (*pos == strlength) {
-        return ASCAN_EOF;
-    }
-    else if (str[*pos] == '{') {
-        *pos += 1;
-        return ASCAN_BEGIN;
-    }
-    else if (str[*pos] == '}') {
-        *pos += 1;
-        if (str[*pos] == ',')
-            *pos += 1;
-        return ASCAN_END;
-    }
-
-    /* now we start looking for the first unquoted ',' or '}', the only two
-       tokens that can limit an array element */
-    q = 0; /* if q is odd we're inside quotes */
-    b = 0; /* if b is 1 we just encountered a backslash */
-    res = ASCAN_TOKEN;
-    
-    for (i = *pos ; i < strlength ; i++) {
-        switch (str[i]) {
-        case '"':
-            if (b == 0)
-                q += 1;
-            else
-                b = 0;
-            break;
-
-        case '\\':
-            res = ASCAN_QUOTED;
-            if (b == 0)
-                b = 1;
-            else
-                /* we're backslashing a backslash */
-                b = 0;
-            break;
-
-        case '}':
-        case ',':
-            if (b == 0 && ((q&1) == 0))
-                goto tokenize;
-            break;
-
-        default:
-            /* reset the backslash counter */
-            b = 0;
-            break;
-        }
-    }
-
- tokenize:
-    /* remove initial quoting character and calculate raw length */
-    l = i - *pos;
-    if (str[*pos] == '"') {
-        *pos += 1;
-        l -= 2;
-    }
-
-    if (res == ASCAN_QUOTED) { 
-        char *buffer = PyMem_Malloc(l+1);
-        if (buffer == NULL) return ASCAN_ERROR;
-
-        *token = buffer;
-        
-        for (j = *pos; j < *pos+l; j++) {
-            if (str[j] != '\\'
-                || (j > *pos && str[j-1] == '\\'))
-                *(buffer++) = str[j];
-        }
-        
-        *buffer = '\0';
-        *length = buffer - *token;
-    }
-    else {
-        *token = &str[*pos];
-        *length = l;
-    }
-
-    *pos = i;
-    
-    /* skip the comma and set position to the start of next token */
-    if (str[i] == ',') *pos += 1;
-
-    return res;
-}
-
-static int
-typecast_array_scan(char *str, int strlength,
-                    PyObject *curs, PyObject *base, PyObject *array)
-{
-    int state, length = 0, pos = 0;
-    char *token;
-
-    PyObject *stack[MAX_DIMENSIONS];
-    int stack_index = 0;
-    
-    while (1) {
-        token = NULL;
-        state = typecast_array_tokenize(str, strlength, &pos, &token, &length);
-        Dprintf("typecast_array_scan: state = %d, length = %d, token = '%s'",
-                state, length, token);
-        if (state == ASCAN_TOKEN || state == ASCAN_QUOTED) {
-            PyObject *obj = typecast_cast(base, token, length, curs);
-
-            /* before anything else we free the memory */
-            if (state == ASCAN_QUOTED) PyMem_Free(token);
-            if (obj == NULL) return 0;
-
-            PyList_Append(array, obj);
-            Py_DECREF(obj);
-        }
-
-        else if (state == ASCAN_BEGIN) {
-            PyObject *sub = PyList_New(0);            
-            if (sub == NULL) return 0;
-
-            PyList_Append(array, sub);
-            Py_DECREF(sub);
-
-            if (stack_index == MAX_DIMENSIONS)
-                return 0;
-
-            stack[stack_index++] = array;
-            array = sub;
-        }
-        
-        else if (state == ASCAN_ERROR) {
-            return 0;
-        }
-
-        else if (state == ASCAN_END) {
-            if (--stack_index < 0)
-                return 0;
-            array = stack[stack_index];
-        }
-
-        else if (state ==  ASCAN_EOF)
-            break;
-    }
-
-    return 1;
-}
-
-
-/** GENERIC - a generic typecaster that can be used when no special actions
-    have to be taken on the single items **/
-   
-static PyObject *
-typecast_GENERIC_ARRAY_cast(char *str, int len, PyObject *curs)
-{
-    PyObject *obj = NULL;
-    PyObject *base = ((typecastObject*)((cursorObject*)curs)->caster)->bcast;
-   
-    Dprintf("typecast_GENERIC_ARRAY_cast: str = '%s', len = %d", str, len);
-
-    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
-    if (str[0] == '[')
-        typecast_array_cleanup(&str, &len);
-    if (str[0] != '{') {
-        PyErr_SetString(Error, "array does not start with '{'");
-        return NULL;
-    }
-
-    Dprintf("typecast_GENERIC_ARRAY_cast: str = '%s', len = %d", str, len);
-    
-    obj = PyList_New(0);
-
-    /* scan the array skipping the first level of {} */
-    if (typecast_array_scan(&str[1], len-2, curs, base, obj) == 0) {
-        Py_DECREF(obj);
-        obj = NULL;
-    }
-    
-    return obj;
-}
-
-/** almost all the basic array typecasters are derived from GENERIC **/
-
-#define typecast_LONGINTEGERARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_INTEGERARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_FLOATARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_DECIMALARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_STRINGARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_UNICODEARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_BOOLEANARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_DATETIMEARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_DATEARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_TIMEARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_INTERVALARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_BINARYARRAY_cast typecast_GENERIC_ARRAY_cast
-#define typecast_ROWIDARRAY_cast typecast_GENERIC_ARRAY_cast
diff --git a/psycopg2/psycopg/typecast_basic.c b/psycopg2/psycopg/typecast_basic.c
deleted file mode 100644 (file)
index e9ac7f4..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/* pgcasts_basic.c - basic typecasting functions to python types
- *
- * Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of the psycopg module.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/** INTEGER - cast normal integers (4 bytes) to python int **/
-
-static PyObject *
-typecast_INTEGER_cast(char *s, int len, PyObject *curs)
-{
-    char buffer[12];
-    
-    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
-    if (s[len] != '\0') {
-        strncpy(buffer, s, len); buffer[len] = '\0';
-        s = buffer;
-    }
-    return PyInt_FromString(s, NULL, 0);
-}
-
-/** LONGINTEGER - cast long integers (8 bytes) to python long **/
-
-static PyObject *
-typecast_LONGINTEGER_cast(char *s, int len, PyObject *curs)
-{
-    char buffer[24];
-    
-    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
-    if (s[len] != '\0') {
-        strncpy(buffer, s, len); buffer[len] = '\0';
-        s = buffer;
-    }
-    return PyLong_FromString(s, NULL, 0);
-}
-
-/** FLOAT - cast floating point numbers to python float **/
-
-static PyObject *
-typecast_FLOAT_cast(char *s, int len, PyObject *curs)
-{
-    PyObject *str = NULL, *flo = NULL;
-    char *pend;
-    
-    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
-    str = PyString_FromStringAndSize(s, len);
-    flo = PyFloat_FromString(str, &pend);
-    Py_DECREF(str);
-    return flo;
-}
-
-/** STRING - cast strings of any type to python string **/
-
-static PyObject *
-typecast_STRING_cast(char *s, int len, PyObject *curs)
-{
-    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
-    return PyString_FromStringAndSize(s, len);
-}
-
-/** UNICODE - cast strings of any type to a python unicode object **/
-
-static PyObject *
-typecast_UNICODE_cast(char *s, int len, PyObject *curs)
-{
-    PyObject *enc;
-
-    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
-
-    enc = PyDict_GetItemString(psycoEncodings,
-                               ((cursorObject*)curs)->conn->encoding);
-    if (enc) {
-        return PyUnicode_Decode(s, len, PyString_AsString(enc), NULL);
-    }
-    else {
-       PyErr_Format(InterfaceError,
-                    "can't decode into unicode string from %s",
-                    ((cursorObject*)curs)->conn->encoding);
-       return NULL; 
-    }
-}
-
-/** BOOLEAN - cast boolean value into right python object **/
-
-static PyObject *
-typecast_BOOLEAN_cast(char *s, int len, PyObject *curs)
-{
-    PyObject *res;
-
-    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
-
-    if (s[0] == 't')
-        res = Py_True;
-    else
-        res = Py_False;
-
-    Py_INCREF(res);
-    return res;
-}
-
-/** DECIMAL - cast any kind of number into a Python Decimal object **/
-
-#ifdef HAVE_DECIMAL
-static PyObject *
-typecast_DECIMAL_cast(char *s, int len, PyObject *curs)
-{
-    PyObject *res = NULL;
-    char *buffer;
-    
-    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
-
-    if ((buffer = PyMem_Malloc(len+1)) == NULL)
-        PyErr_NoMemory();
-    strncpy(buffer, s, len); buffer[len] = '\0';
-    res = PyObject_CallFunction(decimalType, "s", buffer);
-    PyMem_Free(buffer);
-
-    return res;
-}
-#else
-#define typecast_DECIMAL_cast  typecast_FLOAT_cast
-#endif
-     
-/* some needed aliases */
-#define typecast_NUMBER_cast   typecast_FLOAT_cast
-#define typecast_ROWID_cast    typecast_INTEGER_cast
diff --git a/psycopg2/psycopg/typecast_binary.c b/psycopg2/psycopg/typecast_binary.c
deleted file mode 100644 (file)
index d490bc7..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/* typecast_binary.c - binary typecasting functions to python types
- *
- * Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of the psycopg module.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "typecast_binary.h"
-
-#include <libpq-fe.h>
-#include <stdlib.h>
-
-
-/* Python object holding a memory chunk. The memory is deallocated when
-   the object is destroyed. This type is used to let users directly access
-   memory chunks holding unescaped binary data through the buffer interface.
- */
-
-static void
-chunk_dealloc(chunkObject *self)
-{
-    Dprintf("chunk_dealloc: deallocating memory at %p, size %d",
-            self->base, self->len);
-    free(self->base);
-    self->ob_type->tp_free((PyObject *) self);
-}
-
-static PyObject *
-chunk_repr(chunkObject *self)
-{
-    return PyString_FromFormat("<memory chunk at %p size %d>",
-                               self->base, self->len);
-}
-
-static int
-chunk_getreadbuffer(chunkObject *self, int segment, void **ptr)
-{
-    if (segment != 0)
-    {
-        PyErr_SetString(PyExc_SystemError,
-                        "acessing non-existant buffer segment");
-        return -1;
-    }
-    *ptr = self->base;
-    return self->len;
-}
-
-static int
-chunk_getsegcount(chunkObject *self, int *lenp)
-{
-    if (lenp != NULL)
-        *lenp = self->len;
-    return 1;
-}
-
-static PyBufferProcs chunk_as_buffer =
-{
-    (getreadbufferproc) chunk_getreadbuffer,
-    (getwritebufferproc) NULL,
-    (getsegcountproc) chunk_getsegcount,
-    (getcharbufferproc) NULL
-};
-
-#define chunk_doc "memory chunk"
-
-PyTypeObject chunkType = {
-    PyObject_HEAD_INIT(NULL)
-    0,                          /* ob_size */
-    "psycopg2._psycopg.chunk",   /* tp_name */
-    sizeof(chunkObject),        /* tp_basicsize */
-    0,                          /* tp_itemsize */
-    (destructor) chunk_dealloc, /* tp_dealloc*/
-    0,                          /* tp_print */
-    0,                          /* tp_getattr */
-    0,                          /* tp_setattr */
-    0,                          /* tp_compare */
-    (reprfunc) chunk_repr,      /* tp_repr */
-    0,                          /* tp_as_number */
-    0,                          /* tp_as_sequence */
-    0,                          /* tp_as_mapping */
-    0,                          /* tp_hash */
-    0,                          /* tp_call */
-    0,                          /* tp_str */
-    0,                          /* tp_getattro */
-    0,                          /* tp_setattro */
-    &chunk_as_buffer,           /* tp_as_buffer */
-    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
-    chunk_doc                   /* tp_doc */
-};
-
-/* the function typecast_BINARY_cast_unescape is used when libpq does not
-   provide PQunescapeBytea: it convert all the \xxx octal sequences to the
-   proper byte value */
-
-#ifdef PSYCOPG_OWN_QUOTING
-static unsigned char *
-typecast_BINARY_cast_unescape(unsigned char *str, size_t *to_length)
-{
-    char *dstptr, *dststr;
-    int len, i;
-
-    len = strlen(str);
-    dststr = (char*)calloc(len, sizeof(char));
-    dstptr = dststr;
-
-    if (dststr == NULL) return NULL;
-
-    Py_BEGIN_ALLOW_THREADS;
-   
-    for (i = 0; i < len; i++) {
-        if (str[i] == '\\') {
-            if ( ++i < len) {
-                if (str[i] == '\\') {
-                    *dstptr = '\\';
-                }
-                else {
-                    *dstptr = 0;
-                    *dstptr |= (str[i++] & 7) << 6;
-                    *dstptr |= (str[i++] & 7) << 3;
-                    *dstptr |= (str[i] & 7);
-                }
-            }
-        }
-        else {
-            *dstptr = str[i];
-        }
-        dstptr++;
-    }
-    
-    Py_END_ALLOW_THREADS;
-
-    *to_length = (size_t)(dstptr-dststr);
-    
-    return dststr;
-}
-
-#define PQunescapeBytea typecast_BINARY_cast_unescape
-#endif
-    
-static PyObject *
-typecast_BINARY_cast(char *s, int l, PyObject *curs)
-{
-    chunkObject *chunk;
-    PyObject *res;
-    char *str, *buffer = NULL;
-    size_t len;
-
-    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
-
-    /* PQunescapeBytea absolutely wants a 0-terminated string and we don't
-       want to copy the whole buffer, right? Wrong, but there isn't any other
-       way <g> */
-    if (s[l] != '\0') {
-        if ((buffer = PyMem_Malloc(l+1)) == NULL)
-            PyErr_NoMemory();
-        strncpy(buffer, s, l);
-        buffer[l] = '\0';
-        s = buffer;
-    }
-    str = (char*)PQunescapeBytea((unsigned char*)s, &len);
-    Dprintf("typecast_BINARY_cast: unescaped %d bytes", len);
-    if (buffer) PyMem_Free(buffer);
-
-    chunk = (chunkObject *) PyObject_New(chunkObject, &chunkType);
-    if (chunk == NULL) return NULL;
-    
-    chunk->base = str;
-    chunk->len = len;
-    if ((res = PyBuffer_FromObject((PyObject *)chunk, 0, len)) == NULL)
-        return NULL;
-
-    /* PyBuffer_FromObject() created a new reference. Release our reference so
-       that the memory can be freed once the buffer is garbage collected. */
-    Py_DECREF(chunk);
-
-    return res;
-}
diff --git a/psycopg2/psycopg/typecast_binary.h b/psycopg2/psycopg/typecast_binary.h
deleted file mode 100644 (file)
index cf985bb..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* typecast_binary.h - definitions for binary typecaster
- *
- * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of psycopg.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PSYCOPG_TYPECAST_BINARY_H
-#define PSYCOPG_TYPECAST_BINARY_H 1
-
-#include <Python.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** chunk type **/
-
-extern PyTypeObject chunkType;
-
-typedef struct {
-    PyObject_HEAD
-
-    void *base;     /* Pointer to the memory chunk. */
-    int len;        /* Size in bytes of the memory chunk. */
-
-} chunkObject;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(PSYCOPG_TYPECAST_BINARY_H) */
diff --git a/psycopg2/psycopg/typecast_builtins.c b/psycopg2/psycopg/typecast_builtins.c
deleted file mode 100644 (file)
index 0fc109d..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-static long int typecast_NUMBER_types[] = {20, 23, 21, 701, 700, 1700, 0};
-static long int typecast_LONGINTEGER_types[] = {20, 0};
-static long int typecast_INTEGER_types[] = {23, 21, 0};
-static long int typecast_FLOAT_types[] = {701, 700, 0};
-static long int typecast_DECIMAL_types[] = {1700, 0};
-static long int typecast_UNICODE_types[] = {19, 18, 25, 1042, 1043, 0};
-static long int typecast_STRING_types[] = {19, 18, 25, 1042, 1043, 0};
-static long int typecast_BOOLEAN_types[] = {16, 0};
-static long int typecast_DATETIME_types[] = {1114, 1184, 704, 1186, 0};
-static long int typecast_TIME_types[] = {1083, 1266, 0};
-static long int typecast_DATE_types[] = {1082, 0};
-static long int typecast_INTERVAL_types[] = {704, 1186, 0};
-static long int typecast_BINARY_types[] = {17, 0};
-static long int typecast_ROWID_types[] = {26, 0};
-static long int typecast_LONGINTEGERARRAY_types[] = {1016, 0};
-static long int typecast_INTEGERARRAY_types[] = {1005, 1006, 1007, 0};
-static long int typecast_FLOATARRAY_types[] = {1017, 1021, 1022, 0};
-static long int typecast_DECIMALARRAY_types[] = {1231, 0};
-static long int typecast_UNICODEARRAY_types[] = {1002, 1003, 1009, 1014, 1015, 0};
-static long int typecast_STRINGARRAY_types[] = {1002, 1003, 1009, 1014, 1015, 0};
-static long int typecast_BOOLEANARRAY_types[] = {1000, 0};
-static long int typecast_DATETIMEARRAY_types[] = {1115, 1185, 0};
-static long int typecast_TIMEARRAY_types[] = {1183, 1270, 0};
-static long int typecast_DATEARRAY_types[] = {1182, 0};
-static long int typecast_INTERVALARRAY_types[] = {1187, 0};
-static long int typecast_BINARYARRAY_types[] = {1001, 0};
-static long int typecast_ROWIDARRAY_types[] = {1028, 1013, 0};
-
-
-typecastObject_initlist typecast_builtins[] = {
-  {"NUMBER", typecast_NUMBER_types, typecast_NUMBER_cast, NULL},
-  {"LONGINTEGER", typecast_LONGINTEGER_types, typecast_LONGINTEGER_cast, NULL},
-  {"INTEGER", typecast_INTEGER_types, typecast_INTEGER_cast, NULL},
-  {"FLOAT", typecast_FLOAT_types, typecast_FLOAT_cast, NULL},
-  {"DECIMAL", typecast_DECIMAL_types, typecast_DECIMAL_cast, NULL},
-  {"UNICODE", typecast_UNICODE_types, typecast_UNICODE_cast, NULL},
-  {"STRING", typecast_STRING_types, typecast_STRING_cast, NULL},
-  {"BOOLEAN", typecast_BOOLEAN_types, typecast_BOOLEAN_cast, NULL},
-  {"DATETIME", typecast_DATETIME_types, typecast_DATETIME_cast, NULL},
-  {"TIME", typecast_TIME_types, typecast_TIME_cast, NULL},
-  {"DATE", typecast_DATE_types, typecast_DATE_cast, NULL},
-  {"INTERVAL", typecast_INTERVAL_types, typecast_INTERVAL_cast, NULL},
-  {"BINARY", typecast_BINARY_types, typecast_BINARY_cast, NULL},
-  {"ROWID", typecast_ROWID_types, typecast_ROWID_cast, NULL},
-  {"LONGINTEGERARRAY", typecast_LONGINTEGERARRAY_types, typecast_LONGINTEGERARRAY_cast, "LONGINTEGER"},
-  {"INTEGERARRAY", typecast_INTEGERARRAY_types, typecast_INTEGERARRAY_cast, "INTEGER"},
-  {"FLOATARRAY", typecast_FLOATARRAY_types, typecast_FLOATARRAY_cast, "FLOAT"},
-  {"DECIMALARRAY", typecast_DECIMALARRAY_types, typecast_DECIMALARRAY_cast, "DECIMAL"},
-  {"UNICODEARRAY", typecast_UNICODEARRAY_types, typecast_UNICODEARRAY_cast, "UNICODE"},
-  {"STRINGARRAY", typecast_STRINGARRAY_types, typecast_STRINGARRAY_cast, "STRING"},
-  {"BOOLEANARRAY", typecast_BOOLEANARRAY_types, typecast_BOOLEANARRAY_cast, "BOOLEAN"},
-  {"DATETIMEARRAY", typecast_DATETIMEARRAY_types, typecast_DATETIMEARRAY_cast, "DATETIME"},
-  {"TIMEARRAY", typecast_TIMEARRAY_types, typecast_TIMEARRAY_cast, "TIME"},
-  {"DATEARRAY", typecast_DATEARRAY_types, typecast_DATEARRAY_cast, "DATE"},
-  {"INTERVALARRAY", typecast_INTERVALARRAY_types, typecast_INTERVALARRAY_cast, "INTERVAL"},
-  {"BINARYARRAY", typecast_BINARYARRAY_types, typecast_BINARYARRAY_cast, "BINARY"},
-  {"ROWIDARRAY", typecast_ROWIDARRAY_types, typecast_ROWIDARRAY_cast, "ROWID"},
-    {NULL, NULL, NULL, NULL}
-};
-
diff --git a/psycopg2/psycopg/typecast_datetime.c b/psycopg2/psycopg/typecast_datetime.c
deleted file mode 100644 (file)
index 3a09f07..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/* typecast_datetime.c - date and time typecasting functions to python types
- *
- * Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of the psycopg module.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <math.h>
-#include "datetime.h"
-
-
-/* the pointer to the datetime module API is initialized by the module init
-   code, we just need to grab it */
-extern PyObject* pyDateTimeModuleP;
-extern PyObject *pyDateTypeP;
-extern PyObject *pyTimeTypeP;
-extern PyObject *pyDateTimeTypeP;
-extern PyObject *pyDeltaTypeP;
-
-/** DATE - cast a date into a date python object **/
-
-static PyObject *
-typecast_PYDATE_cast(char *str, int len, PyObject *curs)
-{
-    PyObject* obj = NULL;
-    int n, y=0, m=0, d=0;
-     
-    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
-    
-    if (!strcmp(str, "infinity") || !strcmp(str, "-infinity")) {
-        if (str[0] == '-') {
-            obj = PyObject_GetAttrString(pyDateTypeP, "min");
-        }
-        else {
-            obj = PyObject_GetAttrString(pyDateTypeP, "max");
-        }
-    }
-
-    else {
-        n = typecast_parse_date(str, NULL, &len, &y, &m, &d);
-        Dprintf("typecast_PYDATE_cast: "
-                "n = %d, len = %d, y = %d, m = %d, d = %d",
-                 n, len, y, m, d);
-        if (n != 3) {
-            PyErr_SetString(DataError, "unable to parse date");
-        }
-        else {
-            obj = PyObject_CallFunction(pyDateTypeP, "iii", y, m, d);
-        }
-    }
-    return obj;
-}
-
-/** DATETIME - cast a timestamp into a datetime python object **/
-
-static PyObject *
-typecast_PYDATETIME_cast(char *str, int len, PyObject *curs)
-{
-    PyObject* obj = NULL;
-    int n, y=0, m=0, d=0;
-    int hh=0, mm=0, ss=0, us=0, tz=0;
-    char *tp = NULL;
-    
-    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
-    
-    /* check for infinity */
-    if (!strcmp(str, "infinity") || !strcmp(str, "-infinity")) {
-        if (str[0] == '-') {
-            obj = PyObject_GetAttrString(pyDateTimeTypeP, "min");
-        }
-        else {
-            obj = PyObject_GetAttrString(pyDateTimeTypeP, "max");
-        }
-    }
-
-    else {
-        Dprintf("typecast_PYDATETIME_cast: s = %s", str);
-        n = typecast_parse_date(str, &tp, &len, &y, &m, &d);
-        Dprintf("typecast_PYDATE_cast: tp = %p "
-                "n = %d, len = %d, y = %d, m = %d, d = %d",
-                 tp, n, len, y, m, d);        
-        if (n != 3) {
-            PyErr_SetString(DataError, "unable to parse date");
-        }
-        
-        if (len > 0) {
-            n = typecast_parse_time(tp, NULL, &len, &hh, &mm, &ss, &us, &tz);
-            Dprintf("typecast_PYDATETIME_cast: n = %d, len = %d, "
-                "hh = %d, mm = %d, ss = %d, us = %d, tz = %d",
-                n, len, hh, mm, ss, us, tz);
-            if (n < 3 || n > 5) {
-                PyErr_SetString(DataError, "unable to parse time");
-            }
-        }
-        
-        if (ss > 59) {
-            mm += 1;
-            ss -= 60;
-        }
-        
-        if (n == 5 && ((cursorObject*)curs)->tzinfo_factory != Py_None) {
-            /* we have a time zone, calculate minutes and create
-               appropriate tzinfo object calling the factory */
-            PyObject *tzinfo;
-            Dprintf("typecast_PYDATETIME_cast: UTC offset = %dm", tz);
-            tzinfo = PyObject_CallFunction(
-                ((cursorObject*)curs)->tzinfo_factory, "i", tz);
-            obj = PyObject_CallFunction(pyDateTimeTypeP, "iiiiiiiO",
-                 y, m, d, hh, mm, ss, us, tzinfo);
-            Dprintf("typecast_PYDATETIME_cast: tzinfo: %p, refcnt = %d",
-                    tzinfo, tzinfo->ob_refcnt);
-            Py_XDECREF(tzinfo);
-        }
-        else {
-            obj = PyObject_CallFunction(pyDateTimeTypeP, "iiiiiii",
-                 y, m, d, hh, mm, ss, us);
-        }
-    }
-    return obj;
-}
-
-/** TIME - parse time into a time object **/
-
-static PyObject *
-typecast_PYTIME_cast(char *str, int len, PyObject *curs)
-{
-    PyObject* obj = NULL;
-    int n, hh=0, mm=0, ss=0, us=0, tz=0;
-    
-    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
-        
-    n = typecast_parse_time(str, NULL, &len, &hh, &mm, &ss, &us, &tz);
-    Dprintf("typecast_PYTIME_cast: n = %d, len = %d, "
-            "hh = %d, mm = %d, ss = %d, us = %d, tz = %d",
-            n, len, hh, mm, ss, us, tz);
-                
-    if (n < 3 || n > 5) {
-        PyErr_SetString(DataError, "unable to parse time");
-    }
-    else {
-        if (ss > 59) {
-            mm += 1;
-            ss -= 60;
-        }
-        obj = PyObject_CallFunction(pyTimeTypeP, "iiii", hh, mm, ss, us);
-    }
-    return obj;          
-}
-
-/** INTERVAL - parse an interval into a timedelta object **/
-
-static PyObject *
-typecast_PYINTERVAL_cast(char *str, int len, PyObject *curs)
-{
-    long years = 0, months = 0, days = 0;
-    double hours = 0.0, minutes = 0.0, seconds = 0.0, hundredths = 0.0;
-    double v = 0.0, sign = 1.0, denominator = 1.0;
-    int part = 0, sec;
-    double micro;
-
-    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
-
-    Dprintf("typecast_PYINTERVAL_cast: s = %s", str);
-    
-    while (len-- > 0 && *str) {
-        switch (*str) {
-
-        case '-':
-            sign = -1.0;
-            break;
-
-        case '0': case '1': case '2': case '3': case '4':
-        case '5': case '6': case '7': case '8': case '9':
-            v = v*10 + (double)*str - (double)'0';
-            if (part == 6){
-                denominator *= 10;
-            }
-            break;
-
-        case 'y':
-            if (part == 0) {
-                years = (long)(v*sign);
-                str = skip_until_space2(str, &len);
-                v = 0.0; sign = 1.0; part = 1;
-            }
-            break;
-
-        case 'm':
-            if (part <= 1) {
-                months = (long)(v*sign);
-                str = skip_until_space2(str, &len);
-                v = 0.0; sign = 1.0; part = 2;
-            }
-            break;
-
-        case 'd':
-            if (part <= 2) {
-                days = (long)(v*sign);
-                str = skip_until_space2(str, &len);
-                v = 0.0; sign = 1.0; part = 3;
-            }
-            break;
-
-        case ':':
-            if (part <= 3) {
-                hours = v;
-                v = 0.0; part = 4;
-            }
-            else if (part == 4) {
-                minutes = v;
-                v = 0.0; part = 5;
-            }
-            break;
-
-        case '.':
-            if (part == 5) {
-                seconds = v;
-                v = 0.0; part = 6;
-            }
-            break;   
-
-        default:
-            break;
-        }
-        
-        str++;
-    }
-
-    /* manage last value, be it minutes or seconds or hundredths of a second */
-    if (part == 4) {
-        minutes = v;
-    }
-    else if (part == 5) {
-        seconds = v;
-    }
-    else if (part == 6) {
-        hundredths = v;
-        hundredths = hundredths/denominator;
-    }
-    
-    /* calculates seconds */
-    if (sign < 0.0) {
-        seconds = - (hundredths + seconds + minutes*60 + hours*3600);
-    }
-    else {
-        seconds += hundredths + minutes*60 + hours*3600;
-    }
-
-    /* calculates days */ 
-    days += years*365 + months*30;
-
-    micro = (seconds - floor(seconds)) * 1000000.0;
-    sec = (int)floor(seconds);
-    return PyObject_CallFunction(pyDeltaTypeP, "iii",
-                                 days, sec, (int)round(micro));
-}
-
-/* psycopg defaults to using python datetime types */
-
-#ifdef PSYCOPG_DEFAULT_PYDATETIME 
-#define typecast_DATE_cast typecast_PYDATE_cast
-#define typecast_TIME_cast typecast_PYTIME_cast
-#define typecast_INTERVAL_cast typecast_PYINTERVAL_cast
-#define typecast_DATETIME_cast typecast_PYDATETIME_cast
-#endif
diff --git a/psycopg2/psycopg/typecast_mxdatetime.c b/psycopg2/psycopg/typecast_mxdatetime.c
deleted file mode 100644 (file)
index 52b1ce7..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-/* typecast_mxdatetime.c - date and time typecasting functions to mx types
- *
- * Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
- *
- * This file is part of the psycopg module.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2,
- * or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "mxDateTime.h"
-
-/* the pointer to the mxDateTime API is initialized by the module init code,
-   we just need to grab it */
-extern mxDateTimeModule_APIObject *mxDateTimeP;
-
-/** DATE - cast a date into mx.DateTime python object **/
-
-static PyObject *
-typecast_MXDATE_cast(char *str, int len, PyObject *curs)
-{
-    int n, y=0, m=0, d=0;
-    int hh=0, mm=0, ss=0, us=0, tz=0;
-    char *tp = NULL;
-    
-    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
-    Dprintf("typecast_MXDATE_cast: s = %s", str);
-    
-    /* check for infinity */
-    if (!strcmp(str, "infinity") || !strcmp(str, "-infinity")) {
-        if (str[0] == '-') {
-            return mxDateTimeP->DateTime_FromDateAndTime(-999998,1,1, 0,0,0);
-        }
-        else {
-            return mxDateTimeP->DateTime_FromDateAndTime(999999,12,31, 0,0,0);
-        }
-    }
-    
-    n = typecast_parse_date(str, &tp, &len, &y, &m, &d);
-    Dprintf("typecast_MXDATE_cast: tp = %p n = %d, len = %d, "
-             "y = %d, m = %d, d = %d", tp, n, len, y, m, d);        
-    if (n != 3) {
-        PyErr_SetString(DataError, "unable to parse date");
-    }
-    
-    if (len > 0) {
-        n = typecast_parse_time(tp, NULL, &len, &hh, &mm, &ss, &us, &tz);
-        Dprintf("typecast_MXDATE_cast: n = %d, len = %d, "
-            "hh = %d, mm = %d, ss = %d, us = %d, tz = %d",
-            n, len, hh, mm, ss, us, tz);
-        if (n < 3 || n > 5) {
-            PyErr_SetString(DataError, "unable to parse time");
-        }
-    }    
-    
-    Dprintf("typecast_MXDATE_cast: fractionary seconds: %lf",
-        (double)ss + (double)us/(double)1000000.0);
-    return mxDateTimeP->DateTime_FromDateAndTime(y, m, d, hh, mm,
-        (double)ss + (double)us/(double)1000000.0);
-}
-
-/** TIME - parse time into an mx.DateTime object **/
-
-static PyObject *
-typecast_MXTIME_cast(char *str, int len, PyObject *curs)
-{
-    int n, hh=0, mm=0, ss=0, us=0, tz=0;
-
-    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
-    
-    Dprintf("typecast_MXTIME_cast: s = %s", str);
-    
-    n = typecast_parse_time(str, NULL, &len, &hh, &mm, &ss, &us, &tz);
-    Dprintf("typecast_MXTIME_cast: time parsed, %d components", n);
-    Dprintf("typecast_MXTIME_cast: hh = %d, mm = %d, ss = %d, us = %d",
-             hh, mm, ss, us);
-    
-    if (n < 3 || n > 5) {
-        PyErr_SetString(DataError, "unable to parse time");
-        return NULL;
-    }
-
-    Dprintf("typecast_MXTIME_cast: fractionary seconds: %lf",
-        (double)ss + (double)us/(double)1000000.0);
-    return mxDateTimeP->DateTimeDelta_FromTime(hh, mm,
-        (double)ss + (double)us/(double)1000000.0);
-}
-
-/** INTERVAL - parse an interval into an mx.DateTimeDelta **/
-
-static PyObject *
-typecast_MXINTERVAL_cast(char *str, int len, PyObject *curs)
-{
-    long years = 0, months = 0, days = 0, denominator = 1;
-    double hours = 0.0, minutes = 0.0, seconds = 0.0, hundredths = 0.0;
-    double v = 0.0, sign = 1.0;
-    int part = 0;
-
-    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
-    
-    Dprintf("typecast_MXINTERVAL_cast: s = %s", str);
-    
-    while (*str) {
-        switch (*str) {
-
-        case '-':
-            sign = -1.0;
-            break;
-
-        case '0': case '1': case '2': case '3': case '4':
-        case '5': case '6': case '7': case '8': case '9':
-            v = v*10 + (double)*str - (double)'0';
-            Dprintf("typecast_MXINTERVAL_cast: v = %f", v);
-            if (part == 6){
-                denominator *= 10;
-                Dprintf("typecast_MXINTERVAL_cast: denominator = %ld",
-                        denominator);
-            }
-            break;
-
-        case 'y':
-            if (part == 0) {
-                years = (long)(v*sign);
-                str = skip_until_space(str);
-                Dprintf("typecast_MXINTERVAL_cast: years = %ld, rest = %s",
-                        years, str);
-                v = 0.0; sign = 1.0; part = 1;
-            }
-            break;
-
-        case 'm':
-            if (part <= 1) {
-                months = (long)(v*sign);
-                str = skip_until_space(str);
-                Dprintf("typecast_MXINTERVAL_cast: months = %ld, rest = %s",
-                        months, str);
-                v = 0.0; sign = 1.0; part = 2;
-            }
-            break;
-
-        case 'd':
-            if (part <= 2) {
-                days = (long)(v*sign);
-                str = skip_until_space(str);
-                Dprintf("typecast_MXINTERVAL_cast: days = %ld, rest = %s",
-                        days, str);
-                v = 0.0; sign = 1.0; part = 3;
-            }
-            break;
-
-        case ':':
-            if (part <= 3) {
-                hours = v;
-                Dprintf("typecast_MXINTERVAL_cast: hours = %f", hours);
-                v = 0.0; part = 4;
-            }
-            else if (part == 4) {
-                minutes = v;
-                Dprintf("typecast_MXINTERVAL_cast: minutes = %f", minutes);
-                v = 0.0; part = 5;
-            }
-            break;
-
-        case '.':
-            if (part == 5) {
-                seconds = v;
-                Dprintf("typecast_MXINTERVAL_cast: seconds = %f", seconds);
-                v = 0.0; part = 6;
-            }
-            break;   
-
-        default:
-            break;
-        }
-        
-        str++;
-    }
-
-    /* manage last value, be it minutes or seconds or hundredths of a second */
-    if (part == 4) {
-        minutes = v;
-        Dprintf("typecast_MXINTERVAL_cast: minutes = %f", minutes);
-    }
-    else if (part == 5) {
-        seconds = v;
-        Dprintf("typecast_MXINTERVAL_cast: seconds = %f", seconds);
-    }
-    else if (part == 6) {
-        hundredths = v;
-        Dprintf("typecast_MXINTERVAL_cast: hundredths = %f", hundredths);
-        hundredths = hundredths/denominator;
-        Dprintf("typecast_MXINTERVAL_cast: fractions = %.20f", hundredths);
-    }
-    
-    /* calculates seconds */
-    if (sign < 0.0) {
-        seconds = - (hundredths + seconds + minutes*60 + hours*3600);
-    }
-    else {
-        seconds += hundredths + minutes*60 + hours*3600;
-    }
-
-    /* calculates days */
-    days += years*365 + months*30;
-    
-    Dprintf("typecast_MXINTERVAL_cast: days = %ld, seconds = %f",
-            days, seconds);
-    return mxDateTimeP->DateTimeDelta_FromDaysAndSeconds(days, seconds);
-}
-
-/* psycopg defaults to using mx types */
-
-#ifdef PSYCOPG_DEFAULT_MXDATETIME 
-#define typecast_DATE_cast typecast_MXDATE_cast
-#define typecast_TIME_cast typecast_MXTIME_cast
-#define typecast_INTERVAL_cast typecast_MXINTERVAL_cast
-#define typecast_DATETIME_cast typecast_MXDATE_cast
-#endif
-
diff --git a/psycopg2/scripts/buildtypes.py b/psycopg2/scripts/buildtypes.py
deleted file mode 100644 (file)
index 197272f..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-# -*- python -*-
-#
-# Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
-#
-# This file is part of the psycopg module.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2,
-# or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# this a little script that analyze a file with (TYPE, NUMBER) tuples
-# and write out C code ready for inclusion in psycopg. the generated
-# code defines the DBAPITypeObject fundamental types and warns for
-# undefined types.
-
-import sys, os, string, copy
-from string import split, join, strip
-
-
-# here is the list of the foundamental types we want to import from
-# postgresql header files
-
-basic_types = (['NUMBER', ['INT8', 'INT4', 'INT2', 'FLOAT8', 'FLOAT4',
-                           'NUMERIC']],
-               ['LONGINTEGER', ['INT8']],
-               ['INTEGER', ['INT4', 'INT2']],
-               ['FLOAT', ['FLOAT8', 'FLOAT4']],
-               ['DECIMAL', ['NUMERIC']],
-               ['UNICODE', ['NAME', 'CHAR', 'TEXT', 'BPCHAR',
-                            'VARCHAR']],
-               ['STRING', ['NAME', 'CHAR', 'TEXT', 'BPCHAR',
-                           'VARCHAR']],
-               ['BOOLEAN', ['BOOL']],
-               ['DATETIME', ['TIMESTAMP', 'TIMESTAMPTZ', 
-                             'TINTERVAL', 'INTERVAL']],
-               ['TIME', ['TIME', 'TIMETZ']],
-               ['DATE', ['DATE']],
-               ['INTERVAL', ['TINTERVAL', 'INTERVAL']],
-               ['BINARY', ['BYTEA']],
-               ['ROWID', ['OID']])
-
-# unfortunately we don't have a nice way to extract array information
-# from postgresql headers; we'll have to do it hard-coding :/
-array_types = (['LONGINTEGER', [1016]],
-               ['INTEGER', [1005, 1006, 1007]],
-               ['FLOAT', [1017, 1021, 1022]],
-               ['DECIMAL', [1231]],
-               ['UNICODE', [1002, 1003, 1009, 1014, 1015]],
-               ['STRING', [1002, 1003, 1009, 1014, 1015]],
-               ['BOOLEAN', [1000]],
-               ['DATETIME', [1115, 1185]],
-               ['TIME', [1183, 1270]],
-               ['DATE', [1182]],
-               ['INTERVAL', [1187]],
-               ['BINARY', [1001]],
-               ['ROWID', [1028, 1013]])
-
-# this is the header used to compile the data in the C module
-HEADER = """
-typecastObject_initlist typecast_builtins[] = {
-"""
-
-# then comes the footer
-FOOTER = """    {NULL, NULL, NULL, NULL}\n};\n"""
-
-
-# usefull error reporting function
-def error(msg):
-    """Report an error on stderr."""
-    sys.stderr.write(msg+'\n')
-    
-
-# read couples from stdin and build list
-read_types = []
-for l in sys.stdin.readlines():
-    oid, val = split(l)
-    read_types.append((strip(oid)[:-3], strip(val)))
-
-# look for the wanted types in the read touples
-found_types = {}
-
-for t in basic_types:
-    k = t[0]
-    found_types[k] = []
-    for v in t[1]:
-        found = filter(lambda x, y=v: x[0] == y, read_types)
-        if len(found) == 0:
-            error(v+': value not found')
-        elif len(found) > 1:
-            error(v+': too many values')
-        else:
-            found_types[k].append(int(found[0][1]))
-
-# now outputs to stdout the right C-style definitions
-stypes = "" ; sstruct = ""
-for t in basic_types:
-    k = t[0]
-    s = str(found_types[k])
-    s = '{' + s[1:-1] + ', 0}'
-    stypes = stypes + ('static long int typecast_%s_types[] = %s;\n' % (k, s))
-    sstruct += ('  {"%s", typecast_%s_types, typecast_%s_cast, NULL},\n'
-                % (k, k, k))
-for t in array_types:
-    kt = t[0]
-    ka = t[0]+'ARRAY'
-    s = str(t[1])
-    s = '{' + s[1:-1] + ', 0}'
-    stypes = stypes + ('static long int typecast_%s_types[] = %s;\n' % (ka, s))
-    sstruct += ('  {"%s", typecast_%s_types, typecast_%s_cast, "%s"},\n'
-                % (ka, ka, ka, kt))
-sstruct = HEADER + sstruct + FOOTER
-
-print stypes
-print sstruct
diff --git a/psycopg2/scripts/ext2html.py b/psycopg2/scripts/ext2html.py
deleted file mode 100755 (executable)
index 488e97f..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/usr/bin/env python\r
-\r
-# Author: Daniele Varrazzo\r
-# Contact: daniele dot varrazzo at gmail dot com\r
-# Revision: $Revision$\r
-# Date: $Date$\r
-# Copyright: This module has been placed in the public domain.\r
-\r
-"""\r
-A minimal front end to the Docutils Publisher, producing HTML.\r
-\r
-Output can refer to Epydoc-generated APIs through the iterpreted text role\r
-"api".\r
-"""\r
-\r
-import types\r
-import sys\r
-\r
-# The url fragment where the api "index.html" resides w.r.t. the generated docs\r
-api_root = "api/"\r
-\r
-try:\r
-    import locale\r
-    locale.setlocale(locale.LC_ALL, '')\r
-except:\r
-    pass\r
-\r
-from docutils.core import publish_cmdline, default_description\r
-from docutils.parsers.rst.roles import register_canonical_role\r
-from docutils import nodes, utils\r
-\r
-# api references are searched for in these modules\r
-api_modules = [\r
-    'psycopg2',\r
-    'psycopg2._psycopg',\r
-    'psycopg2.extensions',\r
-]\r
-\r
-# name starting with a dot are looking as those objects attributes.
-searched_objects = [
-    # module_name, object_name
-    ('psycopg2.extensions', 'connection'),
-    ('psycopg2.extensions', 'cursor'),
-]
-
-# import all the referenced modules\r
-for modname in api_modules:\r
-    __import__(modname)\r
-    \r
-class EpydocTarget:
-    """Representation of an element language."""\r
-    def __init__(self, name, element):\r
-        self.name = name\r
-        \r
-        # The python object described\r
-        self.element = element\r
-    \r
-        # The base name of the page\r
-        self.page = None\r
-        \r
-        # The url fragment\r
-        self.fragment = None\r
-        \r
-    def get_url(self):\r
-        # is it a private element?\r
-        components = self.page.split('.')\r
-        if self.fragment: components.append(self.fragment)\r
-            \r
-        for component in components:\r
-            if component.startswith('_'):\r
-                private = True\r
-                break\r
-        else:\r
-            private = False\r
-            \r
-        ref = api_root + (private and "private/" or "public/") \\r
-            + self.page + "-" + self.get_type() + ".html"\r
-        if self.fragment:\r
-            ref = ref + "#" + self.fragment\r
-        \r
-        return ref\r
-\r
-    def get_type(self):\r
-        # detect the element type\r
-        if isinstance(self.element, types.TypeType):\r
-            return 'class'\r
-        elif isinstance(self.element, types.ModuleType):\r
-            return 'module'\r
-        else:\r
-            raise ValueError("Can't choose a type for '%s'." % self.name)\r
-            \r
-def filter_par(name):\r
-    """Filter parenthesis away from a name."""\r
-    if name.endswith(")"):\r
-        return name.split("(")[0]\r
-    else:\r
-        return name\r
-        \r
-def get_element_target(name):\r
-    """Return the life, the death, the miracles about a package element."""\r
-    \r
-    name = filter_par(name)\r
-    
-    if name.startswith('.'):
-        for modname, objname in searched_objects:
-            if hasattr(getattr(sys.modules[modname], objname), name[1:]):
-                name = objname + name
-                break
-        \r
-    # is the element a module?\r
-    if name in api_modules:\r
-        out = EpydocTarget(name, sys.modules[name])\r
-        out.page = name\r
-        return out\r
-        \r
-    # look for the element in some module\r
-    for modname in api_modules:\r
-        element = getattr(sys.modules[modname], name, None)\r
-        if element is not None:\r
-            \r
-            # Check if it is a function defined in a module\r
-            if isinstance(element, \r
-                    (int, types.FunctionType, types.BuiltinFunctionType)):\r
-                out = EpydocTarget(name, sys.modules[modname])\r
-                out.page = modname\r
-                out.fragment = name\r
-            else:\r
-                out = EpydocTarget(name, element)\r
-                out.page = modname + '.' + name\r
-                \r
-            return out\r
-    \r
-    # maybe a qualified name?\r
-    if '.' in name:\r
-        out = get_element_target('.'.join(name.split('.')[:-1]))\r
-        if out is not None:\r
-            out.fragment = filter_par(name.split('.')[-1])\r
-            return out\r
-                \r
-    raise ValueError("Can't find '%s' in any provided module." % name)\r
-    \r
-def api_role(role, rawtext, text, lineno, inliner,
-                       options={}, content=[]):\r
-    try:\r
-        target = get_element_target(text)\r
-    except Exception, exc:\r
-        msg = inliner.reporter.error(str(exc), line=lineno)
-        prb = inliner.problematic(rawtext, rawtext, msg)
-        return [prb], [msg]
-        \r
-    ref = target.get_url()\r
-    node2 = nodes.literal(rawtext, utils.unescape(text))
-    node = nodes.reference(rawtext, '', node2, refuri=ref,\r
-                           **options)\r
-    return [node], []
-\r
-
-register_canonical_role('api', api_role)
-\r
-# Register the 'api' role as canonical role
-from docutils.parsers.rst import roles 
-roles.DEFAULT_INTERPRETED_ROLE = 'api'
-\r
-
-description = ('Generates (X)HTML documents from standalone reStructuredText '\r
-               'sources with links to Epydoc API.  ' + default_description)\r
-\r
-
-publish_cmdline(writer_name='html', description=description)\r
diff --git a/psycopg2/scripts/makedocs.py b/psycopg2/scripts/makedocs.py
deleted file mode 100755 (executable)
index dcaa940..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python\r
-"""Build documentation and api."""\r
-\r
-import os\r
-\r
-EPYDOC = "python c:/programmi/python23/scripts/epydoc.py"\r
-PSYCOPG = "c:/programmi/python23/lib/site-packages/psycopg2"\r
-\r
-os.system("python ext2html.py ../doc/extensions.rst > ../doc/extensions.html")\r
-os.system("%s "\r
-          "-o ../doc/api "\r
-          "--css ../doc/api-screen.css "\r
-          "--docformat restructuredtext " \r
-          "%s"\r
-    % (EPYDOC,PSYCOPG,))\r
diff --git a/psycopg2/scripts/maketypes.sh b/psycopg2/scripts/maketypes.sh
deleted file mode 100755 (executable)
index ab133c1..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-
-SCRIPTSDIR="`dirname $0`"
-SRCDIR="`dirname $SCRIPTSDIR`/psycopg"
-
-if [ -z "$1" ] ; then
-    echo Usage: $0 '<postgresql include directory>'
-    exit 1
-fi
-
-echo -n checking for pg_type.h ...
-if [ -f "$1/catalog/pg_type.h" ] ; then
-    PGTYPE="$1/catalog/pg_type.h"
-else
-    if [ -f "$1/server/catalog/pg_type.h" ] ; then
-        PGTYPE="$1/server/catalog/pg_type.h"
-    else
-       echo
-        echo "error: can't find pg_type.h under $1"
-       exit 2
-    fi
-fi
-echo " found"
-
-PGVERSION="`sed -n -e 's/.*PG_VERSION \"\([0-9]\.[0-9]\).*\"/\1/p' $1/pg_config.h`"
-PGMAJOR="`echo $PGVERSION | cut -d. -f1`"
-PGMINOR="`echo $PGVERSION | cut -d. -f2`"
-
-echo checking for postgresql major: $PGMAJOR
-echo checking for postgresql minor: $PGMINOR
-    
-echo -n generating pgtypes.h ...
-awk '/#define .+OID/ {print "#define " $2 " " $3}' "$PGTYPE" \
-    > $SRCDIR/pgtypes.h
-echo " done"
-echo -n generating typecast_builtins.c ...
-awk '/#define .+OID/ {print $2 " " $3}' "$PGTYPE" | \
-    python $SCRIPTSDIR/buildtypes.py >$SRCDIR/typecast_builtins.c
-echo " done"
-
-
diff --git a/psycopg2/setup.cfg b/psycopg2/setup.cfg
deleted file mode 100644 (file)
index 9c32951..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-[build_ext]
-define=PSYCOPG_EXTENSIONS,PSYCOPG_DISPLAY_SIZE,PSYCOPG_NEW_BOOLEAN,HAVE_PQFREEMEM,HAVE_PQPROTOCOL3
-# PSYCOPG_EXTENSIONS enables extensions to PEP-249 (you really want this)
-# PSYCOPG_DISPLAY_SIZE enable display size calculation (a little slower)
-# HAVE_PQFREEMEM should be defined on PostgreSQL >= 7.3
-# HAVE_PQPROTOCOL3 should be defined on PostgreSQL >= 7.4
-# PSYCOPG_DEBUG can be added to enable verbose debug information
-# PSYCOPG_OWN_QUOTING can be added, but it is deprecated (will go away in 2.1)
-# PSYCOPG_NEW_BOOLEAN to format booleans as true/false vs 't'/'f'
-
-# Set to 1 to use Python datatime objects for default date/time representation
-use_pydatetime=1
-
-# Set to 1 if you want to enable "Decimal" type on python 2.3. 
-# If the "decimal" module is found in the PYTHONPATH it will be used, else
-# fall back on the float type (this is disabled by default to be compatible
-# with old versions of psycopg 1 and pre-beta versions of psycopg 2.)
-use_decimal=0
-
-# If the build system does not find the mx.DateTime headers, try 
-# uncommenting the following line and setting its value to the right path.
-#mx_include_dir=
-
-# "pg_config" is the preferred method to locate PostgreSQL headers and
-# libraries needed to build psycopg2. If pg_config is not in the path or
-# is installed under a different name uncomment the following option and
-# set it to the pg_config full path.
-#pg_config=
-
-# If "pg_config" is not available, "include_dirs" can be used to locate 
-# postgresql headers and libraries. Some extra checks on sys.platform will
-# still be done in setup.py.
-# The next line is the default as used on psycopg author Debian laptop:
-#include_dirs=/usr/include/postgresql:/usr/include/postgresql/server
-
-# Uncomment next line on Mandrake 10.x (and comment previous ones):
-#include_dirs=/usr/include/pgsql/8.0:/usr/include/pgsql/8.0/server 
-
-# Uncomment next line on SUSE 9.3 (and comment previous ones):
-#include_dirs=/usr/include/pgsql:/usr/include/pgsql/server
-
-# If postgresql is installed somewhere weird (i.e., not in your runtime library
-# path like /usr/lib), just add the right path in "library_dirs" and any extra
-# libraries required to link in "libraries".
-#library_dirs=
-#libraries=
diff --git a/psycopg2/setup.py b/psycopg2/setup.py
deleted file mode 100644 (file)
index 45daed7..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-# setup.py - distutils packaging
-#
-# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-"""Python-PostgreSQL Database Adapter
-psycopg is a PostgreSQL database adapter for the Python programming
-language. This is version 2, a complete rewrite of the original code to
-provide new-style classes for connection and cursor objects and other sweet
-candies. Like the original, psycopg 2 was written with the aim of being
-very small and fast, and stable as a rock.
-psycopg is different from the other database adapter because it was
-designed for heavily multi-threaded applications that create and destroy
-lots of cursors and make a conspicuous number of concurrent INSERTs or
-UPDATEs. psycopg 2 also provide full asycronous operations for the really
-brave programmer.
-"""
-
-classifiers = """\
-Development Status :: 4 - Beta
-Intended Audience :: Developers
-License :: OSI Approved :: GNU General Public License (GPL)
-License :: OSI Approved :: Zope Public License
-Programming Language :: Python
-Programming Language :: C
-Programming Language :: SQL
-Topic :: Database
-Topic :: Database :: Front-Ends
-Topic :: Software Development
-Topic :: Software Development :: Libraries :: Python Modules
-Operating System :: Microsoft :: Windows
-Operating System :: Unix
-"""
-
-import os
-import sys
-import popen2
-from distutils.core import setup, Extension
-from distutils.errors import DistutilsFileError
-from distutils.command.build_ext import build_ext
-from distutils.sysconfig import get_python_inc
-from distutils.ccompiler import get_default_compiler
-
-PSYCOPG_VERSION = '2.0.5.1'
-version_flags   = []
-
-# to work around older distutil limitations
-if sys.version < '2.2.3':
-    from distutils.dist import DistributionMetadata
-    DistributionMetadata.classifiers = None
-    DistributionMetadata.download_url = None
-
-def get_pg_config(kind, pg_config="pg_config"):
-    p = popen2.popen3(pg_config + " --" + kind)
-    r = p[0].readline().strip()
-    if not r:
-        raise Warning(p[2].readline())
-    return r
-    
-class psycopg_build_ext(build_ext):
-    """Conditionally complement the setup.cfg options file.
-    
-    This class configures the include_dirs, libray_dirs, libraries
-    options as required by the system. Most of the configuration happens
-    in finalize_options() method.
-    
-    If you want to set up the build step for a peculiar platform, add a
-    method finalize_PLAT(), where PLAT matches your sys.platform.
-    """
-    user_options = build_ext.user_options[:]
-    user_options.extend([
-        ('use-pydatetime', None,
-         "Use Python datatime objects for date and time representation."),    
-        ('pg-config=', None,
-          "The name of the pg_config binary and/or full path to find it"),
-        ('use-decimal', None,
-         "Use Decimal type even on Python 2.3 if the module is provided."),
-    ])
-    
-    boolean_options = build_ext.boolean_options[:]
-    boolean_options.extend(('use-pydatetime', 'use-decimal'))
-    
-    DEFAULT_PG_CONFIG = "pg_config"
-    
-    def initialize_options(self):
-        build_ext.initialize_options(self)
-        self.use_pg_dll = 1
-        self.pgdir = None
-        self.pg_config = self.DEFAULT_PG_CONFIG
-        self.mx_include_dir = None
-    
-    def get_compiler(self):
-        """Return the c compiler to compile extensions.
-
-        If a compiler was not explicitely set (on the command line, for
-        example), fall back on the default compiler.
-        """
-        return self.compiler or get_default_compiler()
-
-    def get_pg_config(self, kind):
-        return get_pg_config(kind, self.pg_config)
-
-    def build_extensions(self):
-        # Linking against this library causes psycopg2 to crash 
-        # on Python >= 2.4. Maybe related to strdup calls, cfr.
-        # http://mail.python.org/pipermail/distutils-sig/2005-April/004433.html
-        if self.get_compiler().compiler_type == "mingw32" \
-            and 'msvcr71' in self.compiler.dll_libraries:
-            self.compiler.dll_libraries.remove('msvcr71')
-
-        build_ext.build_extensions(self)
-        
-    def finalize_win32(self):
-        """Finalize build system configuration on win32 platform."""
-        self.libraries.append("ws2_32")
-        self.libraries.append("advapi32")
-        if self.get_compiler() == "msvc":
-            # MSVC requires an explicit "libpq"
-            self.libraries.remove("pq")
-            self.libraries.append("libpq")
-            self.libraries.append("shfolder")
-            for path in self.library_dirs: 
-                if os.path.isfile(os.path.join(path, "ms", "libpq.lib")): 
-                    self.library_dirs.append(os.path.join(path, "ms")) 
-                    break
-    def finalize_darwin(self):
-        """Finalize build system configuration on darwin platform."""
-        self.libraries.append('ssl')
-        self.libraries.append('crypto')
-        
-    def finalize_options(self):
-        """Complete the build system configuation."""
-        build_ext.finalize_options(self)
-
-        self.include_dirs.append(".")        
-        self.libraries.append("pq")
-        
-        try:
-            self.library_dirs.append(self.get_pg_config("libdir"))
-            self.include_dirs.append(self.get_pg_config("includedir"))
-            self.include_dirs.append(self.get_pg_config("includedir-server"))
-            try:
-                # Here we take a conservative approach: we suppose that
-                # *at least* PostgreSQL 7.4 is available (this is the only
-                # 7.x series supported by psycopg 2)
-                pgversion = self.get_pg_config("version").split()[1]
-                pgmajor, pgminor, pgpatch = pgversion.split('.')
-            except:
-                pgmajor, pgminor, pgpatch = 7, 4, 0
-            define_macros.append(("PG_MAJOR_VERSION", pgmajor))
-            define_macros.append(("PG_MINOR_VERSION", pgminor))
-            define_macros.append(("PG_PATCH_VERSION", pgpatch))
-        except Warning, w:
-            if self.pg_config == self.DEFAULT_PG_CONFIG:
-                sys.stderr.write("Warning: %s" % str(w))
-            else:
-                sys.stderr.write("Error: %s" % str(w))
-                sys.exit(1)
-            
-        if hasattr(self, "finalize_" + sys.platform):
-            getattr(self, "finalize_" + sys.platform)()
-            
-# let's start with macro definitions (the ones not already in setup.cfg)
-define_macros = []
-include_dirs = []
-
-# python version
-define_macros.append(('PY_MAJOR_VERSION', str(sys.version_info[0])))
-define_macros.append(('PY_MINOR_VERSION', str(sys.version_info[1])))
-
-# some macros related to python versions and features
-if sys.version_info[0] >= 2 and sys.version_info[1] >= 3:
-    define_macros.append(('HAVE_PYBOOL','1'))
-    
-# gather information to build the extension module
-ext = [] ; data_files = []
-
-# sources
-
-sources = [
-    'psycopgmodule.c', 'pqpath.c',  'typecast.c',
-    'microprotocols.c', 'microprotocols_proto.c', 
-    'connection_type.c', 'connection_int.c', 'cursor_type.c', 'cursor_int.c',
-    'adapter_qstring.c', 'adapter_pboolean.c', 'adapter_binary.c',
-    'adapter_asis.c', 'adapter_list.c']
-
-from ConfigParser import ConfigParser
-parser = ConfigParser()
-parser.read('setup.cfg')
-
-# Choose if to use Decimal type
-use_decimal = int(parser.get('build_ext', 'use_decimal'))
-if sys.version_info[0] >= 2 and (
-    sys.version_info[1] >= 4 or (sys.version_info[1] == 3 and use_decimal)):
-    define_macros.append(('HAVE_DECIMAL','1'))
-    version_flags.append('dec')
-
-# Choose a datetime module
-have_pydatetime = False
-have_mxdatetime = False
-use_pydatetime  = int(parser.get('build_ext', 'use_pydatetime'))
-
-# check for mx package
-if parser.has_option('build_ext', 'mx_include_dir'):
-    mxincludedir = parser.get('build_ext', 'mx_include_dir')
-else:
-    mxincludedir = os.path.join(get_python_inc(plat_specific=1), "mx")
-if os.path.exists(mxincludedir):
-    include_dirs.append(mxincludedir)
-    define_macros.append(('HAVE_MXDATETIME','1'))
-    sources.append('adapter_mxdatetime.c')
-    have_mxdatetime = True
-    version_flags.append('mx')
-
-# check for python datetime package
-if os.path.exists(os.path.join(get_python_inc(plat_specific=1),"datetime.h")):
-    define_macros.append(('HAVE_PYDATETIME','1'))
-    sources.append('adapter_datetime.c')
-    have_pydatetime = True
-    version_flags.append('dt')
-    
-# now decide which package will be the default for date/time typecasts
-if have_pydatetime and use_pydatetime \
-       or have_pydatetime and not have_mxdatetime:
-    define_macros.append(('PSYCOPG_DEFAULT_PYDATETIME','1'))
-elif have_mxdatetime:
-    define_macros.append(('PSYCOPG_DEFAULT_MXDATETIME','1'))
-else:
-    def e(msg):
-        sys.stderr.write("error: " + msg + "\n")
-    e("psycopg requires a datetime module:")
-    e("    mx.DateTime module not found")
-    e("    python datetime module not found")
-    e("Note that psycopg needs the module headers and not just the module")
-    e("itself. If you installed Python or mx.DateTime from a binary package")
-    e("you probably need to install its companion -dev or -devel package.")
-    sys.exit(1)
-
-# generate a nice version string to avoid confusion when users report bugs
-for have in parser.get('build_ext', 'define').split(','):
-    if have == 'PSYCOPG_EXTENSIONS':
-        version_flags.append('ext')
-    elif have == 'HAVE_PQPROTOCOL3':
-        version_flags.append('pq3')
-if version_flags:
-    PSYCOPG_VERSION_EX = PSYCOPG_VERSION + " (%s)" % ' '.join(version_flags)
-else:
-    PSYCOPG_VERSION_EX = PSYCOPG_VERSION
-    
-if sys.platform != 'win32':
-    define_macros.append(('PSYCOPG_VERSION', '"'+PSYCOPG_VERSION_EX+'"'))
-else:
-    define_macros.append(('PSYCOPG_VERSION', '\\"'+PSYCOPG_VERSION_EX+'\\"'))
-
-# build the extension
-
-sources = map(lambda x: os.path.join('psycopg', x), sources)
-
-ext.append(Extension("psycopg2._psycopg", sources,
-                     define_macros=define_macros,
-                     include_dirs=include_dirs,
-                     undef_macros=[]))
-
-setup(name="psycopg2",
-      version=PSYCOPG_VERSION,
-      maintainer="Federico Di Gregorio",
-      maintainer_email="fog@initd.org",
-      author="Federico Di Gregorio",
-      author_email="fog@initd.org",
-      url="http://initd.org/tracker/psycopg",
-      download_url = "http://initd.org/pub/software/psycopg2",
-      license="GPL with exceptions or ZPL",
-      platforms = ["any"],
-      description=__doc__.split("\n")[0],
-      long_description="\n".join(__doc__.split("\n")[2:]),
-      classifiers=filter(None, classifiers.split("\n")),
-      data_files=data_files,
-      package_dir={'psycopg2':'lib'},
-      packages=['psycopg2'],
-      cmdclass={ 'build_ext': psycopg_build_ext },
-      ext_modules=ext)
diff --git a/psycopg2/tests/dbapi20.py b/psycopg2/tests/dbapi20.py
deleted file mode 100644 (file)
index 21f15b9..0000000
+++ /dev/null
@@ -1,850 +0,0 @@
-#!/usr/bin/env python
-''' Python DB API 2.0 driver compliance unit test suite. 
-    
-    This software is Public Domain and may be used without restrictions.
-
- "Now we have booze and barflies entering the discussion, plus rumours of
-  DBAs on drugs... and I won't tell you what flashes through my mind each
-  time I read the subject line with 'Anal Compliance' in it.  All around
-  this is turning out to be a thoroughly unwholesome unit test."
-
-    -- Ian Bicking
-'''
-
-__rcs_id__  = '$Id$'
-__version__ = '$Revision$'[11:-2]
-__author__ = 'Stuart Bishop <zen@shangri-la.dropbear.id.au>'
-
-import unittest
-import time
-
-# $Log: dbapi20.py,v $
-# Revision 1.10  2003/10/09 03:14:14  zenzen
-# Add test for DB API 2.0 optional extension, where database exceptions
-# are exposed as attributes on the Connection object.
-#
-# Revision 1.9  2003/08/13 01:16:36  zenzen
-# Minor tweak from Stefan Fleiter
-#
-# Revision 1.8  2003/04/10 00:13:25  zenzen
-# Changes, as per suggestions by M.-A. Lemburg
-# - Add a table prefix, to ensure namespace collisions can always be avoided
-#
-# Revision 1.7  2003/02/26 23:33:37  zenzen
-# Break out DDL into helper functions, as per request by David Rushby
-#
-# Revision 1.6  2003/02/21 03:04:33  zenzen
-# Stuff from Henrik Ekelund:
-#     added test_None
-#     added test_nextset & hooks
-#
-# Revision 1.5  2003/02/17 22:08:43  zenzen
-# Implement suggestions and code from Henrik Eklund - test that cursor.arraysize
-# defaults to 1 & generic cursor.callproc test added
-#
-# Revision 1.4  2003/02/15 00:16:33  zenzen
-# Changes, as per suggestions and bug reports by M.-A. Lemburg,
-# Matthew T. Kromer, Federico Di Gregorio and Daniel Dittmar
-# - Class renamed
-# - Now a subclass of TestCase, to avoid requiring the driver stub
-#   to use multiple inheritance
-# - Reversed the polarity of buggy test in test_description
-# - Test exception heirarchy correctly
-# - self.populate is now self._populate(), so if a driver stub
-#   overrides self.ddl1 this change propogates
-# - VARCHAR columns now have a width, which will hopefully make the
-#   DDL even more portible (this will be reversed if it causes more problems)
-# - cursor.rowcount being checked after various execute and fetchXXX methods
-# - Check for fetchall and fetchmany returning empty lists after results
-#   are exhausted (already checking for empty lists if select retrieved
-#   nothing
-# - Fix bugs in test_setoutputsize_basic and test_setinputsizes
-#
-
-class DatabaseAPI20Test(unittest.TestCase):
-    ''' Test a database self.driver for DB API 2.0 compatibility.
-        This implementation tests Gadfly, but the TestCase
-        is structured so that other self.drivers can subclass this 
-        test case to ensure compiliance with the DB-API. It is 
-        expected that this TestCase may be expanded in the future
-        if ambiguities or edge conditions are discovered.
-
-        The 'Optional Extensions' are not yet being tested.
-
-        self.drivers should subclass this test, overriding setUp, tearDown,
-        self.driver, connect_args and connect_kw_args. Class specification
-        should be as follows:
-
-        import dbapi20 
-        class mytest(dbapi20.DatabaseAPI20Test):
-           [...] 
-
-        Don't 'import DatabaseAPI20Test from dbapi20', or you will
-        confuse the unit tester - just 'import dbapi20'.
-    '''
-
-    # The self.driver module. This should be the module where the 'connect'
-    # method is to be found
-    driver = None
-    connect_args = () # List of arguments to pass to connect
-    connect_kw_args = {} # Keyword arguments for connect
-    table_prefix = 'dbapi20test_' # If you need to specify a prefix for tables
-
-    ddl1 = 'create table %sbooze (name varchar(20))' % table_prefix
-    ddl2 = 'create table %sbarflys (name varchar(20))' % table_prefix
-    xddl1 = 'drop table %sbooze' % table_prefix
-    xddl2 = 'drop table %sbarflys' % table_prefix
-
-    lowerfunc = 'lower' # Name of stored procedure to convert string->lowercase
-        
-    # Some drivers may need to override these helpers, for example adding
-    # a 'commit' after the execute.
-    def executeDDL1(self,cursor):
-        cursor.execute(self.ddl1)
-
-    def executeDDL2(self,cursor):
-        cursor.execute(self.ddl2)
-
-    def setUp(self):
-        ''' self.drivers should override this method to perform required setup
-            if any is necessary, such as creating the database.
-        '''
-        pass
-
-    def tearDown(self):
-        ''' self.drivers should override this method to perform required cleanup
-            if any is necessary, such as deleting the test database.
-            The default drops the tables that may be created.
-        '''
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            for ddl in (self.xddl1,self.xddl2):
-                try: 
-                    cur.execute(ddl)
-                    con.commit()
-                except self.driver.Error: 
-                    # Assume table didn't exist. Other tests will check if
-                    # execute is busted.
-                    pass
-        finally:
-            con.close()
-
-    def _connect(self):
-        try:
-            return self.driver.connect(
-                *self.connect_args,**self.connect_kw_args
-                )
-        except AttributeError:
-            self.fail("No connect method found in self.driver module")
-
-    def test_connect(self):
-        con = self._connect()
-        con.close()
-
-    def test_apilevel(self):
-        try:
-            # Must exist
-            apilevel = self.driver.apilevel
-            # Must equal 2.0
-            self.assertEqual(apilevel,'2.0')
-        except AttributeError:
-            self.fail("Driver doesn't define apilevel")
-
-    def test_threadsafety(self):
-        try:
-            # Must exist
-            threadsafety = self.driver.threadsafety
-            # Must be a valid value
-            self.failUnless(threadsafety in (0,1,2,3))
-        except AttributeError:
-            self.fail("Driver doesn't define threadsafety")
-
-    def test_paramstyle(self):
-        try:
-            # Must exist
-            paramstyle = self.driver.paramstyle
-            # Must be a valid value
-            self.failUnless(paramstyle in (
-                'qmark','numeric','named','format','pyformat'
-                ))
-        except AttributeError:
-            self.fail("Driver doesn't define paramstyle")
-
-    def test_Exceptions(self):
-        # Make sure required exceptions exist, and are in the
-        # defined heirarchy.
-        self.failUnless(issubclass(self.driver.Warning,StandardError))
-        self.failUnless(issubclass(self.driver.Error,StandardError))
-        self.failUnless(
-            issubclass(self.driver.InterfaceError,self.driver.Error)
-            )
-        self.failUnless(
-            issubclass(self.driver.DatabaseError,self.driver.Error)
-            )
-        self.failUnless(
-            issubclass(self.driver.OperationalError,self.driver.Error)
-            )
-        self.failUnless(
-            issubclass(self.driver.IntegrityError,self.driver.Error)
-            )
-        self.failUnless(
-            issubclass(self.driver.InternalError,self.driver.Error)
-            )
-        self.failUnless(
-            issubclass(self.driver.ProgrammingError,self.driver.Error)
-            )
-        self.failUnless(
-            issubclass(self.driver.NotSupportedError,self.driver.Error)
-            )
-
-    def test_ExceptionsAsConnectionAttributes(self):
-        # OPTIONAL EXTENSION
-        # Test for the optional DB API 2.0 extension, where the exceptions
-        # are exposed as attributes on the Connection object
-        # I figure this optional extension will be implemented by any
-        # driver author who is using this test suite, so it is enabled
-        # by default.
-        con = self._connect()
-        drv = self.driver
-        self.failUnless(con.Warning is drv.Warning)
-        self.failUnless(con.Error is drv.Error)
-        self.failUnless(con.InterfaceError is drv.InterfaceError)
-        self.failUnless(con.DatabaseError is drv.DatabaseError)
-        self.failUnless(con.OperationalError is drv.OperationalError)
-        self.failUnless(con.IntegrityError is drv.IntegrityError)
-        self.failUnless(con.InternalError is drv.InternalError)
-        self.failUnless(con.ProgrammingError is drv.ProgrammingError)
-        self.failUnless(con.NotSupportedError is drv.NotSupportedError)
-
-
-    def test_commit(self):
-        con = self._connect()
-        try:
-            # Commit must work, even if it doesn't do anything
-            con.commit()
-        finally:
-            con.close()
-
-    def test_rollback(self):
-        con = self._connect()
-        # If rollback is defined, it should either work or throw
-        # the documented exception
-        if hasattr(con,'rollback'):
-            try:
-                con.rollback()
-            except self.driver.NotSupportedError:
-                pass
-    
-    def test_cursor(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-        finally:
-            con.close()
-
-    def test_cursor_isolation(self):
-        con = self._connect()
-        try:
-            # Make sure cursors created from the same connection have
-            # the documented transaction isolation level
-            cur1 = con.cursor()
-            cur2 = con.cursor()
-            self.executeDDL1(cur1)
-            cur1.execute("insert into %sbooze values ('Victoria Bitter')" % (
-                self.table_prefix
-                ))
-            cur2.execute("select name from %sbooze" % self.table_prefix)
-            booze = cur2.fetchall()
-            self.assertEqual(len(booze),1)
-            self.assertEqual(len(booze[0]),1)
-            self.assertEqual(booze[0][0],'Victoria Bitter')
-        finally:
-            con.close()
-
-    def test_description(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            self.executeDDL1(cur)
-            self.assertEqual(cur.description,None,
-                'cursor.description should be none after executing a '
-                'statement that can return no rows (such as DDL)'
-                )
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            self.assertEqual(len(cur.description),1,
-                'cursor.description describes too many columns'
-                )
-            self.assertEqual(len(cur.description[0]),7,
-                'cursor.description[x] tuples must have 7 elements'
-                )
-            self.assertEqual(cur.description[0][0].lower(),'name',
-                'cursor.description[x][0] must return column name'
-                )
-            self.assertEqual(cur.description[0][1],self.driver.STRING,
-                'cursor.description[x][1] must return column type. Got %r'
-                    % cur.description[0][1]
-                )
-
-            # Make sure self.description gets reset
-            self.executeDDL2(cur)
-            self.assertEqual(cur.description,None,
-                'cursor.description not being set to None when executing '
-                'no-result statements (eg. DDL)'
-                )
-        finally:
-            con.close()
-
-    def test_rowcount(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            self.executeDDL1(cur)
-            self.assertEqual(cur.rowcount,-1,
-                'cursor.rowcount should be -1 after executing no-result '
-                'statements'
-                )
-            cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
-                self.table_prefix
-                ))
-            self.failUnless(cur.rowcount in (-1,1),
-                'cursor.rowcount should == number or rows inserted, or '
-                'set to -1 after executing an insert statement'
-                )
-            cur.execute("select name from %sbooze" % self.table_prefix)
-            self.failUnless(cur.rowcount in (-1,1),
-                'cursor.rowcount should == number of rows returned, or '
-                'set to -1 after executing a select statement'
-                )
-            self.executeDDL2(cur)
-            self.assertEqual(cur.rowcount,-1,
-                'cursor.rowcount not being reset to -1 after executing '
-                'no-result statements'
-                )
-        finally:
-            con.close()
-
-    lower_func = 'lower'
-    def test_callproc(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            if self.lower_func and hasattr(cur,'callproc'):
-                r = cur.callproc(self.lower_func,('FOO',))
-                self.assertEqual(len(r),1)
-                self.assertEqual(r[0],'FOO')
-                r = cur.fetchall()
-                self.assertEqual(len(r),1,'callproc produced no result set')
-                self.assertEqual(len(r[0]),1,
-                    'callproc produced invalid result set'
-                    )
-                self.assertEqual(r[0][0],'foo',
-                    'callproc produced invalid results'
-                    )
-        finally:
-            con.close()
-
-    def test_close(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-        finally:
-            con.close()
-
-        # cursor.execute should raise an Error if called after connection
-        # closed
-        self.assertRaises(self.driver.Error,self.executeDDL1,cur)
-
-        # connection.commit should raise an Error if called after connection'
-        # closed.'
-        self.assertRaises(self.driver.Error,con.commit)
-
-        # connection.close should raise an Error if called more than once
-        self.assertRaises(self.driver.Error,con.close)
-
-    def test_execute(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            self._paraminsert(cur)
-        finally:
-            con.close()
-
-    def _paraminsert(self,cur):
-        self.executeDDL1(cur)
-        cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
-            self.table_prefix
-            ))
-        self.failUnless(cur.rowcount in (-1,1))
-
-        if self.driver.paramstyle == 'qmark':
-            cur.execute(
-                'insert into %sbooze values (?)' % self.table_prefix,
-                ("Cooper's",)
-                )
-        elif self.driver.paramstyle == 'numeric':
-            cur.execute(
-                'insert into %sbooze values (:1)' % self.table_prefix,
-                ("Cooper's",)
-                )
-        elif self.driver.paramstyle == 'named':
-            cur.execute(
-                'insert into %sbooze values (:beer)' % self.table_prefix, 
-                {'beer':"Cooper's"}
-                )
-        elif self.driver.paramstyle == 'format':
-            cur.execute(
-                'insert into %sbooze values (%%s)' % self.table_prefix,
-                ("Cooper's",)
-                )
-        elif self.driver.paramstyle == 'pyformat':
-            cur.execute(
-                'insert into %sbooze values (%%(beer)s)' % self.table_prefix,
-                {'beer':"Cooper's"}
-                )
-        else:
-            self.fail('Invalid paramstyle')
-        self.failUnless(cur.rowcount in (-1,1))
-
-        cur.execute('select name from %sbooze' % self.table_prefix)
-        res = cur.fetchall()
-        self.assertEqual(len(res),2,'cursor.fetchall returned too few rows')
-        beers = [res[0][0],res[1][0]]
-        beers.sort()
-        self.assertEqual(beers[0],"Cooper's",
-            'cursor.fetchall retrieved incorrect data, or data inserted '
-            'incorrectly'
-            )
-        self.assertEqual(beers[1],"Victoria Bitter",
-            'cursor.fetchall retrieved incorrect data, or data inserted '
-            'incorrectly'
-            )
-
-    def test_executemany(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            self.executeDDL1(cur)
-            largs = [ ("Cooper's",) , ("Boag's",) ]
-            margs = [ {'beer': "Cooper's"}, {'beer': "Boag's"} ]
-            if self.driver.paramstyle == 'qmark':
-                cur.executemany(
-                    'insert into %sbooze values (?)' % self.table_prefix,
-                    largs
-                    )
-            elif self.driver.paramstyle == 'numeric':
-                cur.executemany(
-                    'insert into %sbooze values (:1)' % self.table_prefix,
-                    largs
-                    )
-            elif self.driver.paramstyle == 'named':
-                cur.executemany(
-                    'insert into %sbooze values (:beer)' % self.table_prefix,
-                    margs
-                    )
-            elif self.driver.paramstyle == 'format':
-                cur.executemany(
-                    'insert into %sbooze values (%%s)' % self.table_prefix,
-                    largs
-                    )
-            elif self.driver.paramstyle == 'pyformat':
-                cur.executemany(
-                    'insert into %sbooze values (%%(beer)s)' % (
-                        self.table_prefix
-                        ),
-                    margs
-                    )
-            else:
-                self.fail('Unknown paramstyle')
-            self.failUnless(cur.rowcount in (-1,2),
-                'insert using cursor.executemany set cursor.rowcount to '
-                'incorrect value %r' % cur.rowcount
-                )
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            res = cur.fetchall()
-            self.assertEqual(len(res),2,
-                'cursor.fetchall retrieved incorrect number of rows'
-                )
-            beers = [res[0][0],res[1][0]]
-            beers.sort()
-            self.assertEqual(beers[0],"Boag's",'incorrect data retrieved')
-            self.assertEqual(beers[1],"Cooper's",'incorrect data retrieved')
-        finally:
-            con.close()
-
-    def test_fetchone(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-
-            # cursor.fetchone should raise an Error if called before
-            # executing a select-type query
-            self.assertRaises(self.driver.Error,cur.fetchone)
-
-            # cursor.fetchone should raise an Error if called after
-            # executing a query that cannnot return rows
-            self.executeDDL1(cur)
-            self.assertRaises(self.driver.Error,cur.fetchone)
-
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            self.assertEqual(cur.fetchone(),None,
-                'cursor.fetchone should return None if a query retrieves '
-                'no rows'
-                )
-            self.failUnless(cur.rowcount in (-1,0))
-
-            # cursor.fetchone should raise an Error if called after
-            # executing a query that cannnot return rows
-            cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
-                self.table_prefix
-                ))
-            self.assertRaises(self.driver.Error,cur.fetchone)
-
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            r = cur.fetchone()
-            self.assertEqual(len(r),1,
-                'cursor.fetchone should have retrieved a single row'
-                )
-            self.assertEqual(r[0],'Victoria Bitter',
-                'cursor.fetchone retrieved incorrect data'
-                )
-            self.assertEqual(cur.fetchone(),None,
-                'cursor.fetchone should return None if no more rows available'
-                )
-            self.failUnless(cur.rowcount in (-1,1))
-        finally:
-            con.close()
-
-    samples = [
-        'Carlton Cold',
-        'Carlton Draft',
-        'Mountain Goat',
-        'Redback',
-        'Victoria Bitter',
-        'XXXX'
-        ]
-
-    def _populate(self):
-        ''' Return a list of sql commands to setup the DB for the fetch
-            tests.
-        '''
-        populate = [
-            "insert into %sbooze values ('%s')" % (self.table_prefix,s) 
-                for s in self.samples
-            ]
-        return populate
-
-    def test_fetchmany(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-
-            # cursor.fetchmany should raise an Error if called without
-            #issuing a query
-            self.assertRaises(self.driver.Error,cur.fetchmany,4)
-
-            self.executeDDL1(cur)
-            for sql in self._populate():
-                cur.execute(sql)
-
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            r = cur.fetchmany()
-            self.assertEqual(len(r),1,
-                'cursor.fetchmany retrieved incorrect number of rows, '
-                'default of arraysize is one.'
-                )
-            cur.arraysize=10
-            r = cur.fetchmany(3) # Should get 3 rows
-            self.assertEqual(len(r),3,
-                'cursor.fetchmany retrieved incorrect number of rows'
-                )
-            r = cur.fetchmany(4) # Should get 2 more
-            self.assertEqual(len(r),2,
-                'cursor.fetchmany retrieved incorrect number of rows'
-                )
-            r = cur.fetchmany(4) # Should be an empty sequence
-            self.assertEqual(len(r),0,
-                'cursor.fetchmany should return an empty sequence after '
-                'results are exhausted'
-            )
-            self.failUnless(cur.rowcount in (-1,6))
-
-            # Same as above, using cursor.arraysize
-            cur.arraysize=4
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            r = cur.fetchmany() # Should get 4 rows
-            self.assertEqual(len(r),4,
-                'cursor.arraysize not being honoured by fetchmany'
-                )
-            r = cur.fetchmany() # Should get 2 more
-            self.assertEqual(len(r),2)
-            r = cur.fetchmany() # Should be an empty sequence
-            self.assertEqual(len(r),0)
-            self.failUnless(cur.rowcount in (-1,6))
-
-            cur.arraysize=6
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            rows = cur.fetchmany() # Should get all rows
-            self.failUnless(cur.rowcount in (-1,6))
-            self.assertEqual(len(rows),6)
-            self.assertEqual(len(rows),6)
-            rows = [r[0] for r in rows]
-            rows.sort()
-          
-            # Make sure we get the right data back out
-            for i in range(0,6):
-                self.assertEqual(rows[i],self.samples[i],
-                    'incorrect data retrieved by cursor.fetchmany'
-                    )
-
-            rows = cur.fetchmany() # Should return an empty list
-            self.assertEqual(len(rows),0,
-                'cursor.fetchmany should return an empty sequence if '
-                'called after the whole result set has been fetched'
-                )
-            self.failUnless(cur.rowcount in (-1,6))
-
-            self.executeDDL2(cur)
-            cur.execute('select name from %sbarflys' % self.table_prefix)
-            r = cur.fetchmany() # Should get empty sequence
-            self.assertEqual(len(r),0,
-                'cursor.fetchmany should return an empty sequence if '
-                'query retrieved no rows'
-                )
-            self.failUnless(cur.rowcount in (-1,0))
-
-        finally:
-            con.close()
-
-    def test_fetchall(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            # cursor.fetchall should raise an Error if called
-            # without executing a query that may return rows (such
-            # as a select)
-            self.assertRaises(self.driver.Error, cur.fetchall)
-
-            self.executeDDL1(cur)
-            for sql in self._populate():
-                cur.execute(sql)
-
-            # cursor.fetchall should raise an Error if called
-            # after executing a a statement that cannot return rows
-            self.assertRaises(self.driver.Error,cur.fetchall)
-
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            rows = cur.fetchall()
-            self.failUnless(cur.rowcount in (-1,len(self.samples)))
-            self.assertEqual(len(rows),len(self.samples),
-                'cursor.fetchall did not retrieve all rows'
-                )
-            rows = [r[0] for r in rows]
-            rows.sort()
-            for i in range(0,len(self.samples)):
-                self.assertEqual(rows[i],self.samples[i],
-                'cursor.fetchall retrieved incorrect rows'
-                )
-            rows = cur.fetchall()
-            self.assertEqual(
-                len(rows),0,
-                'cursor.fetchall should return an empty list if called '
-                'after the whole result set has been fetched'
-                )
-            self.failUnless(cur.rowcount in (-1,len(self.samples)))
-
-            self.executeDDL2(cur)
-            cur.execute('select name from %sbarflys' % self.table_prefix)
-            rows = cur.fetchall()
-            self.failUnless(cur.rowcount in (-1,0))
-            self.assertEqual(len(rows),0,
-                'cursor.fetchall should return an empty list if '
-                'a select query returns no rows'
-                )
-            
-        finally:
-            con.close()
-    
-    def test_mixedfetch(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            self.executeDDL1(cur)
-            for sql in self._populate():
-                cur.execute(sql)
-
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            rows1  = cur.fetchone()
-            rows23 = cur.fetchmany(2)
-            rows4  = cur.fetchone()
-            rows56 = cur.fetchall()
-            self.failUnless(cur.rowcount in (-1,6))
-            self.assertEqual(len(rows23),2,
-                'fetchmany returned incorrect number of rows'
-                )
-            self.assertEqual(len(rows56),2,
-                'fetchall returned incorrect number of rows'
-                )
-
-            rows = [rows1[0]]
-            rows.extend([rows23[0][0],rows23[1][0]])
-            rows.append(rows4[0])
-            rows.extend([rows56[0][0],rows56[1][0]])
-            rows.sort()
-            for i in range(0,len(self.samples)):
-                self.assertEqual(rows[i],self.samples[i],
-                    'incorrect data retrieved or inserted'
-                    )
-        finally:
-            con.close()
-
-    def help_nextset_setUp(self,cur):
-        ''' Should create a procedure called deleteme
-            that returns two result sets, first the 
-           number of rows in booze then "name from booze"
-        '''
-        raise NotImplementedError,'Helper not implemented'
-        #sql="""
-        #    create procedure deleteme as
-        #    begin
-        #        select count(*) from booze
-        #        select name from booze
-        #    end
-        #"""
-        #cur.execute(sql)
-
-    def help_nextset_tearDown(self,cur):
-        'If cleaning up is needed after nextSetTest'
-        raise NotImplementedError,'Helper not implemented'
-        #cur.execute("drop procedure deleteme")
-
-    def test_nextset(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            if not hasattr(cur,'nextset'):
-                return
-
-            try:
-                self.executeDDL1(cur)
-                sql=self._populate()
-                for sql in self._populate():
-                    cur.execute(sql)
-
-                self.help_nextset_setUp(cur)
-
-                cur.callproc('deleteme')
-                numberofrows=cur.fetchone()
-                assert numberofrows[0]== len(self.samples)
-                assert cur.nextset()
-                names=cur.fetchall()
-                assert len(names) == len(self.samples)
-                s=cur.nextset()
-                assert s == None,'No more return sets, should return None'
-            finally:
-                self.help_nextset_tearDown(cur)
-
-        finally:
-            con.close()
-
-    def test_nextset(self):
-        raise NotImplementedError,'Drivers need to override this test'
-
-    def test_arraysize(self):
-        # Not much here - rest of the tests for this are in test_fetchmany
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            self.failUnless(hasattr(cur,'arraysize'),
-                'cursor.arraysize must be defined'
-                )
-        finally:
-            con.close()
-
-    def test_setinputsizes(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            cur.setinputsizes( (25,) )
-            self._paraminsert(cur) # Make sure cursor still works
-        finally:
-            con.close()
-
-    def test_setoutputsize_basic(self):
-        # Basic test is to make sure setoutputsize doesn't blow up
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            cur.setoutputsize(1000)
-            cur.setoutputsize(2000,0)
-            self._paraminsert(cur) # Make sure the cursor still works
-        finally:
-            con.close()
-
-    def test_setoutputsize(self):
-        # Real test for setoutputsize is driver dependant
-        raise NotImplementedError,'Driver need to override this test'
-
-    def test_None(self):
-        con = self._connect()
-        try:
-            cur = con.cursor()
-            self.executeDDL1(cur)
-            cur.execute('insert into %sbooze values (NULL)' % self.table_prefix)
-            cur.execute('select name from %sbooze' % self.table_prefix)
-            r = cur.fetchall()
-            self.assertEqual(len(r),1)
-            self.assertEqual(len(r[0]),1)
-            self.assertEqual(r[0][0],None,'NULL value not returned as None')
-        finally:
-            con.close()
-
-    def test_Date(self):
-        d1 = self.driver.Date(2002,12,25)
-        d2 = self.driver.DateFromTicks(time.mktime((2002,12,25,0,0,0,0,0,0)))
-        # Can we assume this? API doesn't specify, but it seems implied
-        # self.assertEqual(str(d1),str(d2))
-
-    def test_Time(self):
-        t1 = self.driver.Time(13,45,30)
-        t2 = self.driver.TimeFromTicks(time.mktime((2001,1,1,13,45,30,0,0,0)))
-        # Can we assume this? API doesn't specify, but it seems implied
-        # self.assertEqual(str(t1),str(t2))
-
-    def test_Timestamp(self):
-        t1 = self.driver.Timestamp(2002,12,25,13,45,30)
-        t2 = self.driver.TimestampFromTicks(
-            time.mktime((2002,12,25,13,45,30,0,0,0))
-            )
-        # Can we assume this? API doesn't specify, but it seems implied
-        # self.assertEqual(str(t1),str(t2))
-
-    def test_Binary(self):
-        b = self.driver.Binary('Something')
-        b = self.driver.Binary('')
-
-    def test_STRING(self):
-        self.failUnless(hasattr(self.driver,'STRING'),
-            'module.STRING must be defined'
-            )
-
-    def test_BINARY(self):
-        self.failUnless(hasattr(self.driver,'BINARY'),
-            'module.BINARY must be defined.'
-            )
-
-    def test_NUMBER(self):
-        self.failUnless(hasattr(self.driver,'NUMBER'),
-            'module.NUMBER must be defined.'
-            )
-
-    def test_DATETIME(self):
-        self.failUnless(hasattr(self.driver,'DATETIME'),
-            'module.DATETIME must be defined.'
-            )
-
-    def test_ROWID(self):
-        self.failUnless(hasattr(self.driver,'ROWID'),
-            'module.ROWID must be defined.'
-            )
-
diff --git a/psycopg2/tests/extras_dictcursor.py b/psycopg2/tests/extras_dictcursor.py
deleted file mode 100644 (file)
index 270d37f..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# extras_dictcursor - test if DictCursor extension class works
-#
-# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-import psycopg2
-import psycopg2.extras
-from unittest import TestCase, TestSuite, main
-
-
-class ExtrasDictCursorTests(TestCase):
-    """Test if DictCursor extension class works."""
-
-    def setUp(self):
-        self.conn = psycopg2.connect("dbname=test")
-        curs = self.conn.cursor()
-        curs.execute("CREATE TABLE ExtrasDictCursorTests (foo text)")
-    
-    def testDictCursor(self):
-        curs = self.conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
-        curs.execute("INSERT INTO ExtrasDictCursorTests VALUES ('bar')")
-        curs.execute("SELECT * FROM ExtrasDictCursorTests")
-        row = curs.fetchone()
-        self.failUnless(row['foo'] == 'bar')
-        self.failUnless(row[0] == 'bar')
-
-class ExtrasDictCursorSuite(TestSuite):
-    """Build a suite of all tests."""
-
-    def __init__(self):
-        """Build a list of tests."""
-        self.tests = [x for x in dir(ExtrasDictCursorTests)
-                                         if x.startswith('test')]
-        TestSuite.__init__(self, map(TestModule, self.tests))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/psycopg2/tests/test_psycopg2_dbapi20.py b/psycopg2/tests/test_psycopg2_dbapi20.py
deleted file mode 100644 (file)
index 028b718..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-import dbapi20
-import unittest
-import psycopg2
-import popen2
-
-class test_Psycopg(dbapi20.DatabaseAPI20Test):
-    driver = psycopg2
-    connect_args = ()
-    connect_kw_args = {'dsn': 'dbname=dbapi20_test'}
-
-    lower_func = 'lower' # For stored procedure test
-
-    def setUp(self):
-        # Call superclass setUp In case this does something in the
-        # future
-        dbapi20.DatabaseAPI20Test.setUp(self) 
-
-        try:
-            con = self._connect()
-            con.close()
-        except:
-            cmd = "psql -c 'create database dbapi20_test' template1"
-            cout,cin = popen2.popen2(cmd)
-            cin.close()
-            cout.read()
-
-    def tearDown(self):
-        dbapi20.DatabaseAPI20Test.tearDown(self)
-
-    def test_nextset(self): pass
-    def test_setoutputsize(self): pass
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/psycopg2/tests/types_basic.py b/psycopg2/tests/types_basic.py
deleted file mode 100644 (file)
index 446ad15..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-# types_basic.py - tests for basic types conversions
-#
-# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
-# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-import sys
-try:
-    import decimal
-except:
-    pass
-import psycopg2
-from unittest import TestCase, TestSuite, main
-
-
-class TypesBasicTests(TestCase):
-    """Test presence of mandatory attributes and methods."""
-
-    def setUp(self):
-        self.conn = psycopg2.connect("dbname=test")
-
-    def execute(self, *args):
-        curs = self.conn.cursor()
-        curs.execute(*args)
-        return curs.fetchone()[0]
-    
-    def testQuoting(self):
-        s = "Quote'this\\! ''ok?''"
-        self.failUnless(self.execute("SELECT %s AS foo", (s,)) == s,
-                        "wrong quoting: " + s)
-
-    def testUnicode(self):
-        s = u"Quote'this\\! ''ok?''"
-        self.failUnless(self.execute("SELECT %s AS foo", (s,)) == s,
-                        "wrong unicode quoting: " + s)
-
-    def testNumber(self):
-        s = self.execute("SELECT %s AS foo", (1971,))
-        self.failUnless(s == 1971, "wrong integer quoting: " + str(s))
-        s = self.execute("SELECT %s AS foo", (1971L,))
-        self.failUnless(s == 1971L, "wrong integer quoting: " + str(s))
-        # Python 2.4 defaults to Decimal?
-        if sys.version_info[0] >= 2 and sys.version_info[1] >= 4:
-            s = self.execute("SELECT %s AS foo", (19.10,))
-            self.failUnless(s - decimal.Decimal("19.10") == 0,
-                            "wrong decimal quoting: " + str(s))
-        else:
-            s = self.execute("SELECT %s AS foo", (19.10,))
-            self.failUnless(abs(s - 19.10) < 0.001,
-                            "wrong float quoting: " + str(s))
-
-    def testBinary(self):
-        s = ''.join([chr(x) for x in range(256)])
-        b = psycopg2.Binary(s)
-       r = str(self.execute("SELECT %s::bytea AS foo", (b,)))
-        self.failUnless(r == s, "wrong binary quoting")
-        # test to make sure an empty Binary is converted to an empty string
-        b = psycopg2.Binary('')
-        self.assertEqual(str(b), "''")
-
-    def testArray(self):
-       s = self.execute("SELECT %s AS foo", ([[1,2],[3,4]],))
-       self.failUnless(s == [[1,2],[3,4]], "wrong array quoting " + str(s))
-       s = self.execute("SELECT %s AS foo", (['one', 'two', 'three'],))
-       self.failUnless(s == ['one', 'two', 'three'], 
-                       "wrong array quoting " + str(s))
-       
-       
-class TypesBasicSuite(TestSuite):
-    """Build a suite of all tests."""
-
-    def __init__(self):
-        """Build a list of tests."""
-        self.tests = [x for x in dir(TypesBasicTests) if x.startswith('test')]
-        TestSuite.__init__(self, map(TestModule, self.tests))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/pycurl/COPYING b/pycurl/COPYING
deleted file mode 100644 (file)
index 99dce33..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-                  GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                            NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/pycurl/ChangeLog b/pycurl/ChangeLog
deleted file mode 100644 (file)
index 0e5ae7e..0000000
+++ /dev/null
@@ -1,759 +0,0 @@
-Version 7.13.1 [requires libcurl-7.13.1 or better]
---------------
-
-2005-03-04  Kjetil Jacobsen  <kjetilja>
-
-        * Use METH_NOARGS where appropriate.
-
-2005-03-03  Kjetil Jacobsen  <kjetilja>
-
-        * Added support for CURLFORM API with HTTPPOST: Supports a
-          a tuple with pairs of options and values instead of just
-          supporting string contents.  See tests/test_post2.py
-          for example usage.  Options are FORM_CONTENTS, FORM_FILE and
-          FORM_CONTENTTYPE, corresponding to the CURLFORM_* options,
-          and values are strings.
-
-2005-02-13  Markus F.X.J. Oberhumer <mfx>
-
-        * Read callbacks (pycurl.READFUNCTION) can now return
-          pycurl.READFUNC_ABORT to immediately abort the current transfer.
-
-        * The INFILESIZE, MAXFILESIZE, POSTFIELDSIZE and RESUME_FROM
-          options now automatically use the largefile version to handle
-          files > 2GB.
-
-        * Added missing pycurl.PORT constant.
-
-
-Version 7.13.0
---------------
-
-2005-02-10  Kjetil Jacobsen  <kjetilja>
-
-        * Added file_upload.py to examples, shows how to upload
-          a file.
-
-        * Added CURLOPT_IOCTLFUNCTION/DATA.
-
-        * Added options from libcurl 7.13.0: FTP_ACCOUNT, SOURCE_URL,
-          SOURCE_QUOTE.
-
-        * Obsoleted options: SOURCE_HOST, SOURCE_PATH, SOURCE_PORT,
-          PASV_HOST.
-
-
-Version 7.12.3
---------------
-
-2004-12-22  Markus F.X.J. Oberhumer <mfx>
-
-        * Added CURLINFO_NUM_CONNECTS and CURLINFO_SSL_ENGINES.
-
-        * Added some other missing constants.
-
-        * Updated pycurl.version_info() to return a 12-tuple
-          instead of a 9-tuple.
-
-
-Version 7.12.2
---------------
-
-2004-10-15  Kjetil Jacobsen  <kjetilja>
-
-        * Added CURLOPT_FTPSSLAUTH (and CURLFTPAUTH_*).
-
-        * Added CURLINFO_OS_ERRNO.
-
-2004-08-17 Kjetil Jacobsen <kjetilja>
-
-        * Use LONG_LONG instead of PY_LONG_LONG to make pycurl compile
-          on Python versions < 2.3 (fix from Domenico Andreoli
-          <cavok at libero.it>).
-
-
-Version 7.12.1
---------------
-
-2004-08-02  Kjetil Jacobsen  <kjetilja>
-
-        * Added INFOTYPE_SSL_DATA_IN/OUT.
-
-2004-07-16  Markus F.X.J. Oberhumer <mfx>
-
-        * WARNING: removed deprecated PROXY_, TIMECOND_ and non-prefixed
-          INFOTYPE constant names. See ChangeLog entry 2003-06-10.
-
-2004-06-21  Kjetil Jacobsen  <kjetilja>
-
-        * Added test program for HTTP post using the read callback (see
-          tests/test_post3.py for details).
-
-        * Use the new CURL_READFUNC_ABORT return code where appropriate
-          to avoid hanging in perform() when read callbacks are used.
-
-        * Added support for libcurl 7.12.1 CURLOPT features:
-          SOURCE_HOST, SOURCE_USERPWD, SOURCE_PATH, SOURCE_PORT,
-          PASV_HOST, SOURCE_PREQUOTE, SOURCE_POSTQUOTE.
-
-2004-06-08  Markus F.X.J. Oberhumer <mfx>
-
-        * Setting CURLOPT_POSTFIELDS now allows binary data and
-          automatically sets CURLOPT_POSTFIELDSIZE for you. If you really
-          want a different size you have to manually set POSTFIELDSIZE
-          after setting POSTFIELDS.
-          (Based on a patch by Martin Muenstermann).
-
-2004-06-05  Markus F.X.J. Oberhumer <mfx>
-
-        * Added stricter checks within the callback handlers.
-
-        * Unify the behaviour of int and long parameters where appropriate.
-
-
-Version 7.12
-------------
-
-2004-05-18  Kjetil Jacobsen  <kjetilja>
-
-        * WARNING: To simplify code maintenance pycurl now requires
-          libcurl 7.11.2 and Python 2.2 or newer to work.
-
-        * GC support is now always enabled.
-
-
-Version 7.11.3
---------------
-
-2004-04-30  Kjetil Jacobsen  <kjetilja>
-
-        * Do not use the deprecated curl_formparse function.
-          API CHANGE: HTTPPOST now takes a list of tuples where each
-          tuple contains a form name and a form value, both strings
-          (see test/test_post2.py for example usage).
-
-        * Found a possible reference count bug in the multithreading
-          code which may have contributed to the long-standing GC
-          segfault which has haunted pycurl.  Fingers crossed.
-
-
-Version 7.11.2
---------------
-
-2004-04-21  Kjetil Jacobsen  <kjetilja>
-
-        * Added support for libcurl 7.11.2 CURLOPT features:
-          CURLOPT_TCP_NODELAY.
-
-2004-03-25 Kjetil Jacobsen   <kjetilja>
-
-        * Store Python longs in off_t with PyLong_AsLongLong instead
-          of PyLong_AsLong.  Should make the options which deal
-          with large files behave a little better.  Note that this
-          requires the long long support in Python 2.2 or newer to
-          work properly.
-
-
-Version 7.11.1
---------------
-
-2004-03-16  Kjetil Jacobsen  <kjetilja>
-
-        * WARNING: Removed support for the PASSWDFUNCTION callback, which
-          is no longer supported by libcurl.
-
-2004-03-15  Kjetil Jacobsen  <kjetilja>
-
-        * Added support for libcurl 7.11.1 CURLOPT features:
-          CURLOPT_POSTFIELDSIZE_LARGE.
-
-
-Version 7.11.0
---------------
-
-2004-02-11  Kjetil Jacobsen  <kjetilja>
-
-        * Added support for libcurl 7.11.0 CURLOPT features:
-          INFILESIZE_LARGE, RESUME_FROM_LARGE, MAXFILESIZE_LARGE
-          and FTP_SSL.
-
-        * Circular garbage collection support can now be enabled or
-          disabled by passing the '--use-gc=[1|0]' parameter to setup.py
-          when building pycurl.
-
-        * HTTP_VERSION options are known as CURL_HTTP_VERSION_NONE,
-          CURL_HTTP_VERSION_1_0, CURL_HTTP_VERSION_1_1 and
-          CURL_HTTP_VERSION_LAST.
-
-2003-11-16  Markus F.X.J. Oberhumer <mfx>
-
-        * Added support for these new libcurl 7.11.0 features:
-          CURLOPT_NETRC_FILE.
-
-
-Version 7.10.8
---------------
-
-2003-11-04  Markus F.X.J. Oberhumer <mfx>
-
-        * Added support for these new libcurl 7.10.8 features:
-          CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_IPRESOLVE,
-          CURLOPT_MAXFILESIZE,
-          CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL,
-          CURL_IPRESOLVE_* constants.
-
-        * Added support for these new libcurl 7.10.7 features:
-          CURLOPT_FTP_CREATE_MISSING_DIRS, CURLOPT_PROXYAUTH,
-          CURLINFO_HTTP_CONNECTCODE.
-
-
-2003-10-28  Kjetil Jacobsen  <kjetilja>
-
-        * Added missing CURLOPT_ENCODING option (patch by Martijn
-          Boerwinkel <xim@xs4all.nl>)
-
-
-Version 7.10.6
---------------
-
-2003-07-29  Markus F.X.J. Oberhumer <mfx>
-
-        * Started working on support for CURLOPT_SSL_CTX_FUNCTION and
-          CURLOPT_SSL_CTX_DATA (libcurl-7.10.6) - not yet finished.
-
-2003-06-10  Markus F.X.J. Oberhumer <mfx>
-
-        * Added support for CURLOPT_HTTPAUTH (libcurl-7.10.6), including
-          the new HTTPAUTH_BASIC, HTTPAUTH_DIGEST, HTTPAUTH_GSSNEGOTIATE
-          and HTTPAUTH_NTML constants.
-
-        * Some constants were renamed for consistency:
-
-          All curl_infotype constants are now prefixed with "INFOTYPE_",
-          all curl_proxytype constants are prefixed with "PROXYTYPE_" instead
-          of "PROXY_", and all curl_TimeCond constants are now prefixed
-          with "TIMECONDITION_" instead of "TIMECOND_".
-
-          (The old names are still available but will get removed
-          in a future release.)
-
-        * WARNING: Removed the deprecated pycurl.init() and pycurl.multi_init()
-          names - use pycurl.Curl() and pycurl.CurlMulti() instead.
-
-        * WARNING: Removed the deprecated Curl.cleanup() and
-          CurlMulti.cleanup() methods - use Curl.close() and
-          CurlMulti.close() instead.
-
-
-Version 7.10.5
---------------
-
-2003-05-15  Markus F.X.J. Oberhumer <mfx>
-
-        * Added support for CURLOPT_FTP_USE_EPRT (libcurl-7.10.5).
-
-        * Documentation updates.
-
-2003-05-07  Eric S. Raymond  <esr@snark.thyrsus.com>
-
-        * Lifted all HTML docs to clean XHTML, verified by tidy.
-
-2003-05-02  Markus F.X.J. Oberhumer <mfx>
-
-        * Fixed some `int' vs. `long' mismatches that affected 64-bit systems.
-
-        * Fixed wrong pycurl.CAPATH constant.
-
-2003-05-01  Markus F.X.J. Oberhumer <mfx>
-
-        * Added new method Curl.errstr() which returns the internal
-        libcurl error buffer string of the handle.
-
-
-Version 7.10.4.2
-----------------
-
-2003-04-15  Markus F.X.J. Oberhumer <mfx>
-
-        * Allow compilation against the libcurl-7.10.3 release - some
-        recent Linux distributions (e.g. Mandrake 9.1) ship with 7.10.3,
-        and apart from the new CURLOPT_UNRESTRICTED_AUTH option there is
-        no need that we require libcurl-7.10.4.
-
-
-Version 7.10.4
---------------
-
-2003-04-01  Kjetil Jacobsen  <kjetilja>
-
-        * Markus added CURLOPT_UNRESTRICTED_AUTH (libcurl-7.10.4).
-
-2003-02-25  Kjetil Jacobsen  <kjetilja>
-
-        * Fixed some broken test code and removed the fileupload test
-        since it didn't work properly.
-
-2003-01-28  Kjetil Jacobsen  <kjetilja>
-
-        * Some documentation updates by Markus and me.
-
-2003-01-22  Kjetil Jacobsen  <kjetilja>
-
-        * API CHANGE: the CurlMulti.info_read() method now returns
-        a separate array with handles that failed.  Each entry in this array
-        is a tuple with (curl object, error number, error message).
-        This addition makes it simpler to do error checking of individual
-        curl objects when using the multi interface.
-
-
-Version 7.10.3
---------------
-
-2003-01-13  Kjetil Jacobsen  <kjetilja>
-
-        * PycURL memory usage has been reduced.
-
-2003-01-10  Kjetil Jacobsen  <kjetilja>
-
-        * Added 'examples/retriever-multi.py' which shows how to retrieve
-        a set of URLs concurrently using the multi interface.
-
-2003-01-09  Kjetil Jacobsen  <kjetilja>
-
-        * Added support for CURLOPT_HTTP200ALIASES.
-
-2002-11-22  Kjetil Jacobsen  <kjetilja>
-
-        * Updated pycurl documentation in the 'doc' directory.
-
-2002-11-21  Kjetil Jacobsen  <kjetilja>
-
-        * Updated and improved 'examples/curl.py'.
-
-        * Added 'tests/test_multi6.py' which shows how to use the
-        info_read method with CurlMulti.
-
-2002-11-19  Kjetil Jacobsen  <kjetilja>
-
-        * Added new method CurlMulti.info_read().
-
-
-Version 7.10.2
---------------
-
-2002-11-14  Kjetil Jacobsen <kjetilja>
-
-        * Free options set with setopt after cleanup is called, as cleanup
-        assumes that options are still valid when invoked.  This fixes the
-        bug with COOKIEJAR reported by Bastiaan Naber
-        <bastiaan@ricardis.tudelft.nl>.
-
-2002-11-06  Markus F.X.J. Oberhumer <mfx>
-
-        * Install documentation under /usr/share/doc instead of /usr/doc.
-        Also, start shipping the (unfinished) HTML docs and some
-        basic test scripts.
-
-2002-10-30  Markus F.X.J. Oberhumer <mfx>
-
-        * API CHANGE: For integral values, Curl.getinfo() now returns a
-        Python-int instead of a Python-long.
-
-
-Version 7.10.1
---------------
-
-2002-10-03  Markus F.X.J. Oberhumer <mfx>
-
-        * Added new module-level function version_info() from
-        libcurl-7.10.
-
-
-Version 7.10
-------------
-
-2002-09-13  Kjetil Jacobsen  <kjetilja>
-
-        * Added commandline options to setup.py for specifying the path to
-        'curl-config' (non-windows) and the curl installation directory
-        (windows).  See the 'INSTALL' file for details.
-
-        * Added CURLOPT_ENCODING, CURLOPT_NOSIGNAL and CURLOPT_BUFFERSIZE
-        from libcurl-7.10 (by Markus Oberhumer).
-
-
-Version 7.9.8.4
----------------
-
-2002-08-28  Kjetil Jacobsen  <kjetilja>
-
-        * Added a simple web-browser example based on gtkhtml and pycurl.
-        See the file 'examples/gtkhtml_demo.py' for details.  The example
-        requires a working installation of gnome-python with gtkhtml
-        bindings enabled (pass --with-gtkhtml to gnome-python configure).
-
-2002-08-14  Kjetil Jacobsen  <kjetilja>
-
-        * Added new method 'select' on CurlMulti objects.  Example usage
-        in 'tests/test_multi5.py'.  This method is just an optimization of
-        the combined use of fdset and select.
-
-2002-08-12  Kjetil Jacobsen  <kjetilja>
-
-        * Added support for curl_multi_fdset.  See the file
-        'tests/test_multi4.py' for example usage.  Contributed by Conrad
-        Steenberg <conrad@hep.caltech.edu>.
-
-        * perform() on multi objects now returns a tuple (result, number
-        of handles) like the libcurl interface does.
-
-2002-08-08  Kjetil Jacobsen  <kjetilja>
-
-        * Added the 'sfquery' script which retrieves a SourceForge XML
-        export object for a given project.  See the file 'examples/sfquery.py'
-        for details and usage.  'sfquery' was contributed by Eric
-        S. Raymond <esr@thyrsus.com>.
-
-2002-07-20  Markus F.X.J. Oberhumer <mfx>
-
-        * API enhancements: added Curl() and CurlMulti() as aliases for
-        init() and multi_init(), and added close() methods as aliases
-        for the cleanup() methods. The new names much better match
-        the actual intended use of the objects, and they also nicely
-        correspond to Python's file object.
-
-        * Also, all constants for Curl.setopt() and Curl.getinfo() are now
-        visible from within Curl objects.
-
-        All changes are fully backward-compatible.
-
-
-Version 7.9.8.3
----------------
-
-2002-07-16  Markus F.X.J. Oberhumer <mfx>
-
-        * Under Python 2.2 or better, Curl and CurlMulti objects now
-        automatically participate in cyclic garbarge collection
-        (using the gc module).
-
-
-Version 7.9.8.2
----------------
-
-2002-07-05  Markus F.X.J. Oberhumer <mfx>
-
-        * Curl and CurlMulti objects now support standard Python attributes.
-        See tests/test_multi2.py for an example.
-
-2002-07-02  Kjetil Jacobsen  <kjetilja>
-
-        * Added support for the multi-interface.
-
-
-Version 7.9.8.1
----------------
-
-2002-06-25  Markus F.X.J. Oberhumer <mfx>
-
-        * Fixed a couple of `int' vs. `size_t' mismatches in callbacks
-        and Py_BuildValue() calls.
-
-2002-06-25  Kjetil Jacobsen  <kjetilja>
-
-        * Use 'double' type instead of 'size_t' for progress callbacks
-        (by Conrad Steenberg <conrad@hep.caltech.edu>).  Also cleaned up
-        some other type mismatches in the callback interfaces.
-
-2002-06-24  Kjetil Jacobsen  <kjetilja>
-
-        * Added example code on how to upload a file using HTTPPOST in
-        pycurl (code by Amit Mongia <amit_mongia@hotmail.com>).  See the
-        file 'test_fileupload.py' for details.
-
-
-Version 7.9.8
--------------
-
-2002-06-24  Kjetil Jacobsen  <kjetilja>
-
-        * Resolved some build problems on Windows (by Markus Oberhumer).
-
-2002-06-19  Kjetil Jacobsen  <kjetilja>
-
-        * Added CURLOPT_CAPATH.
-
-        * Added option constants for CURLOPT_NETRC: CURL_NETRC_OPTIONAL,
-        CURL_NETRC_IGNORED and CURL_NETRC_REQUIRED.
-
-        * Added option constants for CURLOPT_TIMECONDITION:
-        TIMECOND_IFMODSINCE and TIMECOND_IFUNMODSINCE.
-
-        * Added an simple example crawler, which downloads documents
-        listed in a file with a configurable number of worker threads.
-        See the file 'crawler.py' in the 'tests' directory for details.
-
-        * Removed the redundant 'test_xmlrpc2.py' test script.
-
-        * Disallow recursive callback invocations (by Markus Oberhumer).
-
-2002-06-18  Kjetil Jacobsen  <kjetilja>
-
-        * Made some changes to setup.py which should fix the build
-        problems on RedHat 7.3 (suggested by Benji <benji@kioza.net>).
-
-        * Use CURLOPT_READDATA instead of CURLOPT_INFILE, and
-        CURLOPT_WRITEDATA instead of CURLOPT_FILE.  Also fixed some
-        reference counting bugs with file objects.
-
-        * CURLOPT_FILETIME and CURLINFO_FILETIME had a namespace clash
-        which caused them not to work.  Use OPT_FILETIME for setopt() and
-        INFO_FILETIME for getinfo().  See example usage in
-        'test_getinfo.py' for details.
-
-
-Version 7.9.7
--------------
-
-2002-05-20  Kjetil Jacobsen  <kjetilja>
-
-        * New versioning scheme.  Pycurl now has the same version number
-        as the libcurl version it was built with.  The pycurl version
-        number thus indicates which version of libcurl is required to run.
-
-2002-05-17  Kjetil Jacobsen  <kjetilja>
-
-        * Added CURLINFO_REDIRECT_TIME and CURLINFO_REDIRECT_COUNT.
-
-2002-04-27  Kjetil Jacobsen  <kjetilja>
-
-        * Fixed potential memory leak and thread race (by Markus
-        Oberhumer).
-
-
-Version 0.4.9
--------------
-
-2002-04-15  Kjetil Jacobsen  <kjetilja>
-
-        * Added CURLOPT_DEBUGFUNCTION to allow debug callbacks to be
-        specified (see the file 'test_debug.py' for details on how to use
-        debug callbacks).
-
-        * Added CURLOPT_DNS_USE_GLOBAL_CACHE and
-        CURLOPT_DNS_CACHE_TIMEOUT.
-
-        * Fixed a segfault when finalizing curl objects in Python 1.5.2.
-
-        * Now requires libcurl 7.9.6 or greater.
-
-2002-04-12  Kjetil Jacobsen  <kjetilja>
-
-        * Added 'test_post2.py' file which is another example on how to
-        issue POST requests.
-
-2002-04-11  Markus F.X.J. Oberhumer <mfx>
-
-        * Added the 'test_post.py' file which demonstrates the use of
-        POST requests.
-
-
-Version 0.4.8
--------------
-
-2002-03-07  Kjetil Jacobsen  <kjetilja>
-
-        * Added CURLOPT_PREQUOTE.
-
-        * Now requires libcurl 7.9.5 or greater.
-
-        * Other minor code cleanups and bugfixes.
-
-2002-03-05  Kjetil Jacobsen  <kjetilja>
-
-        * Do not allow WRITEFUNCTION and WRITEHEADER on the same handle.
-
-
-Version 0.4.7
--------------
-
-2002-02-27  Kjetil Jacobsen  <kjetilja>
-
-        * Abort callback if the thread state of the calling thread cannot
-        be determined.
-
-        * Check that the installed version of libcurl matches the
-        requirements of pycurl.
-
-2002-02-26  Kjetil Jacobsen  <kjetilja>
-
-        * Clarence Garnder <clarence@silcom.com> found a bug where string
-        arguments to setopt sometimes were prematurely deallocated, this
-        should now be fixed.
-
-2002-02-21  Kjetil Jacobsen  <kjetilja>
-
-        * Added the 'xmlrpc_curl.py' file which implements a transport
-        for xmlrpclib (xmlrpclib is part of Python 2.2).
-
-        * Added CURLINFO_CONTENT_TYPE.
-
-        * Added CURLOPT_SSLCERTTYPE, CURLOPT_SSLKEY, CURLOPT_SSLKEYTYPE,
-        CURLOPT_SSLKEYPASSWD, CURLOPT_SSLENGINE and
-        CURLOPT_SSLENGINE_DEFAULT.
-
-        * When thrown, the pycurl.error exception is now a tuple consisting
-        of the curl error code and the error message.
-
-        * Now requires libcurl 7.9.4 or greater.
-
-2002-02-19  Kjetil Jacobsen  <kjetilja>
-
-        * Fixed docstring for getopt() function.
-
-2001-12-18  Kjetil Jacobsen  <kjetilja>
-
-        * Updated the INSTALL information for Win32.
-
-2001-12-12  Kjetil Jacobsen  <kjetilja>
-
-        * Added missing link flag to make pycurl build on MacOS X (by Matt
-        King <matt@gnik.com>).
-
-2001-12-06  Kjetil Jacobsen  <kjetilja>
-
-        * Added CURLINFO_STARTTRANSFER_TIME and CURLOPT_FTP_USE_EPSV from
-        libcurl 7.9.2.
-
-2001-12-01  Markus F.X.J. Oberhumer <mfx>
-
-        * Added the 'test_stringio.py' file which demonstrates the use of
-        StringIO objects as callback.
-
-2001-12-01  Markus F.X.J. Oberhumer <mfx>
-
-        * setup.py: Do not remove entries from a list while iterating
-        over it.
-
-2001-11-29  Kjetil Jacobsen  <kjetilja>
-
-        * Added code in setup.py to install on Windows.  Requires some
-        manual configuration (by Tino Lange <Tino.Lange@gmx.de>).
-
-2001-11-27  Kjetil Jacobsen  <kjetilja>
-
-        * Improved detection of where libcurl is installed in setup.py.
-        Should make it easier to install pycurl when libcurl is not
-        located in regular lib/include paths.
-
-2001-11-05  Kjetil Jacobsen  <kjetilja>
-
-        * Some of the newer options to setopt were missing, this should
-        now be fixed.
-
-2001-11-04  Kjetil Jacobsen  <kjetilja>
-
-        * Exception handling has been improved and should no longer throw
-        spurious exceptions (by Markus F.X.J. Oberhumer
-        <markus@oberhumer.com>).
-
-2001-10-15  Kjetil Jacobsen  <kjetilja>
-
-        * Refactored the test_gtk.py script to avoid global variables.
-
-2001-10-12  Kjetil Jacobsen  <kjetilja>
-
-        * Added module docstrings, terse perhaps, but better than nothing.
-
-        * Added the 'basicfirst.py' file which is a Python version of the
-        corresponding Perl script by Daniel.
-
-        * PycURL now works properly under Python 1.5 and 1.6 (by Markus
-        F.X.J. Oberhumer <markus@oberhumer.com>).
-
-        * Allow C-functions and Python methods as callbacks (by Markus
-        F.X.J. Oberhumer <markus@oberhumer.com>).
-
-        * Allow None as success result of write, header and progress
-        callback invocations (by Markus F.X.J. Oberhumer
-        <markus@oberhumer.com>).
-
-        * Added the 'basicfirst2.py' file which demonstrates the use of a
-        class method as callback instead of just a function.
-
-2001-08-21  Kjetil Jacobsen  <kjetilja>
-
-        * Cleaned up the script with GNOME/PycURL integration.
-
-2001-08-20  Kjetil Jacobsen  <kjetilja>
-
-        * Added another test script for shipping XML-RPC requests which
-        uses py-xmlrpc to encode the arguments (tests/test_xmlrpc2.py).
-
-2001-08-20  Kjetil Jacobsen  <kjetilja>
-
-        * Added test script for using PycURL and GNOME (tests/test_gtk.py).
-
-2001-08-20  Kjetil Jacobsen  <kjetilja>
-
-        * Added test script for using XML-RPC (tests/test_xmlrpc.py).
-
-        * Added more comments to the test sources.
-
-2001-08-06  Kjetil Jacobsen  <kjetilja>
-
-        * Renamed module namespace to pycurl instead of curl.
-
-2001-08-06  Kjetil Jacobsen  <kjetilja>
-
-        * Set CURLOPT_VERBOSE to 0 by default.
-
-2001-06-29  Kjetil Jacobsen  <kjetilja>
-
-        * Updated INSTALL, curl version 7.8 or greater is now mandatory to
-        use pycurl.
-
-2001-06-13  Kjetil Jacobsen  <kjetilja>
-
-        * Set NOPROGRESS to 1 by default.
-
-2001-06-07  Kjetil Jacobsen  <kjetilja>
-
-        * Added global_init/cleanup.
-
-2001-06-06  Kjetil Jacobsen  <kjetilja>
-
-        * Added HEADER/PROGRESSFUNCTION callbacks (see files in tests/).
-
-        * Added PASSWDFUNCTION callback (untested).
-
-        * Added READFUNCTION callback (untested).
-
-2001-06-05  Kjetil Jacobsen  <kjetilja>
-
-        * WRITEFUNCTION callbacks now work (see tests/test_cb.py for details).
-
-        * Preliminary distutils installation.
-
-        * Added CLOSEPOLICY constants to module namespace.
-
-2001-06-04  Kjetil Jacobsen  <kjetilja>
-
-        * Return -1 on error from Python callback in WRITEFUNCTION callback.
-
-2001-06-01  Kjetil Jacobsen  <kjetilja>
-
-        * Moved source to src and tests to tests directory.
-
-2001-05-31  Kjetil Jacobsen  <kjetilja>
-
-        * Added better type checking for setopt.
-
-2001-05-30  Kjetil Jacobsen  <kjetilja>
-
-        * Moved code to sourceforge.
-
-        * Added getinfo support.
-
-
-# vi:ts=8:et
diff --git a/pycurl/INSTALL b/pycurl/INSTALL
deleted file mode 100644 (file)
index ef42cf6..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-NOTE: You need Python and libcurl installed on your system to use or
-build pycurl.  Some RPM distributions of curl/libcurl do not include
-everything necessary to build pycurl, in which case you need to
-install the developer specific RPM which is usually called curl-dev.
-
-
-Distutils
----------
-
-Assuming that distutils is installed (which it is by default on Python
-versions greater than 1.5.2) build and install pycurl with the
-following commands:
-
-    (if necessary, become root)
-    tar -zxvf pycurl-$VER.tar.gz
-    cd pycurl-$VER
-    python setup.py install
-
-$VER should be substituted with the version number, e.g. 7.10.5.
-
-Note that the installation script assumes that 'curl-config' can be
-located in your path setting.  If curl-config is installed outside
-your path or you want to force installation to use a particular
-version of curl-config, use the '--curl-config' commandline option to
-specify the location of curl-config.  Example:
-
-    python setup.py install --curl-config=/usr/local/bin/curl-config
-
-If libcurl is linked dynamically with pycurl, you may have to alter the
-LD_LIBRARY_PATH environment variable accordingly.  This normally
-applies only if there is more than one version of libcurl installed,
-e.g. one in /usr/lib and one in /usr/local/lib.
-
-
-Windows
--------
-
-When installing on Windows, you need to manually configure the path to
-the curl source tree, specified with the CURL_DIR variable in the file
-'setup.py'.  The CURL_DIR variable can also be set using the
-commandline option '--curl-dir' when invoking setup.py:
-
-    python setup.py install --curl-dir=c:\curl-7.10.5
-
diff --git a/pycurl/MANIFEST.in b/pycurl/MANIFEST.in
deleted file mode 100644 (file)
index f4e3837..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# MANIFEST.in
-# Manifest template for creating the source distribution.
-#
-
-include ChangeLog
-include COPYING
-include INSTALL
-include Makefile
-include README
-include TODO
-include MANIFEST.in
-include src/Makefile
-include src/pycurl.c
-include python/curl/*.py
-include examples/*.py
-include tests/*.py
-include doc/*.html
-include setup_win32_ssl.py
-
-# exclude unfinished test scripts
-#exclude tests/test_multi_vs_thread.py
diff --git a/pycurl/Makefile b/pycurl/Makefile
deleted file mode 100644 (file)
index 9b2369d..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# to use a specific python version call
-#   `make PYTHON=python2.2'
-#
-
-SHELL = /bin/sh
-
-PYTHON = python2.3
-PYTHON = python
-
-all build:
-       $(PYTHON) setup.py build
-
-build-7.10.8:
-       $(PYTHON) setup.py build --curl-config=/home/hosts/localhost/packages/curl-7.10.8/bin/curl-config
-
-test: build
-       $(PYTHON) tests/test_internals.py -q
-
-# (needs GNU binutils)
-strip: build
-       strip -p --strip-unneeded build/lib*/*.so
-       chmod -x build/lib*/*.so
-
-install install_lib:
-       $(PYTHON) setup.py $@
-
-clean:
-       -rm -rf build dist
-       -rm -f *.pyc *.pyo */*.pyc */*.pyo */*/*.pyc */*/*.pyo
-       -rm -f MANIFEST
-       cd src && $(MAKE) clean
-
-distclean: clean
-
-maintainer-clean: distclean
-
-dist sdist: distclean
-       $(PYTHON) setup.py sdist
-
-# target for maintainer
-windist: distclean
-       rm -rf build
-       python2.2 setup.py bdist_wininst
-       rm -rf build
-       python2.3 setup.py bdist_wininst
-       rm -rf build
-       python2.4 setup.py bdist_wininst
-       rm -rf build
-       python2.2 setup_win32_ssl.py bdist_wininst
-       rm -rf build
-       python2.3 setup_win32_ssl.py bdist_wininst
-       rm -rf build
-       python2.4 setup_win32_ssl.py bdist_wininst
-       rm -rf build
-
-
-.PHONY: all build test strip install install_lib clean distclean maintainer-clean dist sdist windist
-
-.NOEXPORT:
diff --git a/pycurl/PKG-INFO b/pycurl/PKG-INFO
deleted file mode 100644 (file)
index f0c0e97..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Metadata-Version: 1.0
-Name: pycurl
-Version: 7.13.1
-Summary: PycURL -- cURL library module for Python
-Home-page: http://pycurl.sourceforge.net/
-Author: Kjetil Jacobsen, Markus F.X.J. Oberhumer
-Author-email: kjetilja@cs.uit.no, markus@oberhumer.com
-License: GNU Lesser General Public License (LGPL)
-Description: 
-        This module provides Python bindings for the cURL library.
-Platform: All
diff --git a/pycurl/README b/pycurl/README
deleted file mode 100644 (file)
index bd04ab6..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-LICENSE
--------
-
-Copyright (C) 2001-2005 by Kjetil Jacobsen <kjetilja@cs.uit.no>
-Copyright (C) 2001-2005 by Markus F.X.J. Oberhumer <markus@oberhumer.com>
-
-PycURL is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-A full copy of the LGPL license is included in the file COPYING.
diff --git a/pycurl/TODO b/pycurl/TODO
deleted file mode 100644 (file)
index ed4afdf..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# $Id$
-# vi:ts=4:et
-
-If you want to hack on pycurl, here's our list of unresolved issues:
-
-
-NEW FEATURES/IMPROVEMENTS:
-
-    * Add docs to the high-level interface.
-
-    * Add more options to the undocumented and currently mostly useless
-      Curl.unsetopt() method. Have to carefully check the libcurl source
-      code for each option we want to support.
-
-    * curl_easy_reset() should probably be supported.  But we have to be
-      careful since curl_easy_reset() e.g. modifies callbacks and other
-      pointers which could leave pycurl and libcurl out of sync.
-
-
-DEFICIENICES:
-
-    * Using certain invalid options, it may be possible to cause a crash.
-      This is un-Pythonic behaviour, but you somewhere have to draw a line
-      between efficiency (and feature completeness) and safety.
-      There _are_ quite a number of internal error checks, but tracking and
-      catching all possible (deliberate) misuses is not a goal (and probably
-      impossible anyway, due to the complexity of libcurl).
diff --git a/pycurl/doc/callbacks.html b/pycurl/doc/callbacks.html
deleted file mode 100644 (file)
index b98e0a9..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <title>PyCurl: Callbacks</title>
-  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
-  <meta name="revisit-after" content="30 days" />
-  <meta name="robots" content="noarchive, index, follow" />
-</head>
-<body>
-
-<h1>Callbacks</h1>
-
-<p>For more fine-grained control, libcurl allows a
-number of callbacks to be associated with each connection. In
-pycurl, callbacks are defined using the <code>setopt()</code> method for
-Curl objects with options WRITEFUNCTION, READFUNCTION, HEADERFUNCTION,
-PROGRESSFUNCTION, IOCTLFUNCTION, or DEBUGFUNCTION. These options
-correspond to the libcurl options with CURLOPT_* prefix removed.  A
-callback in pycurl must be either a regular Python function, a class
-method or an extension type function.</p>
-
-<p>There are some limitations to some of the options which can be used
-concurrently with the pycurl callbacks compared to the libcurl callbacks.
-This is to allow different callback functions to be associated with
-different Curl objects.  More specifically, WRITEDATA cannot
-be used with WRITEFUNCTION, READDATA cannot be used with READFUNCTION,
-WRITEHEADER cannot be used with HEADERFUNCTION, PROGRESSDATA cannot be
-used with PROGRESSFUNCTION, IOCTLDATA cannot be used with IOCTLFUNCTION,
-and DEBUGDATA cannot be used with DEBUGFUNCTION.
-In practice, these limitations can be overcome by having a callback
-function be a class instance method and rather use the class instance
-attributes to store per object data such as files used in the callbacks.
-</p>
-
-The signature of each callback used in pycurl is as follows:<br/>
-<br/>
-<code>WRITEFUNCTION(</code><em>string</em><code>) </code><em>-&gt; number of characters written<br/>
-</em>
-<br/>
-<code>READFUNCTION(</code><em>number of characters to read</em><code>)</code><em>-&gt;
-string</em><br/>
-<br/>
-<code>HEADERFUNCTION(</code><em>string</em><code>)</code><em> -&gt; number of characters written<br/>
-</em><br/>
-<code>PROGRESSFUNCTION(</code><em>download total, downloaded, upload total, uploaded</em><code>) </code><em>-&gt; status</em><br/>
-<br/>
-<code>DEBUGFUNCTION(</code><em>debug message type, debug message string</em><code>)</code>
-<em>-&gt; None<br/></em>
-<br/>
-<code>IOCTLFUNCTION(</code><em>ioctl cmd</em><code>)</code>
-<em>-&gt; status<br/></em>
-<br/>
-<hr/>
-
-<h2>Example: Callbacks for document header and body</h2>
-
-<p>This example prints the header data to stderr and the body data to
-stdout.  Also note that neither callback returns the number of bytes
-written.  For WRITEFUNCTION and HEADERFUNCTION callbacks, returning
-None implies that all bytes where written.</p>
-
-<pre>
-    ## Callback function invoked when body data is ready
-    def body(buf):
-        # Print body data to stdout
-        import sys
-        sys.stdout.write(buf)
-        # Returning None implies that all bytes were written
-
-    ## Callback function invoked when header data is ready
-    def header(buf):
-        # Print header data to stderr
-        import sys
-        sys.stderr.write(buf)
-        # Returning None implies that all bytes were written
-
-    c = pycurl.Curl()
-    c.setopt(pycurl.URL, "http://www.python.org/")
-    c.setopt(pycurl.WRITEFUNCTION, body)
-    c.setopt(pycurl.HEADERFUNCTION, header)
-    c.perform()
-</pre>
-
-<h2>Example: Download/upload progress callback</h2>
-
-<p>This example shows how to use the progress callback.  When downloading
-a document, the arguments related to uploads are zero, and vice versa.</p>
-
-<pre>
-    ## Callback function invoked when download/upload has progress
-    def progress(download_t, download_d, upload_t, upload_d):
-        print "Total to download", download_t
-        print "Total downloaded", download_d
-        print "Total to upload", upload_t
-        print "Total uploaded", upload_d
-
-    c.setopt(c.URL, "http://slashdot.org/")
-    c.setopt(c.NOPROGRESS, 0)
-    c.setopt(c.PROGRESSFUNCTION, progress)
-    c.perform()
-</pre>
-
-<h2>Example: Debug callbacks</h2>
-
-<p>This example shows how to use the debug callback.  The debug message
-type is an integer indicating the type of debug message.  The
-VERBOSE option must be enabled for this callback to be invoked.</p>
-
-<pre>
-    def test(debug_type, debug_msg):
-        print "debug(%d): %s" % (debug_type, debug_msg)
-
-    c = pycurl.Curl()
-    c.setopt(pycurl.URL, "http://curl.haxx.se/")
-    c.setopt(pycurl.VERBOSE, 1)
-    c.setopt(pycurl.DEBUGFUNCTION, test)
-    c.perform()
-</pre>
-
-<h2>Other examples</h2>
-The pycurl distribution also contains a number of test scripts and
-examples which show how to use the various callbacks in libcurl.
-For instance, the file 'examples/file_upload.py' in the distribution contains
-example code for using READFUNCTION, 'tests/test_cb.py' shows
-WRITEFUNCTION and HEADERFUNCTION, 'tests/test_debug.py' shows DEBUGFUNCTION,
-and 'tests/test_getinfo.py' shows PROGRESSFUNCTION.</p>
-
-
-<hr />
-<p>
-  <a href="http://validator.w3.org/check/referer"><img align="right"
-     src="http://www.w3.org/Icons/valid-xhtml10"
-     alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a>
-  $Id$
-</p>
-
-</body>
-</html>
diff --git a/pycurl/doc/curlmultiobject.html b/pycurl/doc/curlmultiobject.html
deleted file mode 100644 (file)
index f944b18..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <title>PycURL: CurlMulti Objects</title>
-  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
-  <meta name="revisit-after" content="30 days" />
-  <meta name="robots" content="noarchive, index, follow" />
-</head>
-<body>
-
-<h1>CurlMulti Object</h1>
-
-<p>CurlMulti objects have the following methods: </p>
-
-<dl>
-<dt><code>close()</code> -&gt; <em>None</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_multi_cleanup.html"><code>curl_multi_cleanup()</code></a> in libcurl.
-This method is automatically called by pycurl when a CurlMulti object no
-longer has any references to it, but can also be called
-explicitly.</p>
-</dd>
-
-<dt><code>perform()</code> -&gt; <em>tuple of status and the number of active Curl objects</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_multi_perform.html"><code>curl_multi_perform()</code></a> in libcurl.</p>
-</dd>
-
-<dt><code> add_handle(</code><em>Curl object</em><code>) </code>-&gt; <em>None</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_multi_add_handle.html"><code>curl_multi_add_handle()</code></a> in libcurl.
-This method  adds an existing and valid Curl object to the CurlMulti
-object.</p>
-
-<p>IMPORTANT NOTE: add_handle does not implicitly add a Python reference
-to the Curl object (and thus does not increase the reference count on the Curl
-object).</p>
-</dd>
-
-<dt><code>remove_handle(</code><em>Curl object</em><code>)</code> -&gt; <em>None</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_multi_remove_handle.html"><code>curl_multi_remove_handle()</code></a> in libcurl.
-This method removes an existing and valid Curl object from the CurlMulti
-object.</p>
-
-<p>IMPORTANT NOTE: remove_handle does not implicitly remove a Python reference
-from the Curl object (and thus does not decrease the reference count on the Curl
-object).</p>
-</dd>
-
-<dt><code>fdset()</code> -&gt;
-<em>triple of lists with active file descriptors,
-readable,  writeable, exceptions.</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_multi_fdset.html"><code>curl_multi_fdset()</code></a> in libcurl.
-This method extracts  the file descriptor information from a CurlMulti object.
-The returned  lists can be used with the <code>select</code> module to
-poll for events.</p>
-
-<p>Example usage:</p>
-
-<pre>
-import pycurl
-c = pycurl.Curl()
-c.setopt(pycurl.URL, "http://curl.haxx.se")
-m = pycurl.CurlMulti()
-m.add_handle(c)
-while 1:
-    ret, num_handles = m.perform()
-    if ret != pycurl.E_CALL_MULTI_PERFORM: break
-while num_handles:
-    apply(select.select, m.fdset() + (1,))
-    while 1:
-        ret, num_handles = m.perform()
-        if ret != pycurl.E_CALL_MULTI_PERFORM: break
-</pre>
-</dd>
-
-<dt><code>select(</code><em>[timeout]</em><code>)</code> -&gt;
-<em>number of ready file descriptors or -1 on timeout</em></dt>
-<dd>
-<p>This is a convenience function which simplifies the combined
-use of <code>fdset()</code> and the <code>select</code> module.</p>
-
-<p>Example usage:</p>
-
-<pre>import pycurl
-c = pycurl.Curl()
-c.setopt(pycurl.URL, "http://curl.haxx.se")
-m = pycurl.CurlMulti()
-m.add_handle(c)
-while 1:
-    ret, num_handles = m.perform()
-    if ret != pycurl.E_CALL_MULTI_PERFORM: break
-while num_handles:
-    ret = m.select()
-    if ret == -1:  continue
-    while 1:
-        ret, num_handles = m.perform()
-        if ret != pycurl.E_CALL_MULTI_PERFORM: break
-</pre>
-</dd>
-
-<dt><code>info_read(</code><em>[max]</em><code>)</code> -&gt;
-<em>numberof queued messages, a list of successful objects, a list of
-failed objects</em></dt>
-<dd>
-<p>Corresponds to the
-<a href="http://curl.haxx.se/libcurl/c/curl_multi_info_read.html"><code>curl_multi_info_read()</code></a> function in libcurl.
-This method extracts at most <em>max</em> messages
-from the multi stack and returns them in two lists. The first
-list contains the handles which completed successfully and the second
-list contains a tuple <em>&lt;curl object, curl error number, curl
-error message&gt;</em> for each failed curl object. The number
-of queued messages after this method has been called is also
-returned.</p>
-</dd>
-</dl>
-
-<hr />
-<p>
-  <a href="http://validator.w3.org/check/referer"><img align="right"
-     src="http://www.w3.org/Icons/valid-xhtml10"
-     alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a>
-  $Id$
-</p>
-
-</body>
-</html>
diff --git a/pycurl/doc/curlobject.html b/pycurl/doc/curlobject.html
deleted file mode 100644 (file)
index 53497f6..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <title>PycURL: Curl Objects</title>
-  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
-  <meta name="revisit-after" content="30 days" />
-  <meta name="robots" content="noarchive, index, follow" />
-</head>
-<body>
-
-<h1>Curl Object</h1>
-
-<p>Curl objects have the following methods:</p>
-
-<dl>
-<dt><code>close()</code> -&gt; <em>None</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_easy_cleanup.html"><code>curl_easy_cleanup</code></a> in libcurl.
-This method is automatically called by pycurl when a Curl object no longer has
-any references to it, but can also be called explicitly.</p>
-</dd>
-
-<dt><code>perform()</code> -&gt; <em>None</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_easy_perform.html"><code>curl_easy_perform</code></a> in libcurl.</p>
-</dd>
-
-<dt><code>setopt(</code><em>option, value</em><code>)</code> -&gt; <em>None</em></dt>
-<dd>
-
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_easy_setopt.html"><code>curl_easy_setopt</code></a> in libcurl, where
-<em>option</em> is specified with the CURLOPT_* constants in libcurl,
-except that the CURLOPT_ prefix has been removed. The type for
-<em>value</em> depends on the option, and can be either a string,
-integer, long integer, file objects, lists, or functions.</p>
-
-<p>Example usage:</p>
-
-<pre>
-import pycurl
-c = pycurl.Curl()
-c.setopt(pycurl.URL, "http://www.python.org/")
-c.setopt(pycurl.HTTPHEADER, ["Accept:"])
-import StringIO
-b = StringIO.StringIO()
-c.setopt(pycurl.WRITEFUNCTION, b.write)
-c.setopt(pycurl.FOLLOWLOCATION, 1)
-c.setopt(pycurl.MAXREDIRS, 5)
-c.perform()
-print b.getvalue()
-...
-</pre>
-</dd>
-
-<dt><code>getinfo(</code><em>option</em><code>) </code>-&gt; <em>Result</em></dt>
-<dd>
-
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html"><code>curl_easy_getinfo</code></a> in libcurl, where
-<em>option</em> is the same as the CURLINFO_* constants in libcurl,
-except that the CURLINFO_ prefix has been removed.
-<em>Result</em> contains an integer, float or string, depending on
-which option is given. The <code>getinfo</code> method should
-not be called unless <code>perform</code> has been called and
-finished.</p>
-
-<p>Example usage:</p>
-
-<pre>
-import pycurl
-c = pycurl.Curl()
-c.setopt(pycurl.URL, "http://sf.net")
-c.setopt(pycurl.FOLLOWLOCATION, 1)
-c.perform()
-print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
-...
---&gt; 200 "http://sourceforge.net/"
-</pre>
-</dd>
-
-<dt><code>errstr()</code> -&gt; <em>String</em></dt>
-<dd>
-<p>Returns the internal libcurl error buffer of this handle as a string.</p>
-</dd>
-</dl>
-
-
-<hr />
-<p>
-  <a href="http://validator.w3.org/check/referer"><img align="right"
-     src="http://www.w3.org/Icons/valid-xhtml10"
-     alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a>
-  $Id$
-</p>
-
-</body>
-</html>
diff --git a/pycurl/doc/pycurl.html b/pycurl/doc/pycurl.html
deleted file mode 100644 (file)
index f1db42a..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <title>PycURL Documentation</title>
-  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
-  <meta name="revisit-after" content="30 days" />
-  <meta name="robots" content="noarchive, index, follow" />
-</head>
-<body>
-
-<h1><tt>pycurl</tt> &mdash; A Python interface to the cURL library</h1>
-
-<p>The pycurl package is a Python interface to libcurl (<a
-href="http://curl.haxx.se/libcurl/">http://curl.haxx.se/libcurl/</a>). pycurl
-has been successfully built and tested with Python versions from
-2.2 to the current 2.4.x releases.</p>
-
-<p>libcurl is a client-side URL transfer library supporting FTP, FTPS,
-HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP.  libcurl
-also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploads, proxies,
-cookies, basic authentication, file transfer resume of FTP sessions, HTTP
-proxy tunneling and more.</p>
-
-<p>All the functionality provided by libcurl can used through the
-pycurl interface. The following subsections describe how to use the
-pycurl interface, and assume familiarity with how libcurl works.  For
-information on how libcurl works, please consult the curl library web pages
-(<a href="http://curl.haxx.se/libcurl/c/">http://curl.haxx.se/libcurl/c/</a>).</p>
-
-<hr/>
-
-<h1>Module Functionality</h1>
-
-<dl>
-<dt><code>pycurl.global_init(</code><em>option</em><code>)</code> -&gt;<em>None</em></dt>
-
-<dd><p><em>option</em> is one of the constants
-pycurl.GLOBAL_SSL, pycurl.GLOBAL_WIN32, pycurl.GLOBAL_ALL,
-pycurl.GLOBAL_NOTHING, pycurl.GLOBAL_DEFAULT.  Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_global_init.html"><code>curl_global_init()</code></a> in libcurl.</p>
-</dd>
-
-<dt><code>pycurl.global_cleanup()</code> -&gt; <em>None</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_global_cleanup.html"><code>curl_global_cleanup()</code></a> in libcurl.</p>
-</dd>
-
-<dt><code>pycurl.version</code></dt>
-
-<dd><p>This is a string with version information on libcurl,
-corresponding to
-<a href="http://curl.haxx.se/libcurl/c/curl_version.html"><code>curl_version()</code></a> in libcurl.</p>
-
-<p>Example usage:</p>
-<pre>
->>> import pycurl
->>> pycurl.version
-'libcurl/7.12.3 OpenSSL/0.9.7e zlib/1.2.2.1 libidn/0.5.12'
-</pre>
-</dd>
-
-<dt><code>pycurl.version_info()</code> -&gt; <em>Tuple</em></dt>
-<dd>
-<p>Corresponds to
-<a href="http://curl.haxx.se/libcurl/c/curl_version_info.html"><code>curl_version_info()</code></a> in libcurl.
-Returns a tuple of information which is similar to the
-<code>curl_version_info_data</code> struct returned by
-<code>curl_version_info()</code> in libcurl.</p>
-
-<p>Example usage:</p>
-<pre>
->>> import pycurl
->>> pycurl.version_info()
-(2, '7.12.3', 461827, 'i586-pc-linux-gnu', 1565, 'OpenSSL/0.9.7e', 9465951,
-'1.2.2.1', ('ftp', 'gopher', 'telnet', 'dict', 'ldap', 'http', 'file',
-'https', 'ftps'), None, 0, '0.5.12')
-</pre>
-</dd>
-
-<dt><code>pycurl.Curl()</code> -&gt; <em>Curl object</em></dt>
-<dd>
-<p>This function creates a new
-<a href="curlobject.html">Curl object</a> which corresponds to a
-<code>CURL</code> handle in libcurl. Curl objects automatically
-set CURLOPT_VERBOSE to 0, CURLOPT_NOPROGRESS to 1,
-provide a default CURLOPT_USERAGENT and setup
-CURLOPT_ERRORBUFFER to point to a private error buffer.</p>
-</dd>
-
-<dt><code>pycurl.CurlMulti()</code> -&gt; <em>CurlMulti object</em></dt>
-<dd>
-<p>This function creates a new
-<a href="curlmultiobject.html">CurlMulti object</a> which corresponds to
-a <code>CURLM</code> handle in libcurl.</p>
-</dd>
-</dl>
-
-<hr/>
-
-<h1>Subsections</h1>
-
-<ul>
-  <li><a href="curlobject.html">Curl objects</a></li>
-  <li><a href="curlmultiobject.html">CurlMulti objects</a></li>
-  <li><a href="callbacks.html">Callbacks</a></li>
-</ul>
-
-<hr />
-<p>
-  <a href="http://validator.w3.org/check/referer"><img align="right"
-     src="http://www.w3.org/Icons/valid-xhtml10"
-     alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a>
-  $Id$
-</p>
-
-</body>
-</html>
diff --git a/pycurl/examples/basicfirst.py b/pycurl/examples/basicfirst.py
deleted file mode 100644 (file)
index af59405..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import sys
-import pycurl
-
-class Test:
-    def __init__(self):
-        self.contents = ''
-
-    def body_callback(self, buf):
-        self.contents = self.contents + buf
-
-print >>sys.stderr, 'Testing', pycurl.version
-
-t = Test()
-c = pycurl.Curl()
-c.setopt(c.URL, 'http://curl.haxx.se/dev/')
-c.setopt(c.WRITEFUNCTION, t.body_callback)
-c.perform()
-c.close()
-
-print t.contents
diff --git a/pycurl/examples/file_upload.py b/pycurl/examples/file_upload.py
deleted file mode 100644 (file)
index a514c1c..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import os, sys
-import pycurl
-
-# Class which holds a file reference and the read callback
-class FileReader:
-    def __init__(self, fp):
-        self.fp = fp
-    def read_callback(self, size):
-        return self.fp.read(size)
-
-# Check commandline arguments
-if len(sys.argv) < 3:
-    print "Usage: %s <url> <file to upload>" % sys.argv[0]
-    raise SystemExit
-url = sys.argv[1]
-filename = sys.argv[2]
-
-if not os.path.exists(filename):
-    print "Error: the file '%s' does not exist" % filename
-    raise SystemExit
-
-# Initialize pycurl
-c = pycurl.Curl()
-c.setopt(pycurl.URL, url)
-c.setopt(pycurl.UPLOAD, 1)
-
-# Two versions with the same semantics here, but the filereader version
-# is useful when you have to process the data which is read before returning
-if 1:
-    c.setopt(pycurl.READFUNCTION, FileReader(open(filename, 'rb')).read_callback)
-else:
-    c.setopt(pycurl.READFUNCTION, open(filename, 'rb').read)
-
-# Set size of file to be uploaded.
-filesize = os.path.getsize(filename)
-c.setopt(pycurl.INFILESIZE, filesize)
-
-# Start transfer
-print 'Uploading file %s to url %s' % (filename, url)
-c.perform()
-c.close()
diff --git a/pycurl/examples/linksys.py b/pycurl/examples/linksys.py
deleted file mode 100755 (executable)
index a60eba1..0000000
+++ /dev/null
@@ -1,563 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-#
-# linksys.py -- program settings on a Linkys router
-#
-# This tool is designed to help you recover from the occasional episodes
-# of catatonia that afflict Linksys boxes. It allows you to batch-program
-# them rather than manually entering values to the Web interface.  Commands
-# are taken from the command line first, then standard input.
-#
-# The somewhat spotty coverage of status queries is because I only did the
-# ones that were either (a) easy, or (b) necessary.  If you want to know the
-# status of the box, look at the web interface.
-#
-# This code has been tested against the following hardware:
-#
-#   Hardware    Firmware
-#   ----------  ---------------------
-#   BEFW11S4v2  1.44.2.1, Dec 20 2002
-#
-# The code is, of course, sensitive to changes in the names of CGI pages
-# and field names.
-#
-# Note: to make the no-arguments form work, you'll need to have the following
-# entry in your ~/.netrc file.  If you have changed the router IP address or
-# name/password, modify accordingly.
-#
-# machine 192.168.1.1
-#   login ""
-#   password admin
-#
-# By Eric S. Raymond, August April 2003.  All rites reversed.
-
-import sys, re, copy, curl, exceptions
-
-class LinksysError(exceptions.Exception):
-    def __init__(self, *args):
-        self.args = args
-
-class LinksysSession:
-    months = 'Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec'
-
-    WAN_CONNECT_AUTO = '1'
-    WAN_CONNECT_STATIC = '2'
-    WAN_CONNECT_PPOE = '3'
-    WAN_CONNECT_RAS = '4'
-    WAN_CONNECT_PPTP = '5'
-    WAN_CONNECT_HEARTBEAT = '6'
-
-    # Substrings to check for on each page load.
-    # This may enable us to detect when a firmware change has hosed us.
-    check_strings = {
-        "":           "basic setup functions",
-        "Passwd.htm": "For security reasons,",
-        "DHCP.html":  "You can configure the router to act as a DHCP",
-        "Log.html":   "There are some log settings and lists in this page.",
-        "Forward.htm":"Port forwarding can be used to set up public services",
-        }
-
-    def __init__(self):
-        self.actions = []
-        self.host = "http://192.168.1.1"
-        self.verbosity = False
-        self.pagecache = {}
-
-    def set_verbosity(self, flag):
-        self.verbosity = flag
-
-    # This is not a performance hack -- we need the page cache to do
-    # sanity checks at configure time.
-    def cache_load(self, page):
-        if page not in self.pagecache:
-            fetch = curl.Curl(self.host)
-            fetch.set_verbosity(self.verbosity)
-            fetch.get(page)
-            self.pagecache[page] = fetch.body()
-            if fetch.answered("401"):
-                raise LinksysError("authorization failure.", True)
-            elif not fetch.answered(LinksysSession.check_strings[page]):
-                del self.pagecache[page]
-                raise LinksysError("check string for page %s missing!" % os.path.join(self.host, page), False)
-            fetch.close()
-    def cache_flush(self):
-        self.pagecache = {}
-
-    # Primitives
-    def screen_scrape(self, page, template):
-        self.cache_load(page)
-        match = re.compile(template).search(self.pagecache[page])
-        if match:
-            result = match.group(1)
-        else:
-            result = None
-        return result
-    def get_MAC_address(self, page, prefix):
-        return self.screen_scrape("", prefix+r":[^M]*\(MAC Address: *([^)]*)")
-    def set_flag(page, flag, value):
-        if value:
-            self.actions.append(page, flag, "1")
-        else:
-            self.actions.append(page, flag, "0")
-    def set_IP_address(self, page, cgi, role, ip):
-        ind = 0
-        for octet in ip.split("."):
-            self.actions.append(("", "F1", role + `ind+1`, octet))
-            ind += 1
-
-    # Scrape configuration data off the main page
-    def get_firmware_version(self):
-        # This is fragile.  There is no distinguishing tag before the firmware
-        # version, so we have to key off the pattern of the version number.
-        # Our model is ">1.44.2.1, Dec 20 2002<"
-        return self.screen_scrape("", ">([0-9.v]*, (" + \
-                                  LinksysSession.months + ")[^<]*)<", )
-    def get_LAN_MAC(self):
-        return self.get_MAC_address("", r"LAN IP Address")
-    def get_Wireless_MAC(self):
-        return self.get_MAC_address("", r"Wireless")
-    def get_WAN_MAC(self):
-        return self.get_MAC_address("", r"WAN Connection Type")
-
-    # Set configuration data on the main page
-    def set_host_name(self, name):
-        self.actions.append(("", "hostName", name))
-    def set_domain_name(self, name):
-        self.actions.append(("", "DomainName", name))
-    def set_LAN_IP(self, ip):
-        self.set_IP_address("", "ipAddr", ip)
-    def set_LAN_netmask(self, ip):
-        if not ip.startswith("255.255.255."):
-            raise ValueError
-        lastquad = ip.split(".")[-1]
-        if lastquad not in ("0", "128", "192", "240", "252"):
-            raise ValueError
-        self.actions.append("", "netMask", lastquad)
-    def set_wireless(self, flag):
-        self.set_flag("", "wirelessStatus")
-    def set_SSID(self, ssid):
-        self.actions.append(("", "wirelessESSID", ssid))
-    def set_SSID_broadcast(self, flag):
-        self.set_flag("", "broadcastSSID")
-    def set_channel(self, channel):
-        self.actions.append(("", "wirelessChannel", channel))
-    def set_WEP(self, flag):
-        self.set_flag("", "WepType")
-    # FIXME: Add support for setting WEP keys
-    def set_connection_type(self, type):
-        self.actions.append(("", "WANConnectionType", type))
-    def set_WAN_IP(self, ip):
-        self.set_IP_address("", "aliasIP", ip)
-    def set_WAN_netmask(self, ip):
-        self.set_IP_address("", "aliasMaskIP", ip)
-    def set_WAN_gateway_address(self, ip):
-        self.set_IP_address("", "routerIP", ip)
-    def set_DNS_server(self, index, ip):
-        self.set_IP_address("", "dns" + "ABC"[index], ip)
-
-    # Set configuration data on the password page
-    def set_password(self, str):
-        self.actions.append("Passwd.htm","sysPasswd", str)
-        self.actions.append("Passwd.htm","sysPasswdConfirm", str)
-    def set_UPnP(self, flag):
-        self.set_flag("Passwd.htm", "UPnP_Work")
-    def reset(self):
-        self.actions.append("Passwd.htm", "FactoryDefaults")
-
-    # DHCP features
-    def set_DHCP(self, flag):
-        if flag:
-            self.actions.append("DHCP.htm","dhcpStatus","Enable")
-        else:
-            self.actions.append("DHCP.htm","dhcpStatus","Disable")
-    def set_DHCP_starting_IP(self, val):
-        self.actions.append("DHCP.htm","dhcpS4", str(val))
-    def set_DHCP_users(self, val):
-        self.actions.append("DHCP.htm","dhcpLen", str(val))
-    def set_DHCP_lease_time(self, val):
-        self.actions.append("DHCP.htm","leaseTime", str(val))
-    def set_DHCP_DNS_server(self, index, ip):
-        self.set_IP_address("DHCP.htm", "dns" + "ABC"[index], ip)
-    # FIXME: add support for setting WINS key
-
-    # Logging features
-    def set_logging(self, flag):
-        if flag:
-            self.actions.append("Log.htm", "rLog", "Enable")
-        else:
-            self.actions.append("Log.htm", "rLog", "Disable")
-    def set_log_address(self, val):
-        self.actions.append("DHCP.htm","trapAddr3", str(val))
-
-    # The AOL parental control flag is not supported by design.
-
-    # FIXME: add Filters and other advanced features
-
-    def configure(self):
-        "Write configuration changes to the Linksys."
-        if self.actions:
-            fields = []
-            self.cache_flush()
-            for (page, field, value) in self.actions:
-                self.cache_load(page)
-                if self.pagecache[page].find(field) == -1:
-                    print >>sys.stderr, "linksys: field %s not found where expected in page %s!" % (field, os.path.join(self.host, page))
-                    continue
-                else:
-                    fields.append((field, value))
-            # Clearing the action list before fieldsping is deliberate.
-            # Otherwise we could get permanently wedged by a 401.
-            self.actions = []
-            transaction = curl.Curl(self.host)
-            transaction.set_verbosity(self.verbosity)
-            transaction.get("Gozila.cgi", tuple(fields))
-            transaction.close()
-
-if __name__ == "__main__":
-    import os, cmd
-
-    class LinksysInterpreter(cmd.Cmd):
-        """Interpret commands to perform LinkSys programming actions."""
-        def __init__(self):
-            self.session = LinksysSession()
-            if os.isatty(0):
-                import readline
-                print "Type ? or `help' for help."
-                self.prompt = self.session.host + ": "
-            else:
-                self.prompt = ""
-                print "Bar1"
-
-        def flag_command(self, func):
-            if line.strip() in ("on", "enable", "yes"):
-                func(True)
-            elif line.strip() in ("off", "disable", "no"):
-                func(False)
-            else:
-                print >>sys.stderr, "linksys: unknown switch value"
-            return 0
-
-        def do_connect(self, line):
-            newhost = line.strip()
-            if newhost:
-                self.session.host = newhost
-                self.session.cache_flush()
-                self.prompt = self.session.host + ": "
-            else:
-                print self.session.host
-            return 0
-        def help_connect(self):
-            print "Usage: connect [<hostname-or-IP>]"
-            print "Connect to a Linksys by name or IP address."
-            print "If no argument is given, print the current host."
-
-        def do_status(self, line):
-            self.session.cache_load("")
-            if "" in self.session.pagecache:
-                print "Firmware:", self.session.get_firmware_version()
-                print "LAN MAC:", self.session.get_LAN_MAC()
-                print "Wireless MAC:", self.session.get_Wireless_MAC()
-                print "WAN MAC:", self.session.get_WAN_MAC()
-                print "."
-            return 0
-        def help_status(self):
-            print "Usage: status"
-            print "The status command shows the status of the Linksys."
-            print "It is mainly useful as a sanity check to make sure"
-            print "the box is responding correctly."
-
-        def do_verbose(self, line):
-            self.flag_command(self.session.set_verbosity)
-        def help_verbose(self):
-            print "Usage: verbose {on|off|enable|disable|yes|no}"
-            print "Enables display of HTTP requests."
-
-        def do_host(self, line):
-            self.session.set_host_name(line)
-            return 0
-        def help_host(self):
-            print "Usage: host <hostname>"
-            print "Sets the Host field to be queried by the ISP."
-
-        def do_domain(self, line):
-            print "Usage: host <domainname>"
-            self.session.set_domain_name(line)
-            return 0
-        def help_domain(self):
-            print "Sets the Domain field to be queried by the ISP."
-
-        def do_lan_address(self, line):
-            self.session.set_LAN_IP(line)
-            return 0
-        def help_lan_address(self):
-            print "Usage: lan_address <ip-address>"
-            print "Sets the LAN IP address."
-
-        def do_lan_netmask(self, line):
-            self.session.set_LAN_netmask(line)
-            return 0
-        def help_lan_netmask(self):
-            print "Usage: lan_netmask <ip-mask>"
-            print "Sets the LAN subnetwork mask."
-
-        def do_wireless(self, line):
-            self.flag_command(self.session.set_wireless)
-            return 0
-        def help_wireless(self):
-            print "Usage: wireless {on|off|enable|disable|yes|no}"
-            print "Switch to enable or disable wireless features."
-
-        def do_ssid(self, line):
-            self.session.set_SSID(line)
-            return 0
-        def help_ssid(self):
-            print "Usage: ssid <string>"
-            print "Sets the SSID used to control wireless access."
-
-        def do_ssid_broadcast(self, line):
-            self.flag_command(self.session.set_SSID_broadcast)
-            return 0
-        def help_ssid_broadcast(self):
-            print "Usage: ssid_broadcast {on|off|enable|disable|yes|no}"
-            print "Switch to enable or disable SSID broadcast."
-
-        def do_channel(self, line):
-            self.session.set_channel(line)
-            return 0
-        def help_channel(self):
-            print "Usage: channel <number>"
-            print "Sets the wireless channel."
-
-        def do_wep(self, line):
-            self.flag_command(self.session.set_WEP)
-            return 0
-        def help_wep(self):
-            print "Usage: wep {on|off|enable|disable|yes|no}"
-            print "Switch to enable or disable WEP security."
-
-        def do_wan_type(self, line):
-            try:
-                type=eval("LinksysSession.WAN_CONNECT_"+line.strip().upper())
-                self.session.set_connection_type(type)
-            except ValueError:
-                print >>sys.stderr, "linksys: unknown connection type."
-            return 0
-        def help_wan_type(self):
-            print "Usage: wan_type {auto|static|ppoe|ras|pptp|heartbeat}"
-            print "Set the WAN connection type."
-
-        def do_wan_address(self, line):
-            self.session.set_WAN_IP(line)
-            return 0
-        def help_wan_address(self):
-            print "Usage: wan_address <ip-address>"
-            print "Sets the WAN IP address."
-
-        def do_wan_netmask(self, line):
-            self.session.set_WAN_netmask(line)
-            return 0
-        def help_wan_netmask(self):
-            print "Usage: wan_netmask <ip-mask>"
-            print "Sets the WAN subnetwork mask."
-
-        def do_wan_gateway(self, line):
-            self.session.set_WAN_gateway(line)
-            return 0
-        def help_wan_gateway(self):
-            print "Usage: wan_gateway <ip-address>"
-            print "Sets the LAN subnetwork mask."
-
-        def do_dns(self, line):
-            (index, address) = line.split()
-            if index in ("1", "2", "3"):
-                self.session.set_DNS_server(eval(index), address)
-            else:
-                print >>sys.stderr, "linksys: server index out of bounds."
-            return 0
-        def help_dns(self):
-            print "Usage: dns {1|2|3} <ip-mask>"
-            print "Sets a primary, secondary, or tertiary DNS server address."
-
-        def do_password(self, line):
-            self.session.set_password(line)
-            return 0
-        def help_password(self):
-            print "Usage: password <string>"
-            print "Sets the router password."
-
-        def do_upnp(self, line):
-            self.flag_command(self.session.set_UPnP)
-            return 0
-        def help_upnp(self):
-            print "Usage: upnp {on|off|enable|disable|yes|no}"
-            print "Switch to enable or disable Universal Plug and Play."
-
-        def do_reset(self, line):
-            self.session.reset()
-        def help_reset(self):
-            print "Usage: reset"
-            print "Reset Linksys settings to factory defaults."
-
-        def do_dhcp(self, line):
-            self.flag_command(self.session.set_DHCP)
-        def help_dhcp(self):
-            print "Usage: dhcp {on|off|enable|disable|yes|no}"
-            print "Switch to enable or disable DHCP features."
-
-        def do_dhcp_start(self, line):
-            self.session.set_DHCP_starting_IP(line)
-        def help_dhcp_start(self):
-            print "Usage: dhcp_start <number>"
-            print "Set the start address of the DHCP pool."
-
-        def do_dhcp_users(self, line):
-            self.session.set_DHCP_users(line)
-        def help_dhcp_users(self):
-            print "Usage: dhcp_users <number>"
-            print "Set number of address slots to allocate in the DHCP pool."
-
-        def do_dhcp_lease(self, line):
-            self.session.set_DHCP_lease(line)
-        def help_dhcp_lease(self):
-            print "Usage: dhcp_lease <number>"
-            print "Set number of address slots to allocate in the DHCP pool."
-
-        def do_dhcp_dns(self, line):
-            (index, address) = line.split()
-            if index in ("1", "2", "3"):
-                self.session.set_DHCP_DNS_server(eval(index), address)
-            else:
-                print >>sys.stderr, "linksys: server index out of bounds."
-            return 0
-        def help_dhcp_dns(self):
-            print "Usage: dhcp_dns {1|2|3} <ip-mask>"
-            print "Sets primary, secondary, or tertiary DNS server address."
-
-        def do_logging(self, line):
-            self.flag_command(self.session.set_logging)
-        def help_logging(self):
-            print "Usage: logging {on|off|enable|disable|yes|no}"
-            print "Switch to enable or disable session logging."
-
-        def do_log_address(self, line):
-            self.session.set_Log_address(line)
-        def help_log_address(self):
-            print "Usage: log_address <number>"
-            print "Set the last quad of the address to which to log."
-
-        def do_configure(self, line):
-            self.session.configure()
-            return 0
-        def help_configure(self):
-            print "Usage: configure"
-            print "Writes the configuration to the Linksys."
-
-        def do_cache(self, line):
-            print self.session.pagecache
-        def help_cache(self):
-            print "Usage: cache"
-            print "Display the page cache."
-
-        def do_quit(self, line):
-            return 1
-        def help_quit(self, line):
-            print "The quit command ends your linksys session without"
-            print "writing configuration changes to the Linksys."
-        def do_EOF(self, line):
-            print ""
-            self.session.configure()
-            return 1
-        def help_EOF(self):
-            print "The EOF command writes the configuration to the linksys"
-            print "and ends your session."
-
-        def default(self, line):
-            """Pass the command through to be executed by the shell."""
-            os.system(line)
-            return 0
-
-        def help_help(self):
-            print "On-line help is available through this command."
-            print "? is a convenience alias for help."
-
-        def help_introduction(self):
-            print """\
-
-This program supports changing the settings on Linksys blue-box routers.  This
-capability may come in handy when they freeze up and have to be reset.  Though
-it can be used interactively (and will command-prompt when standard input is a
-terminal) it is really designed to be used in batch mode. Commands are taken
-from the command line first, then standard input.
-
-By default, it is assumed that the Linksys is at http://192.168.1.1, the
-default LAN address.  You can connect to a different address or IP with the
-'connect' command.  Note that your .netrc must contain correct user/password
-credentials for the router.  The entry corresponding to the defaults is:
-
-machine 192.168.1.1
-    login ""
-    password admin
-
-Most commands queue up changes but don't actually send them to the Linksys.
-You can force pending changes to be written with 'configure'.  Otherwise, they
-will be shipped to the Linksys at the end of session (e.g.  when the program
-running in batch mode encounters end-of-file or you type a control-D).  If you
-end the session with `quit', pending changes will be discarded.
-
-For more help, read the topics 'wan', 'lan', and 'wireless'."""
-
-        def help_lan(self):
-            print """\
-The `lan_address' and `lan_netmask' commands let you set the IP location of
-the Linksys on your LAN, or inside.  Normally you'll want to leave these
-untouched."""
-
-        def help_wan(self):
-            print """\
-The WAN commands become significant if you are using the BEFSR41 or any of
-the other Linksys boxes designed as DSL or cable-modem gateways.  You will
-need to use `wan_type' to declare how you expect to get your address.
-
-If your ISP has issued you a static address, you'll need to use the
-`wan_address', `wan_netmask', and `wan_gateway' commands to set the address
-of the router as seen from the WAN, the outside. In this case you will also
-need to use the `dns' command to declare which remote servers your DNS
-requests should be forwarded to.
-
-Some ISPs may require you to set host and domain for use with dynamic-address
-allocation."""
-
-        def help_wireless(self):
-            print """\
-The channel, ssid, ssid_broadcast, wep, and wireless commands control
-wireless routing."""
-
-        def help_switches(self):
-            print "Switches may be turned on with 'on', 'enable', or 'yes'."
-            print "Switches may be turned off with 'off', 'disable', or 'no'."
-            print "Switch commands include: wireless, ssid_broadcast."
-
-        def help_addresses(self):
-            print "An address argument must be a valid IP address;"
-            print "four decimal numbers separated by dots, each "
-            print "between 0 and 255."
-
-        def emptyline(self):
-            pass
-
-    interpreter = LinksysInterpreter()
-    for arg in sys.argv[1:]:
-        interpreter.onecmd(arg)
-    fatal = False
-    while not fatal:
-        try:
-            interpreter.cmdloop()
-            fatal = True
-        except LinksysError, (message, fatal):
-            print "linksys:", message
-
-# The following sets edit modes for GNU EMACS
-# Local Variables:
-# mode:python
-# End:
diff --git a/pycurl/examples/retriever-multi.py b/pycurl/examples/retriever-multi.py
deleted file mode 100644 (file)
index 2ec3f9a..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-#
-# Usage: python retriever-multi.py <file with URLs to fetch> [<# of
-#          concurrent connections>]
-#
-
-import sys
-import pycurl
-
-# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
-# the libcurl tutorial for more info.
-try:
-    import signal
-    from signal import SIGPIPE, SIG_IGN
-    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
-except ImportError:
-    pass
-
-
-# Get args
-num_conn = 10
-try:
-    if sys.argv[1] == "-":
-        urls = sys.stdin.readlines()
-    else:
-        urls = open(sys.argv[1]).readlines()
-    if len(sys.argv) >= 3:
-        num_conn = int(sys.argv[2])
-except:
-    print "Usage: %s <file with URLs to fetch> [<# of concurrent connections>]" % sys.argv[0]
-    raise SystemExit
-
-
-# Make a queue with (url, filename) tuples
-queue = []
-for url in urls:
-    url = url.strip()
-    if not url or url[0] == "#":
-        continue
-    filename = "doc_%03d.dat" % (len(queue) + 1)
-    queue.append((url, filename))
-
-
-# Check args
-assert queue, "no URLs given"
-num_urls = len(queue)
-num_conn = min(num_conn, num_urls)
-assert 1 <= num_conn <= 10000, "invalid number of concurrent connections"
-print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
-print "----- Getting", num_urls, "URLs using", num_conn, "connections -----"
-
-
-# Pre-allocate a list of curl objects
-m = pycurl.CurlMulti()
-m.handles = []
-for i in range(num_conn):
-    c = pycurl.Curl()
-    c.fp = None
-    c.setopt(pycurl.FOLLOWLOCATION, 1)
-    c.setopt(pycurl.MAXREDIRS, 5)
-    c.setopt(pycurl.CONNECTTIMEOUT, 30)
-    c.setopt(pycurl.TIMEOUT, 300)
-    c.setopt(pycurl.NOSIGNAL, 1)
-    m.handles.append(c)
-
-
-# Main loop
-freelist = m.handles[:]
-num_processed = 0
-while num_processed < num_urls:
-    # If there is an url to process and a free curl object, add to multi stack
-    while queue and freelist:
-        url, filename = queue.pop(0)
-        c = freelist.pop()
-        c.fp = open(filename, "wb")
-        c.setopt(pycurl.URL, url)
-        c.setopt(pycurl.WRITEDATA, c.fp)
-        m.add_handle(c)
-        # store some info
-        c.filename = filename
-        c.url = url
-    # Run the internal curl state machine for the multi stack
-    while 1:
-        ret, num_handles = m.perform()
-        if ret != pycurl.E_CALL_MULTI_PERFORM:
-            break
-    # Check for curl objects which have terminated, and add them to the freelist
-    while 1:
-        num_q, ok_list, err_list = m.info_read()
-        for c in ok_list:
-            c.fp.close()
-            c.fp = None
-            m.remove_handle(c)
-            print "Success:", c.filename, c.url, c.getinfo(pycurl.EFFECTIVE_URL)
-            freelist.append(c)
-        for c, errno, errmsg in err_list:
-            c.fp.close()
-            c.fp = None
-            m.remove_handle(c)
-            print "Failed: ", c.filename, c.url, errno, errmsg
-            freelist.append(c)
-        num_processed = num_processed + len(ok_list) + len(err_list)
-        if num_q == 0:
-            break
-    # Currently no more I/O is pending, could do something in the meantime
-    # (display a progress bar, etc.).
-    # We just call select() to sleep until some more data is available.
-    m.select()
-
-
-# Cleanup
-for c in m.handles:
-    if c.fp is not None:
-        c.fp.close()
-        c.fp = None
-    c.close()
-m.close()
-
diff --git a/pycurl/examples/retriever.py b/pycurl/examples/retriever.py
deleted file mode 100644 (file)
index 2c91d07..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-#
-# Usage: python retriever.py <file with URLs to fetch> [<# of
-#          concurrent connections>]
-#
-
-import sys, threading, Queue
-import pycurl
-
-# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
-# the libcurl tutorial for more info.
-try:
-    import signal
-    from signal import SIGPIPE, SIG_IGN
-    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
-except ImportError:
-    pass
-
-
-# Get args
-num_conn = 10
-try:
-    if sys.argv[1] == "-":
-        urls = sys.stdin.readlines()
-    else:
-        urls = open(sys.argv[1]).readlines()
-    if len(sys.argv) >= 3:
-        num_conn = int(sys.argv[2])
-except:
-    print "Usage: %s <file with URLs to fetch> [<# of concurrent connections>]" % sys.argv[0]
-    raise SystemExit
-
-
-# Make a queue with (url, filename) tuples
-queue = Queue.Queue()
-for url in urls:
-    url = url.strip()
-    if not url or url[0] == "#":
-        continue
-    filename = "doc_%03d.dat" % (len(queue.queue) + 1)
-    queue.put((url, filename))
-
-
-# Check args
-assert queue.queue, "no URLs given"
-num_urls = len(queue.queue)
-num_conn = min(num_conn, num_urls)
-assert 1 <= num_conn <= 10000, "invalid number of concurrent connections"
-print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
-print "----- Getting", num_urls, "URLs using", num_conn, "connections -----"
-
-
-class WorkerThread(threading.Thread):
-    def __init__(self, queue):
-        threading.Thread.__init__(self)
-        self.queue = queue
-
-    def run(self):
-        while 1:
-            try:
-                url, filename = self.queue.get_nowait()
-            except Queue.Empty:
-                raise SystemExit
-            fp = open(filename, "wb")
-            curl = pycurl.Curl()
-            curl.setopt(pycurl.URL, url)
-            curl.setopt(pycurl.FOLLOWLOCATION, 1)
-            curl.setopt(pycurl.MAXREDIRS, 5)
-            curl.setopt(pycurl.CONNECTTIMEOUT, 30)
-            curl.setopt(pycurl.TIMEOUT, 300)
-            curl.setopt(pycurl.NOSIGNAL, 1)
-            curl.setopt(pycurl.WRITEDATA, fp)
-            try:
-                curl.perform()
-            except:
-                import traceback
-                traceback.print_exc(file=sys.stderr)
-                sys.stderr.flush()
-            curl.close()
-            fp.close()
-            sys.stdout.write(".")
-            sys.stdout.flush()
-
-
-# Start a bunch of threads
-threads = []
-for dummy in range(num_conn):
-    t = WorkerThread(queue)
-    t.start()
-    threads.append(t)
-
-
-# Wait for all threads to finish
-for thread in threads:
-    thread.join()
diff --git a/pycurl/examples/sfquery.py b/pycurl/examples/sfquery.py
deleted file mode 100644 (file)
index 0c63f61..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-#
-# sfquery -- Source Forge query script using the ClientCGI high-level interface
-#
-# Retrieves a SourceForge XML export object for a given project.
-# Specify the *numeric* project ID. the user name, and the password,
-# as arguments. If you have a valid ~/.netrc entry for sourceforge.net,
-# you can just give the project ID.
-#
-# By Eric S. Raymond, August 2002.  All rites reversed.
-
-import os, sys, netrc
-import curl
-
-assert sys.version[:3] >= "2.2", "requires Python 2.2 or better"
-
-class SourceForgeUserSession(curl.Curl):
-    # SourceForge-specific methods.  Sensitive to changes in site design.
-    def login(self, name, password):
-        "Establish a login session."
-        self.post("account/login.php", (("form_loginname", name),
-                                        ("form_pw", password),
-                                        ("return_to", ""),
-                                        ("stay_in_ssl", "1"),
-                                        ("login", "Login With SSL")))
-    def logout(self):
-        "Log out of SourceForge."
-        self.get("account/logout.php")
-    def fetch_xml(self, numid):
-        self.get("export/xml_export.php?group_id=%s" % numid)
-
-if __name__ == "__main__":
-    if len(sys.argv) == 1:
-        project_id = '28236'    # PyCurl project ID
-    else:
-        project_id = sys.argv[1]
-    # Try to grab authenticators out of your .netrc
-    try:
-        auth = netrc.netrc().authenticators("sourceforge.net")
-        name, account, password = auth
-    except:
-        name = sys.argv[2]
-        password = sys.argv[3]
-    session = SourceForgeUserSession("https://sourceforge.net/")
-    session.set_verbosity(0)
-    session.login(name, password)
-    # Login could fail.
-    if session.answered("Invalid Password or User Name"):
-        sys.stderr.write("Login/password not accepted (%d bytes)\n" % len(session.body()))
-        sys.exit(1)
-    # We'll see this if we get the right thing.
-    elif session.answered("Personal Page For: " + name):
-        session.fetch_xml(project_id)
-        sys.stdout.write(session.body())
-        session.logout()
-        sys.exit(0)
-    # Or maybe SourceForge has changed its site design so our check strings
-    # are no longer valid.
-    else:
-        sys.stderr.write("Unexpected page (%d bytes)\n"%len(session.body()))
-        sys.exit(1)
-
diff --git a/pycurl/examples/xmlrpc_curl.py b/pycurl/examples/xmlrpc_curl.py
deleted file mode 100644 (file)
index 462bc97..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
-# the libcurl tutorial for more info.
-try:
-    import signal
-    from signal import SIGPIPE, SIG_IGN
-    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
-except ImportError:
-    pass
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from StringIO import StringIO
-import xmlrpclib, pycurl
-
-
-class CURLTransport(xmlrpclib.Transport):
-    """Handles a cURL HTTP transaction to an XML-RPC server."""
-
-    xmlrpc_h = [ "Content-Type: text/xml" ]
-
-    def __init__(self, username=None, password=None):
-        self.c = pycurl.Curl()
-        self.c.setopt(pycurl.POST, 1)
-        self.c.setopt(pycurl.NOSIGNAL, 1)
-        self.c.setopt(pycurl.CONNECTTIMEOUT, 30)
-        self.c.setopt(pycurl.HTTPHEADER, self.xmlrpc_h)
-        if username != None and password != None:
-            self.c.setopt(pycurl.USERPWD, '%s:%s' % (username, password))
-
-    def request(self, host, handler, request_body, verbose=0):
-        b = StringIO()
-        self.c.setopt(pycurl.URL, 'http://%s%s' % (host, handler))
-        self.c.setopt(pycurl.POSTFIELDS, request_body)
-        self.c.setopt(pycurl.WRITEFUNCTION, b.write)
-        self.c.setopt(pycurl.VERBOSE, verbose)
-        self.verbose = verbose
-        try:
-           self.c.perform()
-        except pycurl.error, v:
-            raise xmlrpclib.ProtocolError(
-                host + handler,
-                v[0], v[1], None
-                )
-        b.seek(0)
-        return self.parse_response(b)
-
-
-if __name__ == "__main__":
-    ## Test
-    server = xmlrpclib.ServerProxy("http://betty.userland.com",
-                                   transport=CURLTransport())
-    print server
-    try:
-        print server.examples.getStateName(41)
-    except xmlrpclib.Error, v:
-        print "ERROR", v
diff --git a/pycurl/python/curl/__init__.py b/pycurl/python/curl/__init__.py
deleted file mode 100644 (file)
index 8fecb4d..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-# A high-level interface to the pycurl extension
-#
-# ** mfx NOTE: the CGI class uses "black magic" using COOKIEFILE in
-#    combination with a non-existant file name. See the libcurl docs
-#    for more info.
-#
-# If you want thread-safe operation, you'll have to set the NOSIGNAL option
-# yourself.
-#
-# By Eric S. Raymond, April 2003.
-
-import os, sys, urllib, exceptions, mimetools, pycurl
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from StringIO import StringIO
-
-
-class Curl:
-    "High-level interface to cURL functions."
-    def __init__(self, base_url="", fakeheaders=[]):
-        self.handle = pycurl.Curl()
-        # These members might be set.
-        self.set_url(base_url)
-        self.verbosity = 0
-        self.fakeheaders = fakeheaders
-        # Nothing past here should be modified by the caller.
-        self.payload = ""
-        self.header = StringIO()
-        # Verify that we've got the right site; harmless on a non-SSL connect.
-        self.set_option(pycurl.SSL_VERIFYHOST, 2)
-        # Follow redirects in case it wants to take us to a CGI...
-        self.set_option(pycurl.FOLLOWLOCATION, 1)
-        self.set_option(pycurl.MAXREDIRS, 5)
-        # Setting this option with even a nonexistent file makes libcurl
-        # handle cookie capture and playback automatically.
-        self.set_option(pycurl.COOKIEFILE, "/dev/null")
-        # Set timeouts to avoid hanging too long
-        self.set_timeout(30)
-        # Use password identification from .netrc automatically
-        self.set_option(pycurl.NETRC, 1)
-        # Set up a callback to capture the payload
-        def payload_callback(x):
-            self.payload += x
-        self.set_option(pycurl.WRITEFUNCTION, payload_callback)
-        def header_callback(x):
-            self.header.write(x)
-        self.set_option(pycurl.HEADERFUNCTION, header_callback)
-
-    def set_timeout(self, timeout):
-        "Set timeout for connect and object retrieval (applies for both)"
-        self.set_option(pycurl.CONNECTTIMEOUT, timeout)
-        self.set_option(pycurl.TIMEOUT, timeout)
-
-    def set_url(self, url):
-        "Set the base URL to be retrieved."
-        self.base_url = url
-        self.set_option(pycurl.URL, self.base_url)
-
-    def set_option(self, *args):
-        "Set an option on the retrieval,"
-        apply(self.handle.setopt, args)
-
-    def set_verbosity(self, level):
-        "Set verbosity to 1 to see transactions."
-        self.set_option(pycurl.VERBOSE, level)
-
-    def __request(self, relative_url=None):
-        "Perform the pending request."
-        if self.fakeheaders:
-            self.set_option(pycurl.HTTPHEADER, self.fakeheaders)
-        if relative_url:
-            self.set_option(pycurl.URL,os.path.join(self.base_url,relative_url))
-        self.header.seek(0,0)
-        self.payload = ""
-        self.handle.perform()
-        return self.payload
-
-    def get(self, url="", params=None):
-        "Ship a GET request for a specified URL, capture the response."
-        if params:
-            url += "?" + urllib.urlencode(params)
-        self.set_option(pycurl.HTTPGET, 1)
-        return self.__request(url)
-
-    def post(self, cgi, params):
-        "Ship a POST request to a specified CGI, capture the response."
-        self.set_option(pycurl.POST, 1)
-        self.set_option(pycurl.POSTFIELDS, urllib.urlencode(params))
-        return self.__request(cgi)
-
-    def body(self):
-        "Return the body from the last response."
-        return self.payload
-
-    def info(self):
-        "Return an RFC822 object with info on the page."
-        self.header.seek(0,0)
-        url = self.handle.getinfo(pycurl.EFFECTIVE_URL)
-        if url[:5] == 'http:':
-            self.header.readline()
-            m = mimetools.Message(self.header)
-        else:
-            m = mimetools.Message(StringIO())
-        m['effective-url'] = url
-        m['http-code'] = str(self.handle.getinfo(pycurl.HTTP_CODE))
-        m['total-time'] = str(self.handle.getinfo(pycurl.TOTAL_TIME))
-        m['namelookup-time'] = str(self.handle.getinfo(pycurl.NAMELOOKUP_TIME))
-        m['connect-time'] = str(self.handle.getinfo(pycurl.CONNECT_TIME))
-        m['pretransfer-time'] = str(self.handle.getinfo(pycurl.PRETRANSFER_TIME))
-        m['redirect-time'] = str(self.handle.getinfo(pycurl.REDIRECT_TIME))
-        m['redirect-count'] = str(self.handle.getinfo(pycurl.REDIRECT_COUNT))
-        m['size-upload'] = str(self.handle.getinfo(pycurl.SIZE_UPLOAD))
-        m['size-download'] = str(self.handle.getinfo(pycurl.SIZE_DOWNLOAD))
-        m['speed-upload'] = str(self.handle.getinfo(pycurl.SPEED_UPLOAD))
-        m['header-size'] = str(self.handle.getinfo(pycurl.HEADER_SIZE))
-        m['request-size'] = str(self.handle.getinfo(pycurl.REQUEST_SIZE))
-        m['content-length-download'] = str(self.handle.getinfo(pycurl.CONTENT_LENGTH_DOWNLOAD))
-        m['content-length-upload'] = str(self.handle.getinfo(pycurl.CONTENT_LENGTH_UPLOAD))
-        m['content-type'] = (self.handle.getinfo(pycurl.CONTENT_TYPE) or '').strip(';')
-        return m
-
-    def answered(self, check):
-        "Did a given check string occur in the last payload?"
-        return self.payload.find(check) >= 0
-
-    def close(self):
-        "Close a session, freeing resources."
-        self.handle.close()
-        self.header.close()
-
-    def __del__(self):
-        self.close()
-
-
-if __name__ == "__main__":
-    if len(sys.argv) < 2:
-        url = 'http://curl.haxx.se'
-    else:
-        url = sys.argv[1]
-    c = Curl()
-    c.get(url)
-    print c.body()
-    print '='*74 + '\n'
-    print c.info()
-    c.close()
diff --git a/pycurl/setup.py b/pycurl/setup.py
deleted file mode 100644 (file)
index 841ff19..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-"""Setup script for the PycURL module distribution."""
-
-PACKAGE = "pycurl"
-PY_PACKAGE = "curl"
-VERSION = "7.13.1"
-
-import glob, os, re, sys, string
-import distutils
-from distutils.core import setup
-from distutils.extension import Extension
-from distutils.util import split_quoted
-from distutils.version import LooseVersion
-
-include_dirs = []
-define_macros = []
-library_dirs = []
-libraries = []
-runtime_library_dirs = []
-extra_objects = []
-extra_compile_args = []
-extra_link_args = []
-
-
-def scan_argv(s, default):
-    p = default
-    i = 1
-    while i < len(sys.argv):
-        arg = sys.argv[i]
-        if string.find(arg, s) == 0:
-            p = arg[len(s):]
-            assert p, arg
-            del sys.argv[i]
-        else:
-            i = i + 1
-    ##print sys.argv
-    return p
-
-
-# append contents of an environment variable to library_dirs[]
-def add_libdirs(envvar, sep, fatal=0):
-    v = os.environ.get(envvar)
-    if not v:
-        return
-    for dir in string.split(v, sep):
-        dir = string.strip(dir)
-        if not dir:
-            continue
-        dir = os.path.normpath(dir)
-        if os.path.isdir(dir):
-            if not dir in library_dirs:
-                library_dirs.append(dir)
-        elif fatal:
-            print "FATAL: bad directory %s in environment variable %s" % (dir, envvar)
-            sys.exit(1)
-
-
-if sys.platform == "win32":
-    # Windows users have to configure the CURL_DIR path parameter to match
-    # their cURL source installation.  The path set here is just an example
-    # and thus unlikely to match your installation.
-    CURL_DIR = r"c:\src\build\pycurl\curl-7.13.1"
-    CURL_DIR = scan_argv("--curl-dir=", CURL_DIR)
-    print "Using curl directory:", CURL_DIR
-    assert os.path.isdir(CURL_DIR), "please check CURL_DIR in setup.py"
-    include_dirs.append(os.path.join(CURL_DIR, "include"))
-    extra_objects.append(os.path.join(CURL_DIR, "lib", "libcurl.lib"))
-    extra_link_args.extend(["gdi32.lib", "winmm.lib", "ws2_32.lib",])
-    add_libdirs("LIB", ";")
-    if string.find(sys.version, "MSC") >= 0:
-        extra_compile_args.append("-O2")
-        extra_compile_args.append("-GF")        # enable read-only string pooling
-        extra_compile_args.append("-WX")        # treat warnings as errors
-        extra_link_args.append("/opt:nowin98")  # use small section alignment
-else:
-    # Find out the rest the hard way
-    CURL_CONFIG = "curl-config"
-    CURL_CONFIG = scan_argv("--curl-config=", CURL_CONFIG)
-    d = os.popen("'%s' --version" % CURL_CONFIG).read()
-    if d:
-        d = string.strip(d)
-    if not d:
-        raise Exception, ("`%s' not found -- please install the libcurl development files" % CURL_CONFIG)
-    print "Using %s (%s)" % (CURL_CONFIG, d)
-    for e in split_quoted(os.popen("'%s' --cflags" % CURL_CONFIG).read()):
-        if e[:2] == "-I":
-            # do not add /usr/include
-            if not re.search(r"^\/+usr\/+include\/*$", e[2:]):
-                include_dirs.append(e[2:])
-        else:
-            extra_compile_args.append(e)
-    for e in split_quoted(os.popen("'%s' --libs" % CURL_CONFIG).read()):
-        if e[:2] == "-l":
-            libraries.append(e[2:])
-        elif e[:2] == "-L":
-            library_dirs.append(e[2:])
-        else:
-            extra_link_args.append(e)
-    if not libraries:
-        libraries.append("curl")
-    # Add extra compile flag for MacOS X
-    if sys.platform[:-1] == "darwin":
-        extra_link_args.append("-flat_namespace")
-
-
-###############################################################################
-
-def get_kw(**kw): return kw
-
-ext = Extension(
-    name=PACKAGE,
-    sources=[
-        os.path.join("src", "pycurl.c"),
-    ],
-    include_dirs=include_dirs,
-    define_macros=define_macros,
-    library_dirs=library_dirs,
-    libraries=libraries,
-    runtime_library_dirs=runtime_library_dirs,
-    extra_objects=extra_objects,
-    extra_compile_args=extra_compile_args,
-    extra_link_args=extra_link_args,
-)
-##print ext.__dict__; sys.exit(1)
-
-
-###############################################################################
-
-# prepare data_files
-
-def get_data_files():
-    # a list of tuples with (path to install to, a list of local files)
-    data_files = []
-    if sys.platform == "win32":
-        datadir = os.path.join("doc", PACKAGE)
-    else:
-        datadir = os.path.join("share", "doc", PACKAGE)
-    #
-    files = ["ChangeLog", "COPYING", "INSTALL", "README", "TODO",]
-    if files:
-        data_files.append((os.path.join(datadir), files))
-    files = glob.glob(os.path.join("doc", "*.html"))
-    if files:
-        data_files.append((os.path.join(datadir, "html"), files))
-    files = glob.glob(os.path.join("examples", "*.py"))
-    if files:
-        data_files.append((os.path.join(datadir, "examples"), files))
-    files = glob.glob(os.path.join("tests", "*.py"))
-    if files:
-        data_files.append((os.path.join(datadir, "tests"), files))
-    #
-    assert data_files
-    for install_dir, files in data_files:
-        assert files
-        for f in files:
-            assert os.path.isfile(f), (f, install_dir)
-    return data_files
-
-##print get_data_files(); sys.exit(1)
-
-
-###############################################################################
-
-setup_args = get_kw(
-    name=PACKAGE,
-    version=VERSION,
-    description="PycURL -- cURL library module for Python",
-    author="Kjetil Jacobsen, Markus F.X.J. Oberhumer",
-    author_email="kjetilja@cs.uit.no, markus@oberhumer.com",
-    maintainer="Kjetil Jacobsen, Markus F.X.J. Oberhumer",
-    maintainer_email="kjetilja@cs.uit.no, markus@oberhumer.com",
-    url="http://pycurl.sourceforge.net/",
-    license="GNU Lesser General Public License (LGPL)",
-    data_files=get_data_files(),
-    ext_modules=[ext],
-    long_description="""
-This module provides Python bindings for the cURL library.""",
-)
-
-if sys.version >= "2.2":
-    setup_args["packages"] = [PY_PACKAGE]
-    setup_args["package_dir"] = { PY_PACKAGE: os.path.join('python', 'curl') }
-
-
-##print distutils.__version__
-if LooseVersion(distutils.__version__) > LooseVersion("1.0.1"):
-    setup_args["platforms"] = "All"
-if LooseVersion(distutils.__version__) < LooseVersion("1.0.3"):
-    setup_args["licence"] = setup_args["license"]
-
-if __name__ == "__main__":
-    for o in ext.extra_objects:
-        assert os.path.isfile(o), o
-    # We can live with the deprecationwarning for a while
-    apply(setup, (), setup_args)
diff --git a/pycurl/setup_win32_ssl.py b/pycurl/setup_win32_ssl.py
deleted file mode 100644 (file)
index 1226ac1..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import os, sys, string
-assert sys.platform == "win32", "Only for building on Win32 with SSL and zlib"
-
-
-CURL_DIR = r"c:\src\build\pycurl\curl-7.13.1-ssl"
-OPENSSL_DIR = r"c:\src\build\pycurl\openssl-0.9.7e"
-sys.argv.insert(1, "--curl-dir=" + CURL_DIR)
-
-from setup import *
-
-setup_args["name"] = "pycurl-ssl"
-
-
-for l in ("libeay32.lib", "ssleay32.lib",):
-    ext.extra_objects.append(os.path.join(OPENSSL_DIR, "out32", l))
-
-pool = "\\" + r"pool\win32\vc6" + "\\"
-if string.find(sys.version, "MSC v.1310") >= 0:
-    pool = "\\" + r"pool\win32\vc71" + "\\"
-ext.extra_objects.append(r"c:\src\pool\zlib-1.2.2" + pool + "zlib.lib")
-ext.extra_objects.append(r"c:\src\pool\c-ares-20041212" + pool + "ares.lib")
-ext.extra_objects.append(r"c:\src\pool\libidn-0.5.13" + pool + "idn.lib")
-
-
-if __name__ == "__main__":
-    for o in ext.extra_objects:
-        assert os.path.isfile(o), o
-    apply(setup, (), setup_args)
-
diff --git a/pycurl/src/Makefile b/pycurl/src/Makefile
deleted file mode 100644 (file)
index a4828d3..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-CC=gcc
-RM=rm
-CP=cp
-PYINCLUDE=/usr/include/python2.2
-CURLINCLUDE=/usr/include/curl
-INCLUDE=-I$(PYINCLUDE) -I$(CURLINCLUDE)
-LIBS=-L/usr/lib -lcurl
-LDOPTS=-shared
-CCOPTS=-g -O2 -Wall -Wstrict-prototypes -fPIC
-
-all:
-       $(CC) $(INCLUDE) $(CCOPTS) -c pycurl.c -o pycurl.o
-       $(CC) $(LIBS) $(LDOPTS) -lcurl pycurl.o -o pycurl.so
-
-install: all
-       $(CP) pycurl.so /usr/lib/python2.2/site-packages
-
-clean:
-       $(RM) -f *~ *.o *obj *.so
diff --git a/pycurl/src/pycurl.c b/pycurl/src/pycurl.c
deleted file mode 100644 (file)
index 25f9d61..0000000
+++ /dev/null
@@ -1,2828 +0,0 @@
-/* $Id$ */
-
-/* PycURL -- cURL Python module
- *
- * Authors:
- *  Copyright (C) 2001-2005 by Kjetil Jacobsen <kjetilja at cs.uit.no>
- *  Copyright (C) 2001-2005 by Markus F.X.J. Oberhumer <markus at oberhumer.com>
- *
- * Contributions:
- *  Tino Lange <Tino.Lange at gmx.de>
- *  Matt King <matt at gnik.com>
- *  Conrad Steenberg <conrad at hep.caltech.edu>
- *  Amit Mongia <amit_mongia at hotmail.com>
- *  Eric S. Raymond <esr at thyrsus.com>
- *  Martin Muenstermann <mamuema at sourceforge.net>
- *  Domenico Andreoli <cavok at libero.it>
- *
- * See file COPYING for license information.
- *
- * Some quick info on Python's refcount:
- *   Py_BuildValue          does incref the item(s)
- *   PyArg_ParseTuple       does NOT incref the item
- *   PyList_Append          does incref the item
- *   PyTuple_SET_ITEM       does NOT incref the item
- *   PyTuple_SetItem        does NOT incref the item
- *   PyXXX_GetItem          returns a borrowed reference
- */
-
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-#  define WIN32 1
-#endif
-#if defined(WIN32)
-#  define CURL_STATICLIB 1
-#endif
-#include <Python.h>
-#include <sys/types.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <limits.h>
-#include <curl/curl.h>
-#include <curl/multi.h>
-#undef NDEBUG
-#include <assert.h>
-
-/* Ensure we have updated versions */
-#if !defined(PY_VERSION_HEX) || (PY_VERSION_HEX < 0x02020000)
-#  error "Need Python version 2.2 or greater to compile pycurl."
-#endif
-#if !defined(LIBCURL_VERSION_NUM) || (LIBCURL_VERSION_NUM < 0x070d01)
-#  error "Need libcurl version 7.13.1 or greater to compile pycurl."
-#endif
-
-#undef UNUSED
-#define UNUSED(var)     ((void)&var)
-
-#undef COMPILE_TIME_ASSERT
-#define COMPILE_TIME_ASSERT(expr) \
-     { typedef int compile_time_assert_fail__[1 - 2 * !(expr)]; }
-
-
-/* Calculate the number of OBJECTPOINT options we need to store */
-#define OPTIONS_SIZE    ((int)CURLOPT_LASTENTRY % 10000)
-static int OPT_INDEX(int o)
-{
-    assert(o >= CURLOPTTYPE_OBJECTPOINT);
-    assert(o < CURLOPTTYPE_OBJECTPOINT + OPTIONS_SIZE);
-    return o - CURLOPTTYPE_OBJECTPOINT;
-}
-
-
-static PyObject *ErrorObject = NULL;
-static PyTypeObject *p_Curl_Type = NULL;
-static PyTypeObject *p_CurlMulti_Type = NULL;
-
-typedef struct {
-    PyObject_HEAD
-    PyObject *dict;                 /* Python attributes dictionary */
-    CURLM *multi_handle;
-    PyThreadState *state;
-    fd_set read_fd_set;
-    fd_set write_fd_set;
-    fd_set exc_fd_set;
-} CurlMultiObject;
-
-typedef struct {
-    PyObject_HEAD
-    PyObject *dict;                 /* Python attributes dictionary */
-    CURL *handle;
-    PyThreadState *state;
-    CurlMultiObject *multi_stack;
-    struct curl_httppost *httppost;
-    struct curl_slist *httpheader;
-    struct curl_slist *http200aliases;
-    struct curl_slist *quote;
-    struct curl_slist *postquote;
-    struct curl_slist *prequote;
-    struct curl_slist *source_prequote;
-    struct curl_slist *source_postquote;
-    /* callbacks */
-    PyObject *w_cb;
-    PyObject *h_cb;
-    PyObject *r_cb;
-    PyObject *pro_cb;
-    PyObject *debug_cb;
-    PyObject *ioctl_cb;
-    /* file objects */
-    PyObject *readdata_fp;
-    PyObject *writedata_fp;
-    PyObject *writeheader_fp;
-    /* misc */
-    void *options[OPTIONS_SIZE];    /* for OBJECTPOINT options */
-    char error[CURL_ERROR_SIZE+1];
-} CurlObject;
-
-/* Throw exception based on return value `res' and `self->error' */
-#define CURLERROR_RETVAL() do {\
-    PyObject *v; \
-    self->error[sizeof(self->error) - 1] = 0; \
-    v = Py_BuildValue("(is)", (int) (res), self->error); \
-    if (v != NULL) { PyErr_SetObject(ErrorObject, v); Py_DECREF(v); } \
-    return NULL; \
-} while (0)
-
-/* Throw exception based on return value `res' and custom message */
-#define CURLERROR_MSG(msg) do {\
-    PyObject *v; const char *m = (msg); \
-    v = Py_BuildValue("(is)", (int) (res), (m)); \
-    if (v != NULL) { PyErr_SetObject(ErrorObject, v); Py_DECREF(v); } \
-    return NULL; \
-} while (0)
-
-
-/* Safe XDECREF for object states that handles nested deallocations */
-#define ZAP(v) do {\
-    PyObject *tmp = (PyObject *)(v); \
-    (v) = NULL; \
-    Py_XDECREF(tmp); \
-} while (0)
-
-
-/*************************************************************************
-// python utility functions
-**************************************************************************/
-
-#if (PY_VERSION_HEX < 0x02030000) && !defined(PY_LONG_LONG)
-#  define PY_LONG_LONG LONG_LONG
-#endif
-
-/* Like PyString_AsString(), but set an exception if the string contains
- * embedded NULs. Actually PyString_AsStringAndSize() already does that for
- * us if the `len' parameter is NULL - see Objects/stringobject.c.
- */
-
-static char *PyString_AsString_NoNUL(PyObject *obj)
-{
-    char *s = NULL;
-    int r;
-    r = PyString_AsStringAndSize(obj, &s, NULL);
-    if (r != 0)
-        return NULL;    /* exception already set */
-    assert(s != NULL);
-    return s;
-}
-
-
-/* Convert a curl slist (a list of strings) to a Python list.
- * In case of error return NULL with an exception set.
- */
-static PyObject *convert_slist(struct curl_slist *slist, int free_flags)
-{
-    PyObject *ret = NULL;
-
-    ret = PyList_New(0);
-    if (ret == NULL) goto error;
-
-    for ( ; slist != NULL; slist = slist->next) {
-        PyObject *v = NULL;
-
-        if (slist->data != NULL) {
-            v = PyString_FromString(slist->data);
-            if (v == NULL || PyList_Append(ret, v) != 0) {
-                Py_XDECREF(v);
-                goto error;
-            }
-            Py_DECREF(v);
-        }
-    }
-
-    if ((free_flags & 1) && slist)
-        curl_slist_free_all(slist);
-    return ret;
-
-error:
-    Py_XDECREF(ret);
-    if ((free_flags & 2) && slist)
-        curl_slist_free_all(slist);
-    return NULL;
-}
-
-
-/*************************************************************************
-// static utility functions
-**************************************************************************/
-
-static PyThreadState *
-get_thread_state(const CurlObject *self)
-{
-    /* Get the thread state for callbacks to run in.
-     * This is either `self->state' when running inside perform() or
-     * `self->multi_stack->state' when running inside multi_perform().
-     * When the result is != NULL we also implicitly assert
-     * a valid `self->handle'.
-     */
-    if (self == NULL)
-        return NULL;
-    assert(self->ob_type == p_Curl_Type);
-    if (self->state != NULL)
-    {
-        /* inside perform() */
-        assert(self->handle != NULL);
-        if (self->multi_stack != NULL) {
-            assert(self->multi_stack->state == NULL);
-        }
-        return self->state;
-    }
-    if (self->multi_stack != NULL && self->multi_stack->state != NULL)
-    {
-        /* inside multi_perform() */
-        assert(self->handle != NULL);
-        assert(self->multi_stack->multi_handle != NULL);
-        assert(self->state == NULL);
-        return self->multi_stack->state;
-    }
-    return NULL;
-}
-
-
-/* assert some CurlObject invariants */
-static void
-assert_curl_state(const CurlObject *self)
-{
-    assert(self != NULL);
-    assert(self->ob_type == p_Curl_Type);
-    (void) get_thread_state(self);
-}
-
-
-/* assert some CurlMultiObject invariants */
-static void
-assert_multi_state(const CurlMultiObject *self)
-{
-    assert(self != NULL);
-    assert(self->ob_type == p_CurlMulti_Type);
-    if (self->state != NULL) {
-        assert(self->multi_handle != NULL);
-    }
-}
-
-
-/* check state for methods */
-static int
-check_curl_state(const CurlObject *self, int flags, const char *name)
-{
-    assert_curl_state(self);
-    if ((flags & 1) && self->handle == NULL) {
-        PyErr_Format(ErrorObject, "cannot invoke %s() - no curl handle", name);
-        return -1;
-    }
-    if ((flags & 2) && get_thread_state(self) != NULL) {
-        PyErr_Format(ErrorObject, "cannot invoke %s() - perform() is currently running", name);
-        return -1;
-    }
-    return 0;
-}
-
-static int
-check_multi_state(const CurlMultiObject *self, int flags, const char *name)
-{
-    assert_multi_state(self);
-    if ((flags & 1) && self->multi_handle == NULL) {
-        PyErr_Format(ErrorObject, "cannot invoke %s() - no multi handle", name);
-        return -1;
-    }
-    if ((flags & 2) && self->state != NULL) {
-        PyErr_Format(ErrorObject, "cannot invoke %s() - multi_perform() is currently running", name);
-        return -1;
-    }
-    return 0;
-}
-
-
-/*************************************************************************
-// CurlObject
-**************************************************************************/
-
-/* --------------- construct/destruct (i.e. open/close) --------------- */
-
-/* Allocate a new python curl object */
-static CurlObject *
-util_curl_new(void)
-{
-    CurlObject *self;
-
-    self = (CurlObject *) PyObject_GC_New(CurlObject, p_Curl_Type);
-    if (self == NULL)
-        return NULL;
-    PyObject_GC_Track(self);
-
-    /* Set python curl object initial values */
-    self->dict = NULL;
-    self->handle = NULL;
-    self->state = NULL;
-    self->multi_stack = NULL;
-    self->httppost = NULL;
-    self->httpheader = NULL;
-    self->http200aliases = NULL;
-    self->quote = NULL;
-    self->postquote = NULL;
-    self->prequote = NULL;
-    self->source_postquote = NULL;
-    self->source_prequote = NULL;
-
-    /* Set callback pointers to NULL by default */
-    self->w_cb = NULL;
-    self->h_cb = NULL;
-    self->r_cb = NULL;
-    self->pro_cb = NULL;
-    self->debug_cb = NULL;
-    self->ioctl_cb = NULL;
-
-    /* Set file object pointers to NULL by default */
-    self->readdata_fp = NULL;
-    self->writedata_fp = NULL;
-    self->writeheader_fp = NULL;
-
-    /* Zero string pointer memory buffer used by setopt */
-    memset(self->options, 0, sizeof(self->options));
-    memset(self->error, 0, sizeof(self->error));
-
-    return self;
-}
-
-
-/* constructor - this is a module-level function returning a new instance */
-static CurlObject *
-do_curl_new(PyObject *dummy)
-{
-    CurlObject *self = NULL;
-    int res;
-    char *s = NULL;
-
-    UNUSED(dummy);
-
-    /* Allocate python curl object */
-    self = util_curl_new();
-    if (self == NULL)
-        return NULL;
-
-    /* Initialize curl handle */
-    self->handle = curl_easy_init();
-    if (self->handle == NULL)
-        goto error;
-
-    /* Set curl error buffer and zero it */
-    res = curl_easy_setopt(self->handle, CURLOPT_ERRORBUFFER, self->error);
-    if (res != CURLE_OK)
-        goto error;
-    memset(self->error, 0, sizeof(self->error));
-
-    /* Set backreference */
-    res = curl_easy_setopt(self->handle, CURLOPT_PRIVATE, (char *) self);
-    if (res != CURLE_OK)
-        goto error;
-
-    /* Enable NOPROGRESS by default, i.e. no progress output */
-    res = curl_easy_setopt(self->handle, CURLOPT_NOPROGRESS, (long)1);
-    if (res != CURLE_OK)
-        goto error;
-
-    /* Disable VERBOSE by default, i.e. no verbose output */
-    res = curl_easy_setopt(self->handle, CURLOPT_VERBOSE, (long)0);
-    if (res != CURLE_OK)
-        goto error;
-
-    /* Set FTP_ACCOUNT to NULL by default */
-    res = curl_easy_setopt(self->handle, CURLOPT_FTP_ACCOUNT, NULL);
-    if (res != CURLE_OK)
-        goto error;
-
-    /* Set default USERAGENT */
-    s = (char *) malloc(7 + strlen(LIBCURL_VERSION) + 1);
-    if (s == NULL)
-        goto error;
-    strcpy(s, "PycURL/"); strcpy(s+7, LIBCURL_VERSION);
-    res = curl_easy_setopt(self->handle, CURLOPT_USERAGENT, (char *) s);
-    if (res != CURLE_OK) {
-        free(s);
-        goto error;
-    }
-    self->options[ OPT_INDEX(CURLOPT_USERAGENT) ] = s; s = NULL;
-
-    /* Success - return new object */
-    return self;
-
-error:
-    Py_DECREF(self);    /* this also closes self->handle */
-    PyErr_SetString(ErrorObject, "initializing curl failed");
-    return NULL;
-}
-
-
-/* util function shared by close() and clear() */
-static void
-util_curl_xdecref(CurlObject *self, int flags, CURL *handle)
-{
-    if (flags & 1) {
-        /* Decrement refcount for attributes dictionary. */
-        ZAP(self->dict);
-    }
-
-    if (flags & 2) {
-        /* Decrement refcount for multi_stack. */
-        if (self->multi_stack != NULL) {
-            CurlMultiObject *multi_stack = self->multi_stack;
-            self->multi_stack = NULL;
-            if (multi_stack->multi_handle != NULL && handle != NULL) {
-                (void) curl_multi_remove_handle(multi_stack->multi_handle, handle);
-            }
-            Py_DECREF(multi_stack);
-        }
-    }
-
-    if (flags & 4) {
-        /* Decrement refcount for python callbacks. */
-        ZAP(self->w_cb);
-        ZAP(self->h_cb);
-        ZAP(self->r_cb);
-        ZAP(self->pro_cb);
-        ZAP(self->debug_cb);
-        ZAP(self->ioctl_cb);
-    }
-
-    if (flags & 8) {
-        /* Decrement refcount for python file objects. */
-        ZAP(self->readdata_fp);
-        ZAP(self->writedata_fp);
-        ZAP(self->writeheader_fp);
-    }
-}
-
-
-static void
-util_curl_close(CurlObject *self)
-{
-    CURL *handle;
-    int i;
-
-    /* Zero handle and thread-state to disallow any operations to be run
-     * from now on */
-    assert(self != NULL);
-    assert(self->ob_type == p_Curl_Type);
-    handle = self->handle;
-    self->handle = NULL;
-    if (handle == NULL) {
-        /* Some paranoia assertions just to make sure the object
-         * deallocation problem is finally really fixed... */
-        assert(self->state == NULL);
-        assert(self->multi_stack == NULL);
-        return;             /* already closed */
-    }
-    self->state = NULL;
-
-    /* Decref multi stuff which uses this handle */
-    util_curl_xdecref(self, 2, handle);
-
-    /* Cleanup curl handle - must be done without the gil */
-    Py_BEGIN_ALLOW_THREADS
-    curl_easy_cleanup(handle);
-    Py_END_ALLOW_THREADS
-    handle = NULL;
-
-    /* Decref callbacks and file handles */
-    util_curl_xdecref(self, 4 | 8, handle);
-
-    /* Free all variables allocated by setopt */
-#undef SFREE
-#define SFREE(v)   if ((v) != NULL) (curl_formfree(v), (v) = NULL)
-    SFREE(self->httppost);
-#undef SFREE
-#define SFREE(v)   if ((v) != NULL) (curl_slist_free_all(v), (v) = NULL)
-    SFREE(self->httpheader);
-    SFREE(self->http200aliases);
-    SFREE(self->quote);
-    SFREE(self->postquote);
-    SFREE(self->prequote);
-    SFREE(self->source_postquote);
-    SFREE(self->source_prequote);
-#undef SFREE
-
-    /* Last, free the options.  This must be done after the curl handle
-     * is closed since libcurl assumes that some options are valid when
-     * invoking curl_easy_cleanup(). */
-    for (i = 0; i < OPTIONS_SIZE; i++) {
-        if (self->options[i] != NULL) {
-            free(self->options[i]);
-            self->options[i] = NULL;
-        }
-    }
-}
-
-
-static void
-do_curl_dealloc(CurlObject *self)
-{
-    PyObject_GC_UnTrack(self);
-    Py_TRASHCAN_SAFE_BEGIN(self)
-
-    ZAP(self->dict);
-    util_curl_close(self);
-
-    PyObject_GC_Del(self);
-    Py_TRASHCAN_SAFE_END(self)
-}
-
-
-static PyObject *
-do_curl_close(CurlObject *self)
-{
-    if (check_curl_state(self, 2, "close") != 0) {
-        return NULL;
-    }
-    util_curl_close(self);
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-static PyObject *
-do_curl_errstr(CurlObject *self)
-{
-    if (check_curl_state(self, 1 | 2, "errstr") != 0) {
-        return NULL;
-    }
-    self->error[sizeof(self->error) - 1] = 0;
-    return PyString_FromString(self->error);
-}
-
-
-/* --------------- GC support --------------- */
-
-/* Drop references that may have created reference cycles. */
-static int
-do_curl_clear(CurlObject *self)
-{
-    assert(get_thread_state(self) == NULL);
-    util_curl_xdecref(self, 1 | 2 | 4 | 8, self->handle);
-    return 0;
-}
-
-/* Traverse all refcounted objects. */
-static int
-do_curl_traverse(CurlObject *self, visitproc visit, void *arg)
-{
-    int err;
-#undef VISIT
-#define VISIT(v)    if ((v) != NULL && ((err = visit(v, arg)) != 0)) return err
-
-    VISIT(self->dict);
-    VISIT((PyObject *) self->multi_stack);
-
-    VISIT(self->w_cb);
-    VISIT(self->h_cb);
-    VISIT(self->r_cb);
-    VISIT(self->pro_cb);
-    VISIT(self->debug_cb);
-    VISIT(self->ioctl_cb);
-
-    VISIT(self->readdata_fp);
-    VISIT(self->writedata_fp);
-    VISIT(self->writeheader_fp);
-
-    return 0;
-#undef VISIT
-}
-
-
-/* --------------- perform --------------- */
-
-static PyObject *
-do_curl_perform(CurlObject *self)
-{
-    int res;
-
-    if (check_curl_state(self, 1 | 2, "perform") != 0) {
-        return NULL;
-    }
-
-    /* Save handle to current thread (used as context for python callbacks) */
-    self->state = PyThreadState_Get();
-    assert(self->state != NULL);
-
-    /* Release global lock and start */
-    Py_BEGIN_ALLOW_THREADS
-    res = curl_easy_perform(self->handle);
-    Py_END_ALLOW_THREADS
-
-    /* Zero thread-state to disallow callbacks to be run from now on */
-    self->state = NULL;
-
-    if (res != CURLE_OK) {
-        CURLERROR_RETVAL();
-    }
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* --------------- callback handlers --------------- */
-
-/* IMPORTANT NOTE: due to threading issues, we cannot call _any_ Python
- * function without acquiring the thread state in the callback handlers.
- */
-
-static size_t
-util_write_callback(int flags, char *ptr, size_t size, size_t nmemb, void *stream)
-{
-    CurlObject *self;
-    PyThreadState *tmp_state;
-    PyObject *arglist;
-    PyObject *result = NULL;
-    size_t ret = 0;     /* assume error */
-    PyObject *cb;
-    int total_size;
-
-    /* acquire thread */
-    self = (CurlObject *)stream;
-    tmp_state = get_thread_state(self);
-    if (tmp_state == NULL)
-        return ret;
-    PyEval_AcquireThread(tmp_state);
-
-    /* check args */
-    cb = flags ? self->h_cb : self->w_cb;
-    if (cb == NULL)
-        goto silent_error;
-    if (size <= 0 || nmemb <= 0)
-        goto done;
-    total_size = (int)(size * nmemb);
-    if (total_size < 0 || (size_t)total_size / size != nmemb) {
-        PyErr_SetString(ErrorObject, "integer overflow in write callback");
-        goto verbose_error;
-    }
-
-    /* run callback */
-    arglist = Py_BuildValue("(s#)", ptr, total_size);
-    if (arglist == NULL)
-        goto verbose_error;
-    result = PyEval_CallObject(cb, arglist);
-    Py_DECREF(arglist);
-    if (result == NULL)
-        goto verbose_error;
-
-    /* handle result */
-    if (result == Py_None) {
-        ret = total_size;           /* None means success */
-    }
-    else if (PyInt_Check(result)) {
-        long obj_size = PyInt_AsLong(result);
-        if (obj_size < 0 || obj_size > total_size) {
-            PyErr_Format(ErrorObject, "invalid return value for write callback %ld %ld", (long)obj_size, (long)total_size);
-            goto verbose_error;
-        }
-        ret = (size_t) obj_size;    /* success */
-    }
-    else if (PyLong_Check(result)) {
-        long obj_size = PyLong_AsLong(result);
-        if (obj_size < 0 || obj_size > total_size) {
-            PyErr_Format(ErrorObject, "invalid return value for write callback %ld %ld", (long)obj_size, (long)total_size);
-            goto verbose_error;
-        }
-        ret = (size_t) obj_size;    /* success */
-    }
-    else {
-        PyErr_SetString(ErrorObject, "write callback must return int or None");
-        goto verbose_error;
-    }
-
-done:
-silent_error:
-    Py_XDECREF(result);
-    PyEval_ReleaseThread(tmp_state);
-    return ret;
-verbose_error:
-    PyErr_Print();
-    goto silent_error;
-}
-
-
-static size_t
-write_callback(char *ptr, size_t size, size_t nmemb, void *stream)
-{
-    return util_write_callback(0, ptr, size, nmemb, stream);
-}
-
-static size_t
-header_callback(char *ptr, size_t size, size_t nmemb, void *stream)
-{
-    return util_write_callback(1, ptr, size, nmemb, stream);
-}
-
-
-static size_t
-read_callback(char *ptr, size_t size, size_t nmemb, void *stream)
-{
-    CurlObject *self;
-    PyThreadState *tmp_state;
-    PyObject *arglist;
-    PyObject *result = NULL;
-
-    size_t ret = CURL_READFUNC_ABORT;     /* assume error, this actually works */
-    int total_size;
-
-    /* acquire thread */
-    self = (CurlObject *)stream;
-    tmp_state = get_thread_state(self);
-    if (tmp_state == NULL)
-        return ret;
-    PyEval_AcquireThread(tmp_state);
-
-    /* check args */
-    if (self->r_cb == NULL)
-        goto silent_error;
-    if (size <= 0 || nmemb <= 0)
-        goto done;
-    total_size = (int)(size * nmemb);
-    if (total_size < 0 || (size_t)total_size / size != nmemb) {
-        PyErr_SetString(ErrorObject, "integer overflow in read callback");
-        goto verbose_error;
-    }
-
-    /* run callback */
-    arglist = Py_BuildValue("(i)", total_size);
-    if (arglist == NULL)
-        goto verbose_error;
-    result = PyEval_CallObject(self->r_cb, arglist);
-    Py_DECREF(arglist);
-    if (result == NULL)
-        goto verbose_error;
-
-    /* handle result */
-    if (PyString_Check(result)) {
-        char *buf = NULL;
-        int obj_size = -1;
-        int r;
-        r = PyString_AsStringAndSize(result, &buf, &obj_size);
-        if (r != 0 || obj_size < 0 || obj_size > total_size) {
-            PyErr_Format(ErrorObject, "invalid return value for read callback %ld %ld", (long)obj_size, (long)total_size);
-            goto verbose_error;
-        }
-        memcpy(ptr, buf, obj_size);
-        ret = obj_size;             /* success */
-    }
-    else if (PyInt_Check(result)) {
-        long r = PyInt_AsLong(result);
-        if (r != CURL_READFUNC_ABORT) {
-            goto type_error;
-        }
-        /* ret is CURL_READUNC_ABORT */
-    }
-    else if (PyLong_Check(result)) {
-        long r = PyLong_AsLong(result);
-        if (r != CURL_READFUNC_ABORT) {
-            goto type_error;
-        }
-        /* ret is CURL_READUNC_ABORT */
-    }
-    else {
-    type_error:
-        PyErr_SetString(ErrorObject, "read callback must return string");
-        goto verbose_error;
-    }
-
-done:
-silent_error:
-    Py_XDECREF(result);
-    PyEval_ReleaseThread(tmp_state);
-    return ret;
-verbose_error:
-    PyErr_Print();
-    goto silent_error;
-}
-
-
-static int
-progress_callback(void *stream,
-                  double dltotal, double dlnow, double ultotal, double ulnow)
-{
-    CurlObject *self;
-    PyThreadState *tmp_state;
-    PyObject *arglist;
-    PyObject *result = NULL;
-    int ret = 1;       /* assume error */
-
-    /* acquire thread */
-    self = (CurlObject *)stream;
-    tmp_state = get_thread_state(self);
-    if (tmp_state == NULL)
-        return ret;
-    PyEval_AcquireThread(tmp_state);
-
-    /* check args */
-    if (self->pro_cb == NULL)
-        goto silent_error;
-
-    /* run callback */
-    arglist = Py_BuildValue("(dddd)", dltotal, dlnow, ultotal, ulnow);
-    if (arglist == NULL)
-        goto verbose_error;
-    result = PyEval_CallObject(self->pro_cb, arglist);
-    Py_DECREF(arglist);
-    if (result == NULL)
-        goto verbose_error;
-
-    /* handle result */
-    if (result == Py_None) {
-        ret = 0;        /* None means success */
-    }
-    else if (PyInt_Check(result)) {
-        ret = (int) PyInt_AsLong(result);
-    }
-    else {
-        ret = PyObject_IsTrue(result);  /* FIXME ??? */
-    }
-
-silent_error:
-    Py_XDECREF(result);
-    PyEval_ReleaseThread(tmp_state);
-    return ret;
-verbose_error:
-    PyErr_Print();
-    goto silent_error;
-}
-
-
-static int
-debug_callback(CURL *curlobj, curl_infotype type,
-               char *buffer, size_t total_size, void *stream)
-{
-    CurlObject *self;
-    PyThreadState *tmp_state;
-    PyObject *arglist;
-    PyObject *result = NULL;
-    int ret = 0;       /* always success */
-
-    UNUSED(curlobj);
-
-    /* acquire thread */
-    self = (CurlObject *)stream;
-    tmp_state = get_thread_state(self);
-    if (tmp_state == NULL)
-        return ret;
-    PyEval_AcquireThread(tmp_state);
-
-    /* check args */
-    if (self->debug_cb == NULL)
-        goto silent_error;
-    if ((int)total_size < 0 || (size_t)((int)total_size) != total_size) {
-        PyErr_SetString(ErrorObject, "integer overflow in debug callback");
-        goto verbose_error;
-    }
-
-    /* run callback */
-    arglist = Py_BuildValue("(is#)", (int)type, buffer, (int)total_size);
-    if (arglist == NULL)
-        goto verbose_error;
-    result = PyEval_CallObject(self->debug_cb, arglist);
-    Py_DECREF(arglist);
-    if (result == NULL)
-        goto verbose_error;
-
-    /* return values from debug callbacks should be ignored */
-
-silent_error:
-    Py_XDECREF(result);
-    PyEval_ReleaseThread(tmp_state);
-    return ret;
-verbose_error:
-    PyErr_Print();
-    goto silent_error;
-}
-
-
-static curlioerr
-ioctl_callback(CURL *curlobj, int cmd, void *stream)
-{
-    CurlObject *self;
-    PyThreadState *tmp_state;
-    PyObject *arglist;
-    PyObject *result = NULL;
-    int ret = CURLIOE_FAILRESTART;       /* assume error */
-
-    UNUSED(curlobj);
-
-    /* acquire thread */
-    self = (CurlObject *)stream;
-    tmp_state = get_thread_state(self);
-    if (tmp_state == NULL)
-        return (curlioerr) ret;
-    PyEval_AcquireThread(tmp_state);
-
-    /* check args */
-    if (self->ioctl_cb == NULL)
-        goto silent_error;
-
-    /* run callback */
-    arglist = Py_BuildValue("(i)", (int)cmd);
-    if (arglist == NULL)
-        goto verbose_error;
-    result = PyEval_CallObject(self->ioctl_cb, arglist);
-    Py_DECREF(arglist);
-    if (result == NULL)
-        goto verbose_error;
-
-    /* handle result */
-    if (result == Py_None) {
-        ret = CURLIOE_OK;        /* None means success */
-    }
-    else if (PyInt_Check(result)) {
-        ret = (int) PyInt_AsLong(result);
-        if (ret >= CURLIOE_LAST || ret < 0) {
-            PyErr_SetString(ErrorObject, "ioctl callback returned invalid value");
-            goto verbose_error;
-        }
-    }
-
-silent_error:
-    Py_XDECREF(result);
-    PyEval_ReleaseThread(tmp_state);
-    return (curlioerr) ret;
-verbose_error:
-    PyErr_Print();
-    goto silent_error;
-}
-
-
-/* --------------- unsetopt/setopt/getinfo --------------- */
-
-static PyObject *
-util_curl_unsetopt(CurlObject *self, int option)
-{
-    int res;
-    int opt_index = -1;
-
-#define SETOPT2(o,x) \
-    if ((res = curl_easy_setopt(self->handle, (o), (x))) != CURLE_OK) goto error
-#define SETOPT(x)   SETOPT2((CURLoption)option, (x))
-
-    /* FIXME: implement more options. Have to carefully check lib/url.c in the
-     *   libcurl source code to see if it's actually safe to simply
-     *   unset the option. */
-    switch (option)
-    {
-    case CURLOPT_HTTPPOST:
-        SETOPT((void *) 0);
-        curl_formfree(self->httppost);
-        self->httppost = NULL;
-        /* FIXME: what about data->set.httpreq ?? */
-        break;
-    case CURLOPT_INFILESIZE:
-        SETOPT((long) -1);
-        break;
-    case CURLOPT_WRITEHEADER:
-        SETOPT((void *) 0);
-        ZAP(self->writeheader_fp);
-        break;
-    case CURLOPT_CAINFO:
-    case CURLOPT_CAPATH:
-    case CURLOPT_COOKIE:
-    case CURLOPT_COOKIEJAR:
-    case CURLOPT_CUSTOMREQUEST:
-    case CURLOPT_EGDSOCKET:
-    case CURLOPT_FTPPORT:
-    case CURLOPT_PROXYUSERPWD:
-    case CURLOPT_RANDOM_FILE:
-    case CURLOPT_SSL_CIPHER_LIST:
-    case CURLOPT_USERPWD:
-        SETOPT((char *) 0);
-        opt_index = OPT_INDEX(option);
-        break;
-
-    /* info: we explicitly list unsupported options here */
-    case CURLOPT_COOKIEFILE:
-    default:
-        PyErr_SetString(PyExc_TypeError, "unsetopt() is not supported for this option");
-        return NULL;
-    }
-
-    if (opt_index >= 0 && self->options[opt_index] != NULL) {
-        free(self->options[opt_index]);
-        self->options[opt_index] = NULL;
-    }
-
-    Py_INCREF(Py_None);
-    return Py_None;
-
-error:
-    CURLERROR_RETVAL();
-
-#undef SETOPT
-#undef SETOPT2
-}
-
-
-static PyObject *
-do_curl_unsetopt(CurlObject *self, PyObject *args)
-{
-    int option;
-
-    if (!PyArg_ParseTuple(args, "i:unsetopt", &option)) {
-        return NULL;
-    }
-    if (check_curl_state(self, 1 | 2, "unsetopt") != 0) {
-        return NULL;
-    }
-
-    /* early checks of option value */
-    if (option <= 0)
-        goto error;
-    if (option >= (int)CURLOPTTYPE_OFF_T + OPTIONS_SIZE)
-        goto error;
-    if (option % 10000 >= OPTIONS_SIZE)
-        goto error;
-
-    return util_curl_unsetopt(self, option);
-
-error:
-    PyErr_SetString(PyExc_TypeError, "invalid arguments to unsetopt");
-    return NULL;
-}
-
-
-static PyObject *
-do_curl_setopt(CurlObject *self, PyObject *args)
-{
-    int option;
-    PyObject *obj;
-    int res;
-
-    if (!PyArg_ParseTuple(args, "iO:setopt", &option, &obj))
-        return NULL;
-    if (check_curl_state(self, 1 | 2, "setopt") != 0)
-        return NULL;
-
-    /* early checks of option value */
-    if (option <= 0)
-        goto error;
-    if (option >= (int)CURLOPTTYPE_OFF_T + OPTIONS_SIZE)
-        goto error;
-    if (option % 10000 >= OPTIONS_SIZE)
-        goto error;
-
-#if 0 /* XXX - should we ??? */
-    /* Handle the case of None */
-    if (obj == Py_None) {
-        return util_curl_unsetopt(self, option);
-    }
-#endif
-
-    /* Handle the case of string arguments */
-    if (PyString_Check(obj)) {
-        char *str = NULL;
-        int len = -1;
-        char *buf;
-        int opt_index;
-
-        /* Check that the option specified a string as well as the input */
-        switch (option) {
-        case CURLOPT_CAINFO:
-        case CURLOPT_CAPATH:
-        case CURLOPT_COOKIE:
-        case CURLOPT_COOKIEFILE:
-        case CURLOPT_COOKIEJAR:
-        case CURLOPT_CUSTOMREQUEST:
-        case CURLOPT_EGDSOCKET:
-        case CURLOPT_ENCODING:
-        case CURLOPT_FTPPORT:
-        case CURLOPT_INTERFACE:
-        case CURLOPT_KRB4LEVEL:
-        case CURLOPT_NETRC_FILE:
-        case CURLOPT_PROXY:
-        case CURLOPT_PROXYUSERPWD:
-        case CURLOPT_RANDOM_FILE:
-        case CURLOPT_RANGE:
-        case CURLOPT_REFERER:
-        case CURLOPT_SSLCERT:
-        case CURLOPT_SSLCERTTYPE:
-        case CURLOPT_SSLENGINE:
-        case CURLOPT_SSLKEY:
-        case CURLOPT_SSLKEYPASSWD:
-        case CURLOPT_SSLKEYTYPE:
-        case CURLOPT_SSL_CIPHER_LIST:
-        case CURLOPT_URL:
-        case CURLOPT_USERAGENT:
-        case CURLOPT_USERPWD:
-        case CURLOPT_SOURCE_HOST:
-        case CURLOPT_SOURCE_USERPWD:
-        case CURLOPT_SOURCE_PATH:
-/* FIXME: check if more of these options allow binary data */
-            str = PyString_AsString_NoNUL(obj);
-            if (str == NULL)
-                return NULL;
-            break;
-        case CURLOPT_POSTFIELDS:
-            if (PyString_AsStringAndSize(obj, &str, &len) != 0)
-                return NULL;
-            /* automatically set POSTFIELDSIZE */
-            res = curl_easy_setopt(self->handle, CURLOPT_POSTFIELDSIZE, (long)len);
-            if (res != CURLE_OK) {
-                CURLERROR_RETVAL();
-            }
-            break;
-        default:
-            PyErr_SetString(PyExc_TypeError, "strings are not supported for this option");
-            return NULL;
-        }
-        /* Allocate memory to hold the string */
-        assert(str != NULL);
-        if (len <= 0)
-            buf = strdup(str);
-        else {
-            buf = (char *) malloc(len);
-            if (buf) memcpy(buf, str, len);
-        }
-        if (buf == NULL)
-            return PyErr_NoMemory();
-        /* Call setopt */
-        res = curl_easy_setopt(self->handle, (CURLoption)option, buf);
-        /* Check for errors */
-        if (res != CURLE_OK) {
-            free(buf);
-            CURLERROR_RETVAL();
-        }
-        /* Save allocated option buffer */
-        opt_index = OPT_INDEX(option);
-        if (self->options[opt_index] != NULL) {
-            free(self->options[opt_index]);
-            self->options[opt_index] = NULL;
-        }
-        self->options[opt_index] = buf;
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-
-#define IS_LONG_OPTION(o)   (o < CURLOPTTYPE_OBJECTPOINT)
-#define IS_OFF_T_OPTION(o)  (o >= CURLOPTTYPE_OFF_T)
-
-    /* Handle the case of integer arguments */
-    if (PyInt_Check(obj)) {
-        long d = PyInt_AsLong(obj);
-
-        if (IS_LONG_OPTION(option))
-            res = curl_easy_setopt(self->handle, (CURLoption)option, (long)d);
-        else if (IS_OFF_T_OPTION(option))
-            res = curl_easy_setopt(self->handle, (CURLoption)option, (curl_off_t)d);
-        else {
-            PyErr_SetString(PyExc_TypeError, "integers are not supported for this option");
-            return NULL;
-        }
-        if (res != CURLE_OK) {
-            CURLERROR_RETVAL();
-        }
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-
-    /* Handle the case of long arguments (used by *_LARGE options) */
-    if (PyLong_Check(obj)) {
-        PY_LONG_LONG d = PyLong_AsLongLong(obj);
-        if (d == -1 && PyErr_Occurred())
-            return NULL;
-
-        if (IS_LONG_OPTION(option) && (long)d == d)
-            res = curl_easy_setopt(self->handle, (CURLoption)option, (long)d);
-        else if (IS_OFF_T_OPTION(option) && (curl_off_t)d == d)
-            res = curl_easy_setopt(self->handle, (CURLoption)option, (curl_off_t)d);
-        else {
-            PyErr_SetString(PyExc_TypeError, "longs are not supported for this option");
-            return NULL;
-        }
-        if (res != CURLE_OK) {
-            CURLERROR_RETVAL();
-        }
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-
-#undef IS_LONG_OPTION
-#undef IS_OFF_T_OPTION
-
-    /* Handle the case of file objects */
-    if (PyFile_Check(obj)) {
-        FILE *fp;
-
-        /* Ensure the option specified a file as well as the input */
-        switch (option) {
-        case CURLOPT_READDATA:
-        case CURLOPT_WRITEDATA:
-            break;
-        case CURLOPT_WRITEHEADER:
-            if (self->w_cb != NULL) {
-                PyErr_SetString(ErrorObject, "cannot combine WRITEHEADER with WRITEFUNCTION.");
-                return NULL;
-            }
-            break;
-        default:
-            PyErr_SetString(PyExc_TypeError, "files are not supported for this option");
-            return NULL;
-        }
-
-        fp = PyFile_AsFile(obj);
-        if (fp == NULL) {
-            PyErr_SetString(PyExc_TypeError, "second argument must be open file");
-            return NULL;
-        }
-        res = curl_easy_setopt(self->handle, (CURLoption)option, fp);
-        if (res != CURLE_OK) {
-            CURLERROR_RETVAL();
-        }
-        Py_INCREF(obj);
-
-        switch (option) {
-        case CURLOPT_READDATA:
-            ZAP(self->readdata_fp);
-            self->readdata_fp = obj;
-            break;
-        case CURLOPT_WRITEDATA:
-            ZAP(self->writedata_fp);
-            self->writedata_fp = obj;
-            break;
-        case CURLOPT_WRITEHEADER:
-            ZAP(self->writeheader_fp);
-            self->writeheader_fp = obj;
-            break;
-        default:
-            assert(0);
-            break;
-        }
-        /* Return success */
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-
-    /* Handle the case of list objects */
-    if (PyList_Check(obj)) {
-        struct curl_slist **old_slist = NULL;
-        struct curl_slist *slist = NULL;
-        int i, len;
-
-        switch (option) {
-        case CURLOPT_HTTP200ALIASES:
-            old_slist = &self->http200aliases;
-            break;
-        case CURLOPT_HTTPHEADER:
-            old_slist = &self->httpheader;
-            break;
-        case CURLOPT_QUOTE:
-            old_slist = &self->quote;
-            break;
-        case CURLOPT_POSTQUOTE:
-            old_slist = &self->postquote;
-            break;
-        case CURLOPT_PREQUOTE:
-            old_slist = &self->prequote;
-            break;
-        case CURLOPT_SOURCE_PREQUOTE:
-            old_slist = &self->source_prequote;
-            break;
-        case CURLOPT_SOURCE_POSTQUOTE:
-            old_slist = &self->source_postquote;
-            break;
-        case CURLOPT_HTTPPOST:
-            break;
-        default:
-            /* None of the list options were recognized, throw exception */
-            PyErr_SetString(PyExc_TypeError, "lists are not supported for this option");
-            return NULL;
-        }
-
-        len = PyList_Size(obj);
-        if (len == 0) {
-            /* Empty list - do nothing */
-            Py_INCREF(Py_None);
-            return Py_None;
-        }
-
-        /* Handle HTTPPOST different since we construct a HttpPost form struct */
-        if (option == CURLOPT_HTTPPOST) {
-            struct curl_httppost *post = NULL;
-            struct curl_httppost *last = NULL;
-
-            for (i = 0; i < len; i++) {
-                char *nstr = NULL, *cstr = NULL;
-                int nlen = -1, clen = -1;
-                PyObject *listitem = PyList_GetItem(obj, i);
-
-                if (!PyTuple_Check(listitem)) {
-                    curl_formfree(post);
-                    PyErr_SetString(PyExc_TypeError, "list items must be tuple objects");
-                    return NULL;
-                }
-                if (PyTuple_GET_SIZE(listitem) != 2) {
-                    curl_formfree(post);
-                    PyErr_SetString(PyExc_TypeError, "tuple must contain two elements (name, value)");
-                    return NULL;
-                }
-                if (PyString_AsStringAndSize(PyTuple_GET_ITEM(listitem, 0), &nstr, &nlen) != 0) {
-                    curl_formfree(post);
-                    PyErr_SetString(PyExc_TypeError, "tuple must contain string as first element");
-                    return NULL;
-                }
-                if (PyString_Check(PyTuple_GET_ITEM(listitem, 1))) {
-                    /* Handle strings as second argument for backwards compatibility */
-                    PyString_AsStringAndSize(PyTuple_GET_ITEM(listitem, 1), &cstr, &clen);
-                    /* INFO: curl_formadd() internally does memdup() the data, so
-                     * embedded NUL characters _are_ allowed here. */
-                    res = curl_formadd(&post, &last,
-                                       CURLFORM_COPYNAME, nstr,
-                                       CURLFORM_NAMELENGTH, (long) nlen,
-                                       CURLFORM_COPYCONTENTS, cstr,
-                                       CURLFORM_CONTENTSLENGTH, (long) clen,
-                                       CURLFORM_END);
-                    if (res != CURLE_OK) {
-                        curl_formfree(post);
-                        CURLERROR_RETVAL();
-                    }
-                }
-                else if (PyTuple_Check(PyTuple_GET_ITEM(listitem, 1))) {
-                    /* Supports content, file and content-type */
-                    PyObject *t = PyTuple_GET_ITEM(listitem, 1);
-                    int tlen = PyTuple_Size(t);
-                    int j, k, l;
-                    struct curl_forms *forms = NULL;
-
-                    /* Sanity check that there are at least two tuple items */
-                    if (tlen < 2) {
-                        curl_formfree(post);
-                        PyErr_SetString(PyExc_TypeError, "tuple must contain at least one option and one value");
-                        return NULL;
-                    }
-
-                    /* Allocate enough space to accommodate length options for content */
-                    forms = PyMem_Malloc(sizeof(struct curl_forms) * ((tlen*2) + 1));
-                    if (forms == NULL) {
-                        curl_formfree(post);
-                        PyErr_NoMemory();
-                        return NULL;
-                    }
-
-                    /* Iterate all the tuple members pairwise */
-                    for (j = 0, k = 0, l = 0; j < tlen; j += 2, l++) {
-                        char *ostr;
-                        int olen, val;
-
-                        if (j == (tlen-1)) {
-                            PyErr_SetString(PyExc_TypeError, "expected value");
-                            PyMem_Free(forms);
-                            curl_formfree(post);
-                            return NULL;
-                        }
-                        if (!PyInt_Check(PyTuple_GET_ITEM(t, j))) {
-                            PyErr_SetString(PyExc_TypeError, "option must be long");
-                            PyMem_Free(forms);
-                            curl_formfree(post);
-                            return NULL;
-                        }
-                        if (!PyString_Check(PyTuple_GET_ITEM(t, j+1))) {
-                            PyErr_SetString(PyExc_TypeError, "value must be string");
-                            PyMem_Free(forms);
-                            curl_formfree(post);
-                            return NULL;
-                        }
-
-                        val = PyLong_AsLong(PyTuple_GET_ITEM(t, j));
-                        if (val != CURLFORM_COPYCONTENTS &&
-                            val != CURLFORM_FILE &&
-                            val != CURLFORM_CONTENTTYPE)
-                        {
-                            PyErr_SetString(PyExc_TypeError, "unsupported option");
-                            PyMem_Free(forms);
-                            curl_formfree(post);
-                            return NULL;
-                        }
-                        PyString_AsStringAndSize(PyTuple_GET_ITEM(t, j+1), &ostr, &olen);
-                        forms[k].option = val;
-                        forms[k].value = ostr;
-                        ++k;
-                        if (val == CURLFORM_COPYCONTENTS) {
-                            /* Contents can contain \0 bytes so we specify the length */
-                            forms[k].option = CURLFORM_CONTENTSLENGTH;
-                            forms[k].value = (char *)olen;
-                            ++k;
-                        }
-                    }
-                    forms[k].option = CURLFORM_END;
-                    res = curl_formadd(&post, &last,
-                                       CURLFORM_COPYNAME, nstr,
-                                       CURLFORM_NAMELENGTH, (long) nlen,
-                                       CURLFORM_ARRAY, forms,
-                                       CURLFORM_END);
-                    PyMem_Free(forms);
-                    if (res != CURLE_OK) {
-                        curl_formfree(post);
-                        CURLERROR_RETVAL();
-                    }
-                } else {
-                    /* Some other type was given, ignore */
-                    curl_formfree(post);
-                    PyErr_SetString(PyExc_TypeError, "unsupported second type in tuple");
-                    return NULL;
-                }
-            }
-            res = curl_easy_setopt(self->handle, CURLOPT_HTTPPOST, post);
-            /* Check for errors */
-            if (res != CURLE_OK) {
-                curl_formfree(post);
-                CURLERROR_RETVAL();
-            }
-            /* Finally, free previously allocated httppost and update */
-            curl_formfree(self->httppost);
-            self->httppost = post;
-
-            Py_INCREF(Py_None);
-            return Py_None;
-        }
-
-        /* Just to be sure we do not bug off here */
-        assert(old_slist != NULL && slist == NULL);
-
-        /* Handle regular list operations on the other options */
-        for (i = 0; i < len; i++) {
-            PyObject *listitem = PyList_GetItem(obj, i);
-            struct curl_slist *nlist;
-            char *str;
-
-            if (!PyString_Check(listitem)) {
-                curl_slist_free_all(slist);
-                PyErr_SetString(PyExc_TypeError, "list items must be string objects");
-                return NULL;
-            }
-            /* INFO: curl_slist_append() internally does strdup() the data, so
-             * no embedded NUL characters allowed here. */
-            str = PyString_AsString_NoNUL(listitem);
-            if (str == NULL) {
-                curl_slist_free_all(slist);
-                return NULL;
-            }
-            nlist = curl_slist_append(slist, str);
-            if (nlist == NULL || nlist->data == NULL) {
-                curl_slist_free_all(slist);
-                return PyErr_NoMemory();
-            }
-            slist = nlist;
-        }
-        res = curl_easy_setopt(self->handle, (CURLoption)option, slist);
-        /* Check for errors */
-        if (res != CURLE_OK) {
-            curl_slist_free_all(slist);
-            CURLERROR_RETVAL();
-        }
-        /* Finally, free previously allocated list and update */
-        curl_slist_free_all(*old_slist);
-        *old_slist = slist;
-
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-
-    /* Handle the case of function objects for callbacks */
-    if (PyFunction_Check(obj) || PyCFunction_Check(obj) || PyMethod_Check(obj)) {
-        /* We use function types here to make sure that our callback
-         * definitions exactly match the <curl/curl.h> interface.
-         */
-        const curl_write_callback w_cb = write_callback;
-        const curl_write_callback h_cb = header_callback;
-        const curl_read_callback r_cb = read_callback;
-        const curl_progress_callback pro_cb = progress_callback;
-        const curl_debug_callback debug_cb = debug_callback;
-        const curl_ioctl_callback ioctl_cb = ioctl_callback;
-
-        switch(option) {
-        case CURLOPT_WRITEFUNCTION:
-            if (self->writeheader_fp != NULL) {
-                PyErr_SetString(ErrorObject, "cannot combine WRITEFUNCTION with WRITEHEADER option.");
-                return NULL;
-            }
-            Py_INCREF(obj);
-            ZAP(self->writedata_fp);
-            ZAP(self->w_cb);
-            self->w_cb = obj;
-            curl_easy_setopt(self->handle, CURLOPT_WRITEFUNCTION, w_cb);
-            curl_easy_setopt(self->handle, CURLOPT_WRITEDATA, self);
-            break;
-        case CURLOPT_HEADERFUNCTION:
-            Py_INCREF(obj);
-            ZAP(self->h_cb);
-            self->h_cb = obj;
-            curl_easy_setopt(self->handle, CURLOPT_HEADERFUNCTION, h_cb);
-            curl_easy_setopt(self->handle, CURLOPT_WRITEHEADER, self);
-            break;
-        case CURLOPT_READFUNCTION:
-            Py_INCREF(obj);
-            ZAP(self->readdata_fp);
-            ZAP(self->r_cb);
-            self->r_cb = obj;
-            curl_easy_setopt(self->handle, CURLOPT_READFUNCTION, r_cb);
-            curl_easy_setopt(self->handle, CURLOPT_READDATA, self);
-            break;
-        case CURLOPT_PROGRESSFUNCTION:
-            Py_INCREF(obj);
-            ZAP(self->pro_cb);
-            self->pro_cb = obj;
-            curl_easy_setopt(self->handle, CURLOPT_PROGRESSFUNCTION, pro_cb);
-            curl_easy_setopt(self->handle, CURLOPT_PROGRESSDATA, self);
-            break;
-        case CURLOPT_DEBUGFUNCTION:
-            Py_INCREF(obj);
-            ZAP(self->debug_cb);
-            self->debug_cb = obj;
-            curl_easy_setopt(self->handle, CURLOPT_DEBUGFUNCTION, debug_cb);
-            curl_easy_setopt(self->handle, CURLOPT_DEBUGDATA, self);
-            break;
-        case CURLOPT_IOCTLFUNCTION:
-            Py_INCREF(obj);
-            ZAP(self->ioctl_cb);
-            self->ioctl_cb = obj;
-            curl_easy_setopt(self->handle, CURLOPT_IOCTLFUNCTION, ioctl_cb);
-            curl_easy_setopt(self->handle, CURLOPT_IOCTLDATA, self);
-            break;
-
-        default:
-            /* None of the function options were recognized, throw exception */
-            PyErr_SetString(PyExc_TypeError, "functions are not supported for this option");
-            return NULL;
-        }
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-
-    /* Failed to match any of the function signatures -- return error */
-error:
-    PyErr_SetString(PyExc_TypeError, "invalid arguments to setopt");
-    return NULL;
-}
-
-
-static PyObject *
-do_curl_getinfo(CurlObject *self, PyObject *args)
-{
-    int option;
-    int res;
-
-    if (!PyArg_ParseTuple(args, "i:getinfo", &option)) {
-        return NULL;
-    }
-    if (check_curl_state(self, 1 | 2, "getinfo") != 0) {
-        return NULL;
-    }
-
-    switch (option) {
-    case CURLINFO_FILETIME:
-    case CURLINFO_HEADER_SIZE:
-    case CURLINFO_HTTP_CODE:
-    case CURLINFO_REDIRECT_COUNT:
-    case CURLINFO_REQUEST_SIZE:
-    case CURLINFO_SSL_VERIFYRESULT:
-    case CURLINFO_HTTP_CONNECTCODE:
-    case CURLINFO_HTTPAUTH_AVAIL:
-    case CURLINFO_PROXYAUTH_AVAIL:
-    case CURLINFO_OS_ERRNO:
-    case CURLINFO_NUM_CONNECTS:
-        {
-            /* Return PyInt as result */
-            long l_res = -1;
-
-            res = curl_easy_getinfo(self->handle, (CURLINFO)option, &l_res);
-            /* Check for errors and return result */
-            if (res != CURLE_OK) {
-                CURLERROR_RETVAL();
-            }
-            return PyInt_FromLong(l_res);
-        }
-
-    case CURLINFO_CONTENT_TYPE:
-    case CURLINFO_EFFECTIVE_URL:
-        {
-            /* Return PyString as result */
-            char *s_res = NULL;
-
-            res = curl_easy_getinfo(self->handle, (CURLINFO)option, &s_res);
-            if (res != CURLE_OK) {
-                CURLERROR_RETVAL();
-            }
-            /* If the resulting string is NULL, return None */
-            if (s_res == NULL) {
-                Py_INCREF(Py_None);
-                return Py_None;
-            }
-            return PyString_FromString(s_res);
-        }
-
-    case CURLINFO_CONNECT_TIME:
-    case CURLINFO_CONTENT_LENGTH_DOWNLOAD:
-    case CURLINFO_CONTENT_LENGTH_UPLOAD:
-    case CURLINFO_NAMELOOKUP_TIME:
-    case CURLINFO_PRETRANSFER_TIME:
-    case CURLINFO_REDIRECT_TIME:
-    case CURLINFO_SIZE_DOWNLOAD:
-    case CURLINFO_SIZE_UPLOAD:
-    case CURLINFO_SPEED_DOWNLOAD:
-    case CURLINFO_SPEED_UPLOAD:
-    case CURLINFO_STARTTRANSFER_TIME:
-    case CURLINFO_TOTAL_TIME:
-        {
-            /* Return PyFloat as result */
-            double d_res = 0.0;
-
-            res = curl_easy_getinfo(self->handle, (CURLINFO)option, &d_res);
-            if (res != CURLE_OK) {
-                CURLERROR_RETVAL();
-            }
-            return PyFloat_FromDouble(d_res);
-        }
-
-    case CURLINFO_SSL_ENGINES:
-        {
-            /* Return a list of strings */
-            struct curl_slist *slist = NULL;
-
-            res = curl_easy_getinfo(self->handle, (CURLINFO)option, &slist);
-            if (res != CURLE_OK) {
-                CURLERROR_RETVAL();
-            }
-            return convert_slist(slist, 1 | 2);
-        }
-    }
-
-    /* Got wrong option on the method call */
-    PyErr_SetString(PyExc_ValueError, "invalid argument to getinfo");
-    return NULL;
-}
-
-
-/*************************************************************************
-// CurlMultiObject
-**************************************************************************/
-
-/* --------------- construct/destruct (i.e. open/close) --------------- */
-
-/* constructor - this is a module-level function returning a new instance */
-static CurlMultiObject *
-do_multi_new(PyObject *dummy)
-{
-    CurlMultiObject *self;
-
-    UNUSED(dummy);
-
-    /* Allocate python curl-multi object */
-    self = (CurlMultiObject *) PyObject_GC_New(CurlMultiObject, p_CurlMulti_Type);
-    if (self) {
-        PyObject_GC_Track(self);
-    }
-    else {
-        return NULL;
-    }
-
-    /* Initialize object attributes */
-    self->dict = NULL;
-    self->state = NULL;
-
-    /* Allocate libcurl multi handle */
-    self->multi_handle = curl_multi_init();
-    if (self->multi_handle == NULL) {
-        Py_DECREF(self);
-        PyErr_SetString(ErrorObject, "initializing curl-multi failed");
-        return NULL;
-    }
-    return self;
-}
-
-
-static void
-util_multi_close(CurlMultiObject *self)
-{
-    assert(self != NULL);
-    self->state = NULL;
-    if (self->multi_handle != NULL) {
-        CURLM *multi_handle = self->multi_handle;
-        self->multi_handle = NULL;
-        curl_multi_cleanup(multi_handle);
-    }
-}
-
-
-static void
-do_multi_dealloc(CurlMultiObject *self)
-{
-    PyObject_GC_UnTrack(self);
-    Py_TRASHCAN_SAFE_BEGIN(self)
-
-    ZAP(self->dict);
-    util_multi_close(self);
-
-    PyObject_GC_Del(self);
-    Py_TRASHCAN_SAFE_END(self)
-}
-
-
-static PyObject *
-do_multi_close(CurlMultiObject *self)
-{
-    if (check_multi_state(self, 2, "close") != 0) {
-        return NULL;
-    }
-    util_multi_close(self);
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* --------------- GC support --------------- */
-
-/* Drop references that may have created reference cycles. */
-static int
-do_multi_clear(CurlMultiObject *self)
-{
-    ZAP(self->dict);
-    return 0;
-}
-
-static int
-do_multi_traverse(CurlMultiObject *self, visitproc visit, void *arg)
-{
-    int err;
-#undef VISIT
-#define VISIT(v)    if ((v) != NULL && ((err = visit(v, arg)) != 0)) return err
-
-    VISIT(self->dict);
-
-    return 0;
-#undef VISIT
-}
-
-/* --------------- perform --------------- */
-
-
-static PyObject *
-do_multi_perform(CurlMultiObject *self)
-{
-    CURLMcode res;
-    int running = -1;
-
-    if (check_multi_state(self, 1 | 2, "perform") != 0) {
-        return NULL;
-    }
-
-    /* Release global lock and start */
-    self->state = PyThreadState_Get();
-    assert(self->state != NULL);
-    Py_BEGIN_ALLOW_THREADS
-    res = curl_multi_perform(self->multi_handle, &running);
-    Py_END_ALLOW_THREADS
-    self->state = NULL;
-
-    /* We assume these errors are ok, otherwise throw exception */
-    if (res != CURLM_OK && res != CURLM_CALL_MULTI_PERFORM) {
-        CURLERROR_MSG("perform failed");
-    }
-
-    /* Return a tuple with the result and the number of running handles */
-    return Py_BuildValue("(ii)", (int)res, running);
-}
-
-
-/* --------------- add_handle/remove_handle --------------- */
-
-/* static utility function */
-static int
-check_multi_add_remove(const CurlMultiObject *self, const CurlObject *obj)
-{
-    /* check CurlMultiObject status */
-    assert_multi_state(self);
-    if (self->multi_handle == NULL) {
-        PyErr_SetString(ErrorObject, "cannot add/remove handle - multi-stack is closed");
-        return -1;
-    }
-    if (self->state != NULL) {
-        PyErr_SetString(ErrorObject, "cannot add/remove handle - multi_perform() already running");
-        return -1;
-    }
-    /* check CurlObject status */
-    assert_curl_state(obj);
-    if (obj->state != NULL) {
-        PyErr_SetString(ErrorObject, "cannot add/remove handle - perform() of curl object already running");
-        return -1;
-    }
-    if (obj->multi_stack != NULL && obj->multi_stack != self) {
-        PyErr_SetString(ErrorObject, "cannot add/remove handle - curl object already on another multi-stack");
-        return -1;
-    }
-    return 0;
-}
-
-
-static PyObject *
-do_multi_add_handle(CurlMultiObject *self, PyObject *args)
-{
-    CurlObject *obj;
-    CURLMcode res;
-
-    if (!PyArg_ParseTuple(args, "O!:add_handle", p_Curl_Type, &obj)) {
-        return NULL;
-    }
-    if (check_multi_add_remove(self, obj) != 0) {
-        return NULL;
-    }
-    if (obj->handle == NULL) {
-        PyErr_SetString(ErrorObject, "curl object already closed");
-        return NULL;
-    }
-    if (obj->multi_stack == self) {
-        PyErr_SetString(ErrorObject, "curl object already on this multi-stack");
-        return NULL;
-    }
-    assert(obj->multi_stack == NULL);
-    res = curl_multi_add_handle(self->multi_handle, obj->handle);
-    if (res != CURLM_OK) {
-        CURLERROR_MSG("curl_multi_add_handle() failed due to internal errors");
-    }
-    obj->multi_stack = self;
-    Py_INCREF(self);
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-static PyObject *
-do_multi_remove_handle(CurlMultiObject *self, PyObject *args)
-{
-    CurlObject *obj;
-    CURLMcode res;
-
-    if (!PyArg_ParseTuple(args, "O!:remove_handle", p_Curl_Type, &obj)) {
-        return NULL;
-    }
-    if (check_multi_add_remove(self, obj) != 0) {
-        return NULL;
-    }
-    if (obj->handle == NULL) {
-        /* CurlObject handle already closed -- ignore */
-        goto done;
-    }
-    if (obj->multi_stack != self) {
-        PyErr_SetString(ErrorObject, "curl object not on this multi-stack");
-        return NULL;
-    }
-    res = curl_multi_remove_handle(self->multi_handle, obj->handle);
-    if (res != CURLM_OK) {
-        CURLERROR_MSG("curl_multi_remove_handle() failed due to internal errors");
-    }
-    assert(obj->multi_stack == self);
-    obj->multi_stack = NULL;
-    Py_DECREF(self);
-done:
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* --------------- fdset ---------------------- */
-
-static PyObject *
-do_multi_fdset(CurlMultiObject *self)
-{
-    CURLMcode res;
-    int max_fd = -1, fd;
-    PyObject *ret = NULL;
-    PyObject *read_list = NULL, *write_list = NULL, *except_list = NULL;
-    PyObject *py_fd = NULL;
-
-    if (check_multi_state(self, 1 | 2, "fdset") != 0) {
-        return NULL;
-    }
-
-    /* Clear file descriptor sets */
-    FD_ZERO(&self->read_fd_set);
-    FD_ZERO(&self->write_fd_set);
-    FD_ZERO(&self->exc_fd_set);
-
-    /* Don't bother releasing the gil as this is just a data structure operation */
-    res = curl_multi_fdset(self->multi_handle, &self->read_fd_set,
-                           &self->write_fd_set, &self->exc_fd_set, &max_fd);
-    if (res != CURLM_OK || max_fd < 0) {
-        CURLERROR_MSG("curl_multi_fdset() failed due to internal errors");
-    }
-
-    /* Allocate lists. */
-    if ((read_list = PyList_New(0)) == NULL) goto error;
-    if ((write_list = PyList_New(0)) == NULL) goto error;
-    if ((except_list = PyList_New(0)) == NULL) goto error;
-
-    /* Populate lists */
-    for (fd = 0; fd < max_fd + 1; fd++) {
-        if (FD_ISSET(fd, &self->read_fd_set)) {
-            if ((py_fd = PyInt_FromLong((long)fd)) == NULL) goto error;
-            if (PyList_Append(read_list, py_fd) != 0) goto error;
-            Py_DECREF(py_fd);
-            py_fd = NULL;
-        }
-        if (FD_ISSET(fd, &self->write_fd_set)) {
-            if ((py_fd = PyInt_FromLong((long)fd)) == NULL) goto error;
-            if (PyList_Append(write_list, py_fd) != 0) goto error;
-            Py_DECREF(py_fd);
-            py_fd = NULL;
-        }
-        if (FD_ISSET(fd, &self->exc_fd_set)) {
-            if ((py_fd = PyInt_FromLong((long)fd)) == NULL) goto error;
-            if (PyList_Append(except_list, py_fd) != 0) goto error;
-            Py_DECREF(py_fd);
-            py_fd = NULL;
-        }
-    }
-
-    /* Return a tuple with the 3 lists */
-    ret = Py_BuildValue("(OOO)", read_list, write_list, except_list);
-error:
-    Py_XDECREF(py_fd);
-    Py_XDECREF(except_list);
-    Py_XDECREF(write_list);
-    Py_XDECREF(read_list);
-    return ret;
-}
-
-
-/* --------------- info_read --------------- */
-
-static PyObject *
-do_multi_info_read(CurlMultiObject *self, PyObject *args)
-{
-    PyObject *ret = NULL;
-    PyObject *ok_list = NULL, *err_list = NULL;
-    CURLMsg *msg;
-    int in_queue = 0, num_results = INT_MAX;
-
-    /* Sanity checks */
-    if (!PyArg_ParseTuple(args, "|i:info_read", &num_results)) {
-        return NULL;
-    }
-    if (num_results <= 0) {
-        PyErr_SetString(ErrorObject, "argument to info_read must be greater than zero");
-        return NULL;
-    }
-    if (check_multi_state(self, 1 | 2, "info_read") != 0) {
-        return NULL;
-    }
-
-    if ((ok_list = PyList_New(0)) == NULL) goto error;
-    if ((err_list = PyList_New(0)) == NULL) goto error;
-
-    /* Loop through all messages */
-    while ((msg = curl_multi_info_read(self->multi_handle, &in_queue)) != NULL) {
-        CURLcode res;
-        CurlObject *co = NULL;
-
-        /* Check for termination as specified by the user */
-        if (num_results-- <= 0) {
-            break;
-        }
-
-        /* Fetch the curl object that corresponds to the curl handle in the message */
-        res = curl_easy_getinfo(msg->easy_handle, CURLINFO_PRIVATE, &co);
-        if (res != CURLE_OK || co == NULL) {
-            Py_DECREF(err_list);
-            Py_DECREF(ok_list);
-            CURLERROR_MSG("Unable to fetch curl handle from curl object");
-        }
-        assert(co->ob_type == p_Curl_Type);
-        if (msg->msg != CURLMSG_DONE) {
-            /* FIXME: what does this mean ??? */
-        }
-        if (msg->data.result == CURLE_OK) {
-            /* Append curl object to list of objects which succeeded */
-            if (PyList_Append(ok_list, (PyObject *)co) != 0) {
-                goto error;
-            }
-        }
-        else {
-            /* Create a result tuple that will get added to err_list. */
-            PyObject *v = Py_BuildValue("(Ois)", (PyObject *)co, (int)msg->data.result, co->error);
-            /* Append curl object to list of objects which failed */
-            if (v == NULL || PyList_Append(err_list, v) != 0) {
-                Py_XDECREF(v);
-                goto error;
-            }
-            Py_DECREF(v);
-        }
-    }
-    /* Return (number of queued messages, [ok_objects], [error_objects]) */
-    ret = Py_BuildValue("(iOO)", in_queue, ok_list, err_list);
-error:
-    Py_XDECREF(err_list);
-    Py_XDECREF(ok_list);
-    return ret;
-}
-
-
-/* --------------- select --------------- */
-
-static PyObject *
-do_multi_select(CurlMultiObject *self, PyObject *args)
-{
-    int max_fd = -1, n;
-    double timeout = -1.0;
-    struct timeval tv, *tvp;
-    CURLMcode res;
-
-    if (!PyArg_ParseTuple(args, "|d:select", &timeout)) {
-        return NULL;
-    }
-    if (check_multi_state(self, 1 | 2, "select") != 0) {
-        return NULL;
-    }
-
-   if (timeout == -1.0) {
-        /* no timeout given - wait forever */
-        tvp = NULL;
-   } else if (timeout < 0 || timeout >= 365 * 24 * 60 * 60) {
-        PyErr_SetString(PyExc_OverflowError, "invalid timeout period");
-        return NULL;
-   } else {
-        long seconds = (long)timeout;
-        timeout = timeout - (double)seconds;
-        assert(timeout >= 0.0); assert(timeout < 1.0);
-        tv.tv_sec = seconds;
-        tv.tv_usec = (long)(timeout*1000000.0);
-        tvp = &tv;
-    }
-
-    FD_ZERO(&self->read_fd_set);
-    FD_ZERO(&self->write_fd_set);
-    FD_ZERO(&self->exc_fd_set);
-
-    res = curl_multi_fdset(self->multi_handle, &self->read_fd_set,
-                           &self->write_fd_set, &self->exc_fd_set, &max_fd);
-    if (res != CURLM_OK) {
-        CURLERROR_MSG("multi_fdset failed");
-    }
-
-    if (max_fd < 0) {
-        n = 0;
-    }
-    else {
-        Py_BEGIN_ALLOW_THREADS
-        n = select(max_fd + 1, &self->read_fd_set, &self->write_fd_set, &self->exc_fd_set, tvp);
-        Py_END_ALLOW_THREADS
-        /* info: like Python's socketmodule.c we do not raise an exception
-         *       if select() fails - we'll leave it to the actual libcurl
-         *       socket code to report any errors.
-         */
-    }
-
-    return PyInt_FromLong(n);
-}
-
-
-/*************************************************************************
-// type definitions
-**************************************************************************/
-
-/* --------------- methods --------------- */
-
-static char co_close_doc [] = "close() -> None.  Close handle and end curl session.\n";
-static char co_errstr_doc [] = "errstr() -> String.  Return the internal libcurl error buffer string.\n";
-static char co_getinfo_doc [] = "getinfo(info) -> Res.  Extract and return information from a curl session.  Throws pycurl.error exception upon failure.\n";
-static char co_perform_doc [] = "perform() -> None.  Perform a file transfer.  Throws pycurl.error exception upon failure.\n";
-static char co_setopt_doc [] = "setopt(option, parameter) -> None.  Set curl session option.  Throws pycurl.error exception upon failure.\n";
-static char co_unsetopt_doc [] = "unsetopt(option) -> None.  Reset curl session option to default value.  Throws pycurl.error exception upon failure.\n";
-
-static char co_multi_fdset_doc [] = "fdset() -> Tuple.  Returns a tuple of three lists that can be passed to the select.select() method .\n";
-static char co_multi_info_read_doc [] = "info_read([max_objects]) -> Tuple. Returns a tuple (number of queued handles, [curl objects]).\n";
-static char co_multi_select_doc [] = "select([timeout]) -> Int.  Returns result from doing a select() on the curl multi file descriptor with the given timeout.\n";
-
-static PyMethodDef curlobject_methods[] = {
-    {"close", (PyCFunction)do_curl_close, METH_NOARGS, co_close_doc},
-    {"errstr", (PyCFunction)do_curl_errstr, METH_NOARGS, co_errstr_doc},
-    {"getinfo", (PyCFunction)do_curl_getinfo, METH_VARARGS, co_getinfo_doc},
-    {"perform", (PyCFunction)do_curl_perform, METH_NOARGS, co_perform_doc},
-    {"setopt", (PyCFunction)do_curl_setopt, METH_VARARGS, co_setopt_doc},
-    {"unsetopt", (PyCFunction)do_curl_unsetopt, METH_VARARGS, co_unsetopt_doc},
-    {NULL, NULL, 0, NULL}
-};
-
-static PyMethodDef curlmultiobject_methods[] = {
-    {"add_handle", (PyCFunction)do_multi_add_handle, METH_VARARGS, NULL},
-    {"close", (PyCFunction)do_multi_close, METH_NOARGS, NULL},
-    {"fdset", (PyCFunction)do_multi_fdset, METH_NOARGS, co_multi_fdset_doc},
-    {"info_read", (PyCFunction)do_multi_info_read, METH_VARARGS, co_multi_info_read_doc},
-    {"perform", (PyCFunction)do_multi_perform, METH_NOARGS, NULL},
-    {"remove_handle", (PyCFunction)do_multi_remove_handle, METH_VARARGS, NULL},
-    {"select", (PyCFunction)do_multi_select, METH_VARARGS, co_multi_select_doc},
-    {NULL, NULL, 0, NULL}
-};
-
-
-/* --------------- setattr/getattr --------------- */
-
-static PyObject *curlobject_constants = NULL;
-static PyObject *curlmultiobject_constants = NULL;
-
-static int
-my_setattr(PyObject **dict, char *name, PyObject *v)
-{
-    if (v == NULL) {
-        int rv = -1;
-        if (*dict != NULL)
-            rv = PyDict_DelItemString(*dict, name);
-        if (rv < 0)
-            PyErr_SetString(PyExc_AttributeError, "delete non-existing attribute");
-        return rv;
-    }
-    if (*dict == NULL) {
-        *dict = PyDict_New();
-        if (*dict == NULL)
-            return -1;
-    }
-    return PyDict_SetItemString(*dict, name, v);
-}
-
-static PyObject *
-my_getattr(PyObject *co, char *name, PyObject *dict1, PyObject *dict2, PyMethodDef *m)
-{
-    PyObject *v = NULL;
-    if (v == NULL && dict1 != NULL)
-        v = PyDict_GetItemString(dict1, name);
-    if (v == NULL && dict2 != NULL)
-        v = PyDict_GetItemString(dict2, name);
-    if (v != NULL) {
-        Py_INCREF(v);
-        return v;
-    }
-    return Py_FindMethod(m, co, name);
-}
-
-static int
-do_curl_setattr(CurlObject *co, char *name, PyObject *v)
-{
-    assert_curl_state(co);
-    return my_setattr(&co->dict, name, v);
-}
-
-static int
-do_multi_setattr(CurlMultiObject *co, char *name, PyObject *v)
-{
-    assert_multi_state(co);
-    return my_setattr(&co->dict, name, v);
-}
-
-static PyObject *
-do_curl_getattr(CurlObject *co, char *name)
-{
-    assert_curl_state(co);
-    return my_getattr((PyObject *)co, name, co->dict,
-                      curlobject_constants, curlobject_methods);
-}
-
-static PyObject *
-do_multi_getattr(CurlMultiObject *co, char *name)
-{
-    assert_multi_state(co);
-    return my_getattr((PyObject *)co, name, co->dict,
-                      curlmultiobject_constants, curlmultiobject_methods);
-}
-
-
-/* --------------- actual type definitions --------------- */
-
-static PyTypeObject Curl_Type = {
-    PyObject_HEAD_INIT(NULL)
-    0,                          /* ob_size */
-    "pycurl.Curl",              /* tp_name */
-    sizeof(CurlObject),         /* tp_basicsize */
-    0,                          /* tp_itemsize */
-    /* Methods */
-    (destructor)do_curl_dealloc,   /* tp_dealloc */
-    0,                          /* tp_print */
-    (getattrfunc)do_curl_getattr,  /* tp_getattr */
-    (setattrfunc)do_curl_setattr,  /* tp_setattr */
-    0,                          /* tp_compare */
-    0,                          /* tp_repr */
-    0,                          /* tp_as_number */
-    0,                          /* tp_as_sequence */
-    0,                          /* tp_as_mapping */
-    0,                          /* tp_hash */
-    0,                          /* tp_call */
-    0,                          /* tp_str */
-    0,                          /* tp_getattro */
-    0,                          /* tp_setattro */
-    0,                          /* tp_as_buffer */
-    Py_TPFLAGS_HAVE_GC,         /* tp_flags */
-    0,                          /* tp_doc */
-    (traverseproc)do_curl_traverse, /* tp_traverse */
-    (inquiry)do_curl_clear      /* tp_clear */
-    /* More fields follow here, depending on your Python version. You can
-     * safely ignore any compiler warnings about missing initializers.
-     */
-};
-
-static PyTypeObject CurlMulti_Type = {
-    PyObject_HEAD_INIT(NULL)
-    0,                          /* ob_size */
-    "pycurl.CurlMulti",         /* tp_name */
-    sizeof(CurlMultiObject),    /* tp_basicsize */
-    0,                          /* tp_itemsize */
-    /* Methods */
-    (destructor)do_multi_dealloc,   /* tp_dealloc */
-    0,                          /* tp_print */
-    (getattrfunc)do_multi_getattr,  /* tp_getattr */
-    (setattrfunc)do_multi_setattr,  /* tp_setattr */
-    0,                          /* tp_compare */
-    0,                          /* tp_repr */
-    0,                          /* tp_as_number */
-    0,                          /* tp_as_sequence */
-    0,                          /* tp_as_mapping */
-    0,                          /* tp_hash */
-    0,                          /* tp_call */
-    0,                          /* tp_str */
-    0,                          /* tp_getattro */
-    0,                          /* tp_setattro */
-    0,                          /* tp_as_buffer */
-    Py_TPFLAGS_HAVE_GC,         /* tp_flags */
-    0,                          /* tp_doc */
-    (traverseproc)do_multi_traverse, /* tp_traverse */
-    (inquiry)do_multi_clear     /* tp_clear */
-    /* More fields follow here, depending on your Python version. You can
-     * safely ignore any compiler warnings about missing initializers.
-     */
-};
-
-
-/*************************************************************************
-// module level
-// Note that the object constructors (do_curl_new, do_multi_new)
-// are module-level functions as well.
-**************************************************************************/
-
-static PyObject *
-do_global_init(PyObject *dummy, PyObject *args)
-{
-    int res, option;
-
-    UNUSED(dummy);
-    if (!PyArg_ParseTuple(args, "i:global_init", &option)) {
-        return NULL;
-    }
-
-    if (!(option == CURL_GLOBAL_SSL ||
-          option == CURL_GLOBAL_WIN32 ||
-          option == CURL_GLOBAL_ALL ||
-          option == CURL_GLOBAL_NOTHING)) {
-        PyErr_SetString(PyExc_ValueError, "invalid option to global_init");
-        return NULL;
-    }
-
-    res = curl_global_init(option);
-    if (res != CURLE_OK) {
-        PyErr_SetString(ErrorObject, "unable to set global option");
-        return NULL;
-    }
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-static PyObject *
-do_global_cleanup(PyObject *dummy)
-{
-    UNUSED(dummy);
-    curl_global_cleanup();
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-
-static PyObject *vi_str(const char *s)
-{
-    if (s == NULL) {
-        Py_INCREF(Py_None);
-        return Py_None;
-    }
-    while (*s == ' ' || *s == '\t')
-        s++;
-    return PyString_FromString(s);
-}
-
-static PyObject *
-do_version_info(PyObject *dummy, PyObject *args)
-{
-    const curl_version_info_data *vi;
-    PyObject *ret = NULL;
-    PyObject *protocols = NULL;
-    PyObject *tmp;
-    int i;
-    int stamp = CURLVERSION_NOW;
-
-    UNUSED(dummy);
-    if (!PyArg_ParseTuple(args, "|i:version_info", &stamp)) {
-        return NULL;
-    }
-    vi = curl_version_info((CURLversion) stamp);
-    if (vi == NULL) {
-        PyErr_SetString(ErrorObject, "unable to get version info");
-        return NULL;
-    }
-
-    /* Note: actually libcurl in lib/version.c does ignore
-     * the "stamp" parm, and so do we */
-
-    for (i = 0; vi->protocols[i] != NULL; )
-        i++;
-    protocols = PyTuple_New(i);
-    if (protocols == NULL)
-        goto error;
-    for (i = 0; vi->protocols[i] != NULL; i++) {
-        tmp = vi_str(vi->protocols[i]);
-        if (tmp == NULL)
-            goto error;
-        PyTuple_SET_ITEM(protocols, i, tmp);
-    }
-    ret = PyTuple_New(12);
-    if (ret == NULL)
-        goto error;
-
-#define SET(i, v) \
-        tmp = (v); if (tmp == NULL) goto error; PyTuple_SET_ITEM(ret, i, tmp)
-    SET(0, PyInt_FromLong((long) vi->age));
-    SET(1, vi_str(vi->version));
-    SET(2, PyInt_FromLong(vi->version_num));
-    SET(3, vi_str(vi->host));
-    SET(4, PyInt_FromLong(vi->features));
-    SET(5, vi_str(vi->ssl_version));
-    SET(6, PyInt_FromLong(vi->ssl_version_num));
-    SET(7, vi_str(vi->libz_version));
-    SET(8, protocols);
-    SET(9, vi_str(vi->ares));
-    SET(10, PyInt_FromLong(vi->ares_num));
-    SET(11, vi_str(vi->libidn));
-#undef SET
-    return ret;
-
-error:
-    Py_XDECREF(ret);
-    Py_XDECREF(protocols);
-    return NULL;
-}
-
-
-/* Per function docstrings */
-static char pycurl_global_init_doc [] =
-"global_init(option) -> None.  Initialize curl environment.\n";
-
-static char pycurl_global_cleanup_doc [] =
-"global_cleanup() -> None.  Cleanup curl environment.\n";
-
-static char pycurl_version_info_doc [] =
-"version_info() -> tuple.  Returns a 12-tuple with the version info.\n";
-
-static char pycurl_curl_new_doc [] =
-"Curl() -> New curl object.  Implicitly calls global_init() if not called.\n";
-
-static char pycurl_multi_new_doc [] =
-"CurlMulti() -> New curl multi-object.\n";
-
-
-/* List of functions defined in this module */
-static PyMethodDef curl_methods[] = {
-    {"global_init", (PyCFunction)do_global_init, METH_VARARGS, pycurl_global_init_doc},
-    {"global_cleanup", (PyCFunction)do_global_cleanup, METH_NOARGS, pycurl_global_cleanup_doc},
-    {"version_info", (PyCFunction)do_version_info, METH_VARARGS, pycurl_version_info_doc},
-    {"Curl", (PyCFunction)do_curl_new, METH_NOARGS, pycurl_curl_new_doc},
-    {"CurlMulti", (PyCFunction)do_multi_new, METH_NOARGS, pycurl_multi_new_doc},
-    {NULL, NULL, 0, NULL}
-};
-
-
-/* Module docstring */
-static char module_doc [] =
-"This module implements an interface to the cURL library.\n"
-"\n"
-"Types:\n"
-"\n"
-"Curl() -> New object.  Create a new curl object.\n"
-"CurlMulti() -> New object.  Create a new curl multi-object.\n"
-"\n"
-"Functions:\n"
-"\n"
-"global_init(option) -> None.  Initialize curl environment.\n"
-"global_cleanup() -> None.  Cleanup curl environment.\n"
-"version_info() -> tuple.  Return version information.\n"
-;
-
-
-/* Helper functions for inserting constants into the module namespace */
-
-static void
-insobj2(PyObject *dict1, PyObject *dict2, char *name, PyObject *value)
-{
-    /* Insert an object into one or two dicts. Eats a reference to value.
-     * See also the implementation of PyDict_SetItemString(). */
-    PyObject *key = NULL;
-
-    if (dict1 == NULL && dict2 == NULL)
-        goto error;
-    if (value == NULL)
-        goto error;
-    key = PyString_FromString(name);
-    if (key == NULL)
-        goto error;
-#if 0
-    PyString_InternInPlace(&key);   /* XXX Should we really? */
-#endif
-    if (dict1 != NULL) {
-        assert(PyDict_GetItem(dict1, key) == NULL);
-        if (PyDict_SetItem(dict1, key, value) != 0)
-            goto error;
-    }
-    if (dict2 != NULL && dict2 != dict1) {
-        assert(PyDict_GetItem(dict2, key) == NULL);
-        if (PyDict_SetItem(dict2, key, value) != 0)
-            goto error;
-    }
-    Py_DECREF(key);
-    Py_DECREF(value);
-    return;
-error:
-    Py_FatalError("pycurl: FATAL: insobj2() failed");
-    assert(0);
-}
-
-static void
-insstr(PyObject *d, char *name, char *value)
-{
-    PyObject *v = PyString_FromString(value);
-    insobj2(d, NULL, name, v);
-}
-
-static void
-insint(PyObject *d, char *name, long value)
-{
-    PyObject *v = PyInt_FromLong(value);
-    insobj2(d, NULL, name, v);
-}
-
-static void
-insint_c(PyObject *d, char *name, long value)
-{
-    PyObject *v = PyInt_FromLong(value);
-    insobj2(d, curlobject_constants, name, v);
-}
-
-static void
-insint_m(PyObject *d, char *name, long value)
-{
-    PyObject *v = PyInt_FromLong(value);
-    insobj2(d, curlmultiobject_constants, name, v);
-}
-
-
-/* Initialization function for the module */
-#if defined(PyMODINIT_FUNC)
-PyMODINIT_FUNC
-#else
-#if defined(__cplusplus)
-extern "C"
-#endif
-DL_EXPORT(void)
-#endif
-initpycurl(void)
-{
-    PyObject *m, *d;
-    const curl_version_info_data *vi;
-
-    /* Initialize the type of the new type objects here; doing it here
-     * is required for portability to Windows without requiring C++. */
-    p_Curl_Type = &Curl_Type;
-    p_CurlMulti_Type = &CurlMulti_Type;
-    Curl_Type.ob_type = &PyType_Type;
-    CurlMulti_Type.ob_type = &PyType_Type;
-
-    /* Create the module and add the functions */
-    m = Py_InitModule3("pycurl", curl_methods, module_doc);
-    assert(m != NULL && PyModule_Check(m));
-
-    /* Add error object to the module */
-    d = PyModule_GetDict(m);
-    assert(d != NULL);
-    ErrorObject = PyErr_NewException("pycurl.error", NULL, NULL);
-    assert(ErrorObject != NULL);
-    PyDict_SetItemString(d, "error", ErrorObject);
-
-    curlobject_constants = PyDict_New();
-    assert(curlobject_constants != NULL);
-
-    /* Add version strings to the module */
-    insstr(d, "version", curl_version());
-    insstr(d, "COMPILE_DATE", __DATE__ " " __TIME__);
-    insint(d, "COMPILE_PY_VERSION_HEX", PY_VERSION_HEX);
-    insint(d, "COMPILE_LIBCURL_VERSION_NUM", LIBCURL_VERSION_NUM);
-
-    /**
-     ** the order of these constants mostly follows <curl/curl.h>
-     **/
-
-    /* Abort curl_read_callback(). */
-    insint_c(d, "READFUNC_ABORT", CURL_READFUNC_ABORT);
-
-    /* constants for ioctl callback return values */
-    insint_c(d, "IOE_OK", CURLIOE_OK);
-    insint_c(d, "IOE_UNKNOWNCMD", CURLIOE_UNKNOWNCMD);
-    insint_c(d, "IOE_FAILRESTART", CURLIOE_FAILRESTART);
-
-    /* curl_infotype: the kind of data that is passed to information_callback */
-/* XXX do we actually need curl_infotype in pycurl ??? */
-    insint_c(d, "INFOTYPE_TEXT", CURLINFO_TEXT);
-    insint_c(d, "INFOTYPE_HEADER_IN", CURLINFO_HEADER_IN);
-    insint_c(d, "INFOTYPE_HEADER_OUT", CURLINFO_HEADER_OUT);
-    insint_c(d, "INFOTYPE_DATA_IN", CURLINFO_DATA_IN);
-    insint_c(d, "INFOTYPE_DATA_OUT", CURLINFO_DATA_OUT);
-    insint_c(d, "INFOTYPE_SSL_DATA_IN", CURLINFO_SSL_DATA_IN);
-    insint_c(d, "INFOTYPE_SSL_DATA_OUT", CURLINFO_SSL_DATA_OUT);
-
-    /* CURLcode: error codes */
-/* FIXME: lots of error codes are missing */
-    insint_c(d, "E_OK", CURLE_OK);
-    insint_c(d, "E_UNSUPPORTED_PROTOCOL", CURLE_UNSUPPORTED_PROTOCOL);
-
-    /* curl_proxytype: constants for setopt(PROXYTYPE, x) */
-    insint_c(d, "PROXYTYPE_HTTP", CURLPROXY_HTTP);
-    insint_c(d, "PROXYTYPE_SOCKS4", CURLPROXY_SOCKS4);
-    insint_c(d, "PROXYTYPE_SOCKS5", CURLPROXY_SOCKS5);
-
-    /* curl_httpauth: constants for setopt(HTTPAUTH, x) */
-    insint_c(d, "HTTPAUTH_NONE", CURLAUTH_NONE);
-    insint_c(d, "HTTPAUTH_BASIC", CURLAUTH_BASIC);
-    insint_c(d, "HTTPAUTH_DIGEST", CURLAUTH_DIGEST);
-    insint_c(d, "HTTPAUTH_GSSNEGOTIATE", CURLAUTH_GSSNEGOTIATE);
-    insint_c(d, "HTTPAUTH_NTLM", CURLAUTH_NTLM);
-    insint_c(d, "HTTPAUTH_ANY", CURLAUTH_ANY);
-    insint_c(d, "HTTPAUTH_ANYSAFE", CURLAUTH_ANYSAFE);
-
-    /* curl_ftpssl: constants for setopt(FTP_SSL, x) */
-    insint_c(d, "FTPSSL_NONE", CURLFTPSSL_NONE);
-    insint_c(d, "FTPSSL_TRY", CURLFTPSSL_TRY);
-    insint_c(d, "FTPSSL_CONTROL", CURLFTPSSL_CONTROL);
-    insint_c(d, "FTPSSL_ALL", CURLFTPSSL_ALL);
-
-    /* curl_ftpauth: constants for setopt(FTPSSLAUTH, x) */
-    insint_c(d, "FTPAUTH_DEFAULT", CURLFTPAUTH_DEFAULT);
-    insint_c(d, "FTPAUTH_SSL", CURLFTPAUTH_SSL);
-    insint_c(d, "FTPAUTH_TLS", CURLFTPAUTH_TLS);
-
-    /* curl_ftpauth: constants for setopt(FTPSSLAUTH, x) */
-    insint_c(d, "FORM_CONTENTS", CURLFORM_COPYCONTENTS);
-    insint_c(d, "FORM_FILE", CURLFORM_FILE);
-    insint_c(d, "FORM_CONTENTTYPE", CURLFORM_CONTENTTYPE);
-
-    /* CURLoption: symbolic constants for setopt() */
-/* FIXME: reorder these to match <curl/curl.h> */
-    insint_c(d, "FILE", CURLOPT_WRITEDATA);
-    insint_c(d, "URL", CURLOPT_URL);
-    insint_c(d, "PORT", CURLOPT_PORT);
-    insint_c(d, "PROXY", CURLOPT_PROXY);
-    insint_c(d, "USERPWD", CURLOPT_USERPWD);
-    insint_c(d, "PROXYUSERPWD", CURLOPT_PROXYUSERPWD);
-    insint_c(d, "RANGE", CURLOPT_RANGE);
-    insint_c(d, "INFILE", CURLOPT_READDATA);
-    /* ERRORBUFFER is not supported */
-    insint_c(d, "WRITEFUNCTION", CURLOPT_WRITEFUNCTION);
-    insint_c(d, "READFUNCTION", CURLOPT_READFUNCTION);
-    insint_c(d, "TIMEOUT", CURLOPT_TIMEOUT);
-    insint_c(d, "INFILESIZE", CURLOPT_INFILESIZE_LARGE);    /* _LARGE ! */
-    insint_c(d, "POSTFIELDS", CURLOPT_POSTFIELDS);
-    insint_c(d, "REFERER", CURLOPT_REFERER);
-    insint_c(d, "FTPPORT", CURLOPT_FTPPORT);
-    insint_c(d, "USERAGENT", CURLOPT_USERAGENT);
-    insint_c(d, "LOW_SPEED_LIMIT", CURLOPT_LOW_SPEED_LIMIT);
-    insint_c(d, "LOW_SPEED_TIME", CURLOPT_LOW_SPEED_TIME);
-    insint_c(d, "RESUME_FROM", CURLOPT_RESUME_FROM_LARGE);  /* _LARGE ! */
-    insint_c(d, "WRITEDATA", CURLOPT_WRITEDATA);
-    insint_c(d, "READDATA", CURLOPT_READDATA);
-    insint_c(d, "PROXYPORT", CURLOPT_PROXYPORT);
-    insint_c(d, "HTTPPROXYTUNNEL", CURLOPT_HTTPPROXYTUNNEL);
-    insint_c(d, "VERBOSE", CURLOPT_VERBOSE);
-    insint_c(d, "HEADER", CURLOPT_HEADER);
-    insint_c(d, "NOPROGRESS", CURLOPT_NOPROGRESS);
-    insint_c(d, "NOBODY", CURLOPT_NOBODY);
-    insint_c(d, "FAILONERROR", CURLOPT_FAILONERROR);
-    insint_c(d, "UPLOAD", CURLOPT_UPLOAD);
-    insint_c(d, "POST", CURLOPT_POST);
-    insint_c(d, "FTPLISTONLY", CURLOPT_FTPLISTONLY);
-    insint_c(d, "FTPAPPEND", CURLOPT_FTPAPPEND);
-    insint_c(d, "NETRC", CURLOPT_NETRC);
-    insint_c(d, "FOLLOWLOCATION", CURLOPT_FOLLOWLOCATION);
-    insint_c(d, "TRANSFERTEXT", CURLOPT_TRANSFERTEXT);
-    insint_c(d, "PUT", CURLOPT_PUT);
-    insint_c(d, "POSTFIELDSIZE", CURLOPT_POSTFIELDSIZE_LARGE);  /* _LARGE ! */
-    insint_c(d, "COOKIE", CURLOPT_COOKIE);
-    insint_c(d, "HTTPHEADER", CURLOPT_HTTPHEADER);
-    insint_c(d, "HTTPPOST", CURLOPT_HTTPPOST);
-    insint_c(d, "SSLCERT", CURLOPT_SSLCERT);
-    insint_c(d, "SSLCERTPASSWD", CURLOPT_SSLCERTPASSWD);
-    insint_c(d, "CRLF", CURLOPT_CRLF);
-    insint_c(d, "QUOTE", CURLOPT_QUOTE);
-    insint_c(d, "POSTQUOTE", CURLOPT_POSTQUOTE);
-    insint_c(d, "PREQUOTE", CURLOPT_PREQUOTE);
-    insint_c(d, "WRITEHEADER", CURLOPT_WRITEHEADER);
-    insint_c(d, "HEADERFUNCTION", CURLOPT_HEADERFUNCTION);
-    insint_c(d, "COOKIEFILE", CURLOPT_COOKIEFILE);
-    insint_c(d, "SSLVERSION", CURLOPT_SSLVERSION);
-    insint_c(d, "TIMECONDITION", CURLOPT_TIMECONDITION);
-    insint_c(d, "TIMEVALUE", CURLOPT_TIMEVALUE);
-    insint_c(d, "CUSTOMREQUEST", CURLOPT_CUSTOMREQUEST);
-    insint_c(d, "STDERR", CURLOPT_STDERR);
-    insint_c(d, "INTERFACE", CURLOPT_INTERFACE);
-    insint_c(d, "KRB4LEVEL", CURLOPT_KRB4LEVEL);
-    insint_c(d, "PROGRESSFUNCTION", CURLOPT_PROGRESSFUNCTION);
-    insint_c(d, "SSL_VERIFYPEER", CURLOPT_SSL_VERIFYPEER);
-    insint_c(d, "CAPATH", CURLOPT_CAPATH);
-    insint_c(d, "CAINFO", CURLOPT_CAINFO);
-    insint_c(d, "OPT_FILETIME", CURLOPT_FILETIME);
-    insint_c(d, "MAXREDIRS", CURLOPT_MAXREDIRS);
-    insint_c(d, "MAXCONNECTS", CURLOPT_MAXCONNECTS);
-    insint_c(d, "CLOSEPOLICY", CURLOPT_CLOSEPOLICY);
-    insint_c(d, "FRESH_CONNECT", CURLOPT_FRESH_CONNECT);
-    insint_c(d, "FORBID_REUSE", CURLOPT_FORBID_REUSE);
-    insint_c(d, "RANDOM_FILE", CURLOPT_RANDOM_FILE);
-    insint_c(d, "EGDSOCKET", CURLOPT_EGDSOCKET);
-    insint_c(d, "CONNECTTIMEOUT", CURLOPT_CONNECTTIMEOUT);
-    insint_c(d, "HTTPGET", CURLOPT_HTTPGET);
-    insint_c(d, "SSL_VERIFYHOST", CURLOPT_SSL_VERIFYHOST);
-    insint_c(d, "COOKIEJAR", CURLOPT_COOKIEJAR);
-    insint_c(d, "SSL_CIPHER_LIST", CURLOPT_SSL_CIPHER_LIST);
-    insint_c(d, "HTTP_VERSION", CURLOPT_HTTP_VERSION);
-    insint_c(d, "FTP_USE_EPSV", CURLOPT_FTP_USE_EPSV);
-    insint_c(d, "SSLCERTTYPE", CURLOPT_SSLCERTTYPE);
-    insint_c(d, "SSLKEY", CURLOPT_SSLKEY);
-    insint_c(d, "SSLKEYTYPE", CURLOPT_SSLKEYTYPE);
-    insint_c(d, "SSLKEYPASSWD", CURLOPT_SSLKEYPASSWD);
-    insint_c(d, "SSLENGINE", CURLOPT_SSLENGINE);
-    insint_c(d, "SSLENGINE_DEFAULT", CURLOPT_SSLENGINE_DEFAULT);
-    insint_c(d, "DNS_CACHE_TIMEOUT", CURLOPT_DNS_CACHE_TIMEOUT);
-    insint_c(d, "DNS_USE_GLOBAL_CACHE", CURLOPT_DNS_USE_GLOBAL_CACHE);
-    insint_c(d, "DEBUGFUNCTION", CURLOPT_DEBUGFUNCTION);
-    insint_c(d, "BUFFERSIZE", CURLOPT_BUFFERSIZE);
-    insint_c(d, "NOSIGNAL", CURLOPT_NOSIGNAL);
-    insint_c(d, "SHARE", CURLOPT_SHARE);
-    insint_c(d, "PROXYTYPE", CURLOPT_PROXYTYPE);
-    insint_c(d, "ENCODING", CURLOPT_ENCODING);
-    insint_c(d, "HTTP200ALIASES", CURLOPT_HTTP200ALIASES);
-    insint_c(d, "UNRESTRICTED_AUTH", CURLOPT_UNRESTRICTED_AUTH);
-    insint_c(d, "FTP_USE_EPRT", CURLOPT_FTP_USE_EPRT);
-    insint_c(d, "HTTPAUTH", CURLOPT_HTTPAUTH);
-    insint_c(d, "FTP_CREATE_MISSING_DIRS", CURLOPT_FTP_CREATE_MISSING_DIRS);
-    insint_c(d, "PROXYAUTH", CURLOPT_PROXYAUTH);
-    insint_c(d, "FTP_RESPONSE_TIMEOUT", CURLOPT_FTP_RESPONSE_TIMEOUT);
-    insint_c(d, "IPRESOLVE", CURLOPT_IPRESOLVE);
-    insint_c(d, "MAXFILESIZE", CURLOPT_MAXFILESIZE_LARGE);  /* _LARGE ! */
-    insint_c(d, "INFILESIZE_LARGE", CURLOPT_INFILESIZE_LARGE);
-    insint_c(d, "RESUME_FROM_LARGE", CURLOPT_RESUME_FROM_LARGE);
-    insint_c(d, "MAXFILESIZE_LARGE", CURLOPT_MAXFILESIZE_LARGE);
-    insint_c(d, "NETRC_FILE", CURLOPT_NETRC_FILE);
-    insint_c(d, "FTP_SSL", CURLOPT_FTP_SSL);
-    insint_c(d, "POSTFIELDSIZE_LARGE", CURLOPT_POSTFIELDSIZE_LARGE);
-    insint_c(d, "TCP_NODELAY", CURLOPT_TCP_NODELAY);
-    insint_c(d, "SOURCE_USERPWD", CURLOPT_SOURCE_USERPWD);
-    insint_c(d, "SOURCE_PREQUOTE", CURLOPT_SOURCE_PREQUOTE);
-    insint_c(d, "SOURCE_POSTQUOTE", CURLOPT_SOURCE_POSTQUOTE);
-    insint_c(d, "FTPSSLAUTH", CURLOPT_FTPSSLAUTH);
-    insint_c(d, "IOCTLFUNCTION", CURLOPT_IOCTLFUNCTION);
-    insint_c(d, "IOCTLDATA", CURLOPT_IOCTLDATA);
-    insint_c(d, "SOURCE_URL", CURLOPT_SOURCE_URL);
-    insint_c(d, "SOURCE_QUOTE", CURLOPT_SOURCE_QUOTE);
-    insint_c(d, "FTP_ACCOUNT", CURLOPT_FTP_ACCOUNT);
-
-    /* constants for setopt(IPRESOLVE, x) */
-    insint_c(d, "IPRESOLVE_WHATEVER", CURL_IPRESOLVE_WHATEVER);
-    insint_c(d, "IPRESOLVE_V4", CURL_IPRESOLVE_V4);
-    insint_c(d, "IPRESOLVE_V6", CURL_IPRESOLVE_V6);
-
-    /* constants for setopt(HTTP_VERSION, x) */
-    insint_c(d, "CURL_HTTP_VERSION_NONE", CURL_HTTP_VERSION_NONE);
-    insint_c(d, "CURL_HTTP_VERSION_1_0", CURL_HTTP_VERSION_1_0);
-    insint_c(d, "CURL_HTTP_VERSION_1_1", CURL_HTTP_VERSION_1_1);
-    insint_c(d, "CURL_HTTP_VERSION_LAST", CURL_HTTP_VERSION_LAST);
-
-    /* CURL_NETRC_OPTION: constants for setopt(NETRC, x) */
-    insint_c(d, "NETRC_OPTIONAL", CURL_NETRC_OPTIONAL);
-    insint_c(d, "NETRC_IGNORED", CURL_NETRC_IGNORED);
-    insint_c(d, "NETRC_REQUIRED", CURL_NETRC_REQUIRED);
-
-    /* constants for setopt(SSLVERSION, x) */
-    insint_c(d, "SSLVERSION_DEFAULT", CURL_SSLVERSION_DEFAULT);
-    insint_c(d, "SSLVERSION_TLSv1", CURL_SSLVERSION_TLSv1);
-    insint_c(d, "SSLVERSION_SSLv2", CURL_SSLVERSION_SSLv2);
-    insint_c(d, "SSLVERSION_SSLv3", CURL_SSLVERSION_SSLv3);
-
-    /* curl_TimeCond: constants for setopt(TIMECONDITION, x) */
-    insint_c(d, "TIMECONDITION_NONE", CURL_TIMECOND_NONE);
-    insint_c(d, "TIMECONDITION_IFMODSINCE", CURL_TIMECOND_IFMODSINCE);
-    insint_c(d, "TIMECONDITION_IFUNMODSINCE", CURL_TIMECOND_IFUNMODSINCE);
-    insint_c(d, "TIMECONDITION_LASTMOD", CURL_TIMECOND_LASTMOD);
-
-    /* CURLINFO: symbolic constants for getinfo(x) */
-    insint_c(d, "EFFECTIVE_URL", CURLINFO_EFFECTIVE_URL);
-    insint_c(d, "HTTP_CODE", CURLINFO_HTTP_CODE);
-    insint_c(d, "RESPONSE_CODE", CURLINFO_HTTP_CODE);
-    insint_c(d, "TOTAL_TIME", CURLINFO_TOTAL_TIME);
-    insint_c(d, "NAMELOOKUP_TIME", CURLINFO_NAMELOOKUP_TIME);
-    insint_c(d, "CONNECT_TIME", CURLINFO_CONNECT_TIME);
-    insint_c(d, "PRETRANSFER_TIME", CURLINFO_PRETRANSFER_TIME);
-    insint_c(d, "SIZE_UPLOAD", CURLINFO_SIZE_UPLOAD);
-    insint_c(d, "SIZE_DOWNLOAD", CURLINFO_SIZE_DOWNLOAD);
-    insint_c(d, "SPEED_DOWNLOAD", CURLINFO_SPEED_DOWNLOAD);
-    insint_c(d, "SPEED_UPLOAD", CURLINFO_SPEED_UPLOAD);
-    insint_c(d, "HEADER_SIZE", CURLINFO_HEADER_SIZE);
-    insint_c(d, "REQUEST_SIZE", CURLINFO_REQUEST_SIZE);
-    insint_c(d, "SSL_VERIFYRESULT", CURLINFO_SSL_VERIFYRESULT);
-    insint_c(d, "INFO_FILETIME", CURLINFO_FILETIME);
-    insint_c(d, "CONTENT_LENGTH_DOWNLOAD", CURLINFO_CONTENT_LENGTH_DOWNLOAD);
-    insint_c(d, "CONTENT_LENGTH_UPLOAD", CURLINFO_CONTENT_LENGTH_UPLOAD);
-    insint_c(d, "STARTTRANSFER_TIME", CURLINFO_STARTTRANSFER_TIME);
-    insint_c(d, "CONTENT_TYPE", CURLINFO_CONTENT_TYPE);
-    insint_c(d, "REDIRECT_TIME", CURLINFO_REDIRECT_TIME);
-    insint_c(d, "REDIRECT_COUNT", CURLINFO_REDIRECT_COUNT);
-    insint_c(d, "HTTP_CONNECTCODE", CURLINFO_HTTP_CONNECTCODE);
-    insint_c(d, "HTTPAUTH_AVAIL", CURLINFO_HTTPAUTH_AVAIL);
-    insint_c(d, "PROXYAUTH_AVAIL", CURLINFO_PROXYAUTH_AVAIL);
-    insint_c(d, "OS_ERRNO", CURLINFO_OS_ERRNO);
-    insint_c(d, "NUM_CONNECTS", CURLINFO_NUM_CONNECTS);
-    insint_c(d, "SSL_ENGINES", CURLINFO_SSL_ENGINES);
-
-    /* curl_closepolicy: constants for setopt(CLOSEPOLICY, x) */
-    insint_c(d, "CLOSEPOLICY_OLDEST", CURLCLOSEPOLICY_OLDEST);
-    insint_c(d, "CLOSEPOLICY_LEAST_RECENTLY_USED", CURLCLOSEPOLICY_LEAST_RECENTLY_USED);
-    insint_c(d, "CLOSEPOLICY_LEAST_TRAFFIC", CURLCLOSEPOLICY_LEAST_TRAFFIC);
-    insint_c(d, "CLOSEPOLICY_SLOWEST", CURLCLOSEPOLICY_SLOWEST);
-    insint_c(d, "CLOSEPOLICY_CALLBACK", CURLCLOSEPOLICY_CALLBACK);
-
-    /* options for global_init() */
-    insint(d, "GLOBAL_SSL", CURL_GLOBAL_SSL);
-    insint(d, "GLOBAL_WIN32", CURL_GLOBAL_WIN32);
-    insint(d, "GLOBAL_ALL", CURL_GLOBAL_ALL);
-    insint(d, "GLOBAL_NOTHING", CURL_GLOBAL_NOTHING);
-    insint(d, "GLOBAL_DEFAULT", CURL_GLOBAL_DEFAULT);
-
-    /* curl_lock_data: XXX do we need this in pycurl ??? */
-    /* curl_lock_access: XXX do we need this in pycurl ??? */
-    /* CURLSHcode: XXX do we need this in pycurl ??? */
-    /* CURLSHoption: XXX do we need this in pycurl ??? */
-
-    /* CURLversion: constants for curl_version_info(x) */
-#if 0
-    /* XXX - do we need these ?? */
-    insint(d, "VERSION_FIRST", CURLVERSION_FIRST);
-    insint(d, "VERSION_SECOND", CURLVERSION_SECOND);
-    insint(d, "VERSION_THIRD", CURLVERSION_THIRD);
-    insint(d, "VERSION_NOW", CURLVERSION_NOW);
-#endif
-
-    /* version features - bitmasks for curl_version_info_data.features */
-#if 0
-    /* XXX - do we need these ?? */
-    /* XXX - should we really rename these ?? */
-    insint(d, "VERSION_FEATURE_IPV6", CURL_VERSION_IPV6);
-    insint(d, "VERSION_FEATURE_KERBEROS4", CURL_VERSION_KERBEROS4);
-    insint(d, "VERSION_FEATURE_SSL", CURL_VERSION_SSL);
-    insint(d, "VERSION_FEATURE_LIBZ", CURL_VERSION_LIBZ);
-    insint(d, "VERSION_FEATURE_NTLM", CURL_VERSION_NTLM);
-    insint(d, "VERSION_FEATURE_GSSNEGOTIATE", CURL_VERSION_GSSNEGOTIATE);
-    insint(d, "VERSION_FEATURE_DEBUG", CURL_VERSION_DEBUG);
-    insint(d, "VERSION_FEATURE_ASYNCHDNS", CURL_VERSION_ASYNCHDNS);
-    insint(d, "VERSION_FEATURE_SPNEGO", CURL_VERSION_SPNEGO);
-    insint(d, "VERSION_FEATURE_LARGEFILE", CURL_VERSION_LARGEFILE);
-    insint(d, "VERSION_FEATURE_IDN", CURL_VERSION_IDN);
-#endif
-
-    /**
-     ** the order of these constants mostly follows <curl/multi.h>
-     **/
-
-    /* CURLMcode: multi error codes */
-    insint_m(d, "E_CALL_MULTI_PERFORM", CURLM_CALL_MULTI_PERFORM);
-    insint_m(d, "E_MULTI_OK", CURLM_OK);
-    insint_m(d, "E_MULTI_BAD_HANDLE", CURLM_BAD_HANDLE);
-    insint_m(d, "E_MULTI_BAD_EASY_HANDLE", CURLM_BAD_EASY_HANDLE);
-    insint_m(d, "E_MULTI_OUT_OF_MEMORY", CURLM_OUT_OF_MEMORY);
-    insint_m(d, "E_MULTI_INTERNAL_ERROR", CURLM_INTERNAL_ERROR);
-
-    /* Check the version, as this has caused nasty problems in
-     * some cases. */
-    vi = curl_version_info(CURLVERSION_NOW);
-    if (vi == NULL) {
-        Py_FatalError("pycurl: FATAL: curl_version_info() failed");
-        assert(0);
-    }
-    if (vi->version_num < LIBCURL_VERSION_NUM) {
-        Py_FatalError("pycurl: FATAL: libcurl link-time version is older than compile-time version");
-        assert(0);
-    }
-
-    /* Finally initialize global interpreter lock */
-    PyEval_InitThreads();
-}
-
-/* vi:ts=4:et:nowrap
- */
diff --git a/pycurl/tests/test.py b/pycurl/tests/test.py
deleted file mode 100644 (file)
index 743c311..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import sys, threading, time
-import pycurl
-
-# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
-# the libcurl tutorial for more info.
-try:
-    import signal
-    from signal import SIGPIPE, SIG_IGN
-    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
-except ImportError:
-    pass
-
-
-class Test(threading.Thread):
-    def __init__(self, url, ofile):
-        threading.Thread.__init__(self)
-        self.curl = pycurl.Curl()
-        self.curl.setopt(pycurl.URL, url)
-        self.curl.setopt(pycurl.WRITEDATA, ofile)
-        self.curl.setopt(pycurl.FOLLOWLOCATION, 1)
-        self.curl.setopt(pycurl.MAXREDIRS, 5)
-        self.curl.setopt(pycurl.NOSIGNAL, 1)
-
-    def run(self):
-        self.curl.perform()
-        self.curl.close()
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-
-# Read list of URIs from file specified on commandline
-try:
-    urls = open(sys.argv[1]).readlines()
-except IndexError:
-    # No file was specified, show usage string
-    print "Usage: %s <file with uris to fetch>" % sys.argv[0]
-    raise SystemExit
-
-# Initialize thread array and the file number
-threads = []
-fileno = 0
-
-# Start one thread per URI in parallel
-t1 = time.time()
-for url in urls:
-    f = open(str(fileno), "wb")
-    t = Test(url, f)
-    t.start()
-    threads.append((t, f))
-    fileno = fileno + 1
-# Wait for all threads to finish
-for thread, file in threads:
-    thread.join()
-    file.close()
-t2 = time.time()
-print "\n** Multithreading, %d seconds elapsed for %d uris" % (int(t2-t1), len(urls))
-
-# Start one thread per URI in sequence
-fileno = 0
-t1 = time.time()
-for url in urls:
-    f = open(str(fileno), "wb")
-    t = Test(url, f)
-    t.start()
-    fileno = fileno + 1
-    t.join()
-    f.close()
-t2 = time.time()
-print "\n** Singlethreading, %d seconds elapsed for %d uris" % (int(t2-t1), len(urls))
diff --git a/pycurl/tests/test_cb.py b/pycurl/tests/test_cb.py
deleted file mode 100644 (file)
index 1be305c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import sys
-import pycurl
-
-## Callback function invoked when body data is ready
-def body(buf):
-    # Print body data to stdout
-    sys.stdout.write(buf)
-
-## Callback function invoked when header data is ready
-def header(buf):
-    # Print header data to stderr
-    sys.stderr.write(buf)
-
-c = pycurl.Curl()
-c.setopt(pycurl.URL, 'http://www.python.org/')
-c.setopt(pycurl.WRITEFUNCTION, body)
-c.setopt(pycurl.HEADERFUNCTION, header)
-c.setopt(pycurl.FOLLOWLOCATION, 1)
-c.setopt(pycurl.MAXREDIRS, 5)
-c.perform()
-c.setopt(pycurl.URL, 'http://curl.haxx.se/')
-c.perform()
-c.close()
diff --git a/pycurl/tests/test_debug.py b/pycurl/tests/test_debug.py
deleted file mode 100644 (file)
index d439b16..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import pycurl
-
-def test(t, b):
-    print "debug(%d): %s" % (t, b)
-
-c = pycurl.Curl()
-c.setopt(pycurl.URL, 'http://curl.haxx.se/')
-c.setopt(pycurl.VERBOSE, 1)
-c.setopt(pycurl.DEBUGFUNCTION, test)
-c.perform()
-c.close()
diff --git a/pycurl/tests/test_getinfo.py b/pycurl/tests/test_getinfo.py
deleted file mode 100644 (file)
index ed64594..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import time
-import pycurl
-
-
-## Callback function invoked when progress information is updated
-def progress(download_t, download_d, upload_t, upload_d):
-    print "Total to download %d bytes, have %d bytes so far" % \
-          (download_t, download_d)
-
-url = "http://www.cnn.com"
-
-print "Starting downloading", url
-print
-f = open("body", "wb")
-h = open("header", "wb")
-c = pycurl.Curl()
-c.setopt(c.URL, url)
-c.setopt(c.WRITEDATA, f)
-c.setopt(c.NOPROGRESS, 0)
-c.setopt(c.PROGRESSFUNCTION, progress)
-c.setopt(c.FOLLOWLOCATION, 1)
-c.setopt(c.MAXREDIRS, 5)
-c.setopt(c.WRITEHEADER, h)
-c.setopt(c.OPT_FILETIME, 1)
-c.perform()
-
-print
-print "HTTP-code:", c.getinfo(c.HTTP_CODE)
-print "Total-time:", c.getinfo(c.TOTAL_TIME)
-print "Download speed: %.2f bytes/second" % c.getinfo(c.SPEED_DOWNLOAD)
-print "Document size: %d bytes" % c.getinfo(c.SIZE_DOWNLOAD)
-print "Effective URL:", c.getinfo(c.EFFECTIVE_URL)
-print "Content-type:", c.getinfo(c.CONTENT_TYPE)
-print "Namelookup-time:", c.getinfo(c.NAMELOOKUP_TIME)
-print "Redirect-time:", c.getinfo(c.REDIRECT_TIME)
-print "Redirect-count:", c.getinfo(c.REDIRECT_COUNT)
-epoch = c.getinfo(c.INFO_FILETIME)
-print "Filetime: %d (%s)" % (epoch, time.ctime(epoch))
-print
-print "Header is in file 'header', body is in file 'body'"
-
-c.close()
-f.close()
-h.close()
diff --git a/pycurl/tests/test_gtk.py b/pycurl/tests/test_gtk.py
deleted file mode 100644 (file)
index 9626310..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import sys, threading
-from gtk import *
-import pycurl
-
-# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
-# the libcurl tutorial for more info.
-try:
-    import signal
-    from signal import SIGPIPE, SIG_IGN
-    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
-except ImportError:
-    pass
-
-
-class ProgressBar:
-    def __init__(self, uri):
-        self.round = 0.0
-        win = GtkDialog()
-        win.set_title("PycURL progress")
-        win.show()
-        vbox = GtkVBox(spacing=5)
-        vbox.set_border_width(10)
-        win.vbox.pack_start(vbox)
-        win.set_default_size(200, 20)
-        vbox.show()
-        label = GtkLabel("Downloading %s" % uri)
-        label.set_alignment(0, 0.5)
-        vbox.pack_start(label, expand=FALSE)
-        label.show()
-        pbar = GtkProgressBar()
-        pbar.show()
-        self.pbar = pbar
-        vbox.pack_start(pbar)
-        win.connect("destroy", self.close_app)
-        win.connect("delete_event", self.close_app)
-
-    def progress(self, download_t, download_d, upload_t, upload_d):
-        threads_enter()
-        if download_t == 0:
-            self.round = self.round + 0.1
-            if self.round >= 1.0:  self.round = 0.0
-        else:
-            self.round = float(download_d) / float(download_t)
-        self.pbar.update(self.round)
-        threads_leave()
-
-    def mainloop(self):
-        threads_enter()
-        mainloop()
-        threads_leave()
-
-    def close_app(self, *args):
-        args[0].destroy()
-        mainquit()
-
-
-class Test(threading.Thread):
-    def __init__(self, url, target_file, progress):
-        threading.Thread.__init__(self)
-        self.target_file = target_file
-        self.progress = progress
-        self.curl = pycurl.Curl()
-        self.curl.setopt(pycurl.URL, url)
-        self.curl.setopt(pycurl.WRITEDATA, self.target_file)
-        self.curl.setopt(pycurl.FOLLOWLOCATION, 1)
-        self.curl.setopt(pycurl.NOPROGRESS, 0)
-        self.curl.setopt(pycurl.PROGRESSFUNCTION, self.progress)
-        self.curl.setopt(pycurl.MAXREDIRS, 5)
-        self.curl.setopt(pycurl.NOSIGNAL, 1)
-
-    def run(self):
-        self.curl.perform()
-        self.curl.close()
-        self.target_file.close()
-        self.progress(1.0, 1.0, 0, 0)
-
-
-# Check command line args
-if len(sys.argv) < 3:
-    print "Usage: %s <URL> <filename>" % sys.argv[0]
-    raise SystemExit
-
-# Make a progress bar window
-p = ProgressBar(sys.argv[1])
-# Start thread for fetching url
-Test(sys.argv[1], open(sys.argv[2], 'wb'), p.progress).start()
-# Enter the GTK mainloop
-p.mainloop()
diff --git a/pycurl/tests/test_internals.py b/pycurl/tests/test_internals.py
deleted file mode 100644 (file)
index a1a6533..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-#
-# a simple self-test
-#
-
-try:
-    # need Python 2.2 or better for garbage collection
-    from gc import get_objects
-    import gc
-    del get_objects
-    gc.enable()
-except ImportError:
-    gc = None
-import copy, os, sys
-from StringIO import StringIO
-try:
-    import cPickle
-except ImportError:
-    cPickle = None
-try:
-    import pickle
-except ImportError:
-    pickle = None
-
-# update sys.path when running in the build directory
-from util import get_sys_path
-sys.path = get_sys_path()
-
-import pycurl
-from pycurl import Curl, CurlMulti
-
-
-class opts:
-    verbose = 1
-
-if "-q" in sys.argv:
-    opts.verbose = opts.verbose - 1
-
-
-print "Python", sys.version
-print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
-print "PycURL version info", pycurl.version_info()
-print "  %s, compiled %s" % (pycurl.__file__, pycurl.COMPILE_DATE)
-
-
-# /***********************************************************************
-# // test misc
-# ************************************************************************/
-
-if 1:
-    c = Curl()
-    assert c.URL is pycurl.URL
-    del c
-
-
-# /***********************************************************************
-# // test handles
-# ************************************************************************/
-
-# remove an invalid handle: this should fail
-if 1:
-    m = CurlMulti()
-    c = Curl()
-    try:
-        m.remove_handle(c)
-    except pycurl.error:
-        pass
-    else:
-        assert 0, "internal error"
-    del m, c
-
-
-# remove an invalid but closed handle
-if 1:
-    m = CurlMulti()
-    c = Curl()
-    c.close()
-    m.remove_handle(c)
-    del m, c
-
-
-# add a closed handle: this should fail
-if 1:
-    m = CurlMulti()
-    c = Curl()
-    c.close()
-    try:
-        m.add_handle(c)
-    except pycurl.error:
-        pass
-    else:
-        assert 0, "internal error"
-    m.close()
-    del m, c
-
-
-# add a handle twice: this should fail
-if 1:
-    m = CurlMulti()
-    c = Curl()
-    m.add_handle(c)
-    try:
-        m.add_handle(c)
-    except pycurl.error:
-        pass
-    else:
-        assert 0, "internal error"
-    del m, c
-
-
-# add a handle on multiple stacks: this should fail
-if 1:
-    m1 = CurlMulti()
-    m2 = CurlMulti()
-    c = Curl()
-    m1.add_handle(c)
-    try:
-        m2.add_handle(c)
-    except pycurl.error:
-        pass
-    else:
-        assert 0, "internal error"
-    del m1, m2, c
-
-
-# move a handle
-if 1:
-    m1 = CurlMulti()
-    m2 = CurlMulti()
-    c = Curl()
-    m1.add_handle(c)
-    m1.remove_handle(c)
-    m2.add_handle(c)
-    del m1, m2, c
-
-
-# /***********************************************************************
-# // test copying and pickling - copying and pickling of
-# // instances of Curl and CurlMulti is not allowed
-# ************************************************************************/
-
-if 1 and copy:
-    c = Curl()
-    m = CurlMulti()
-    try:
-        copy.copy(c)
-    except copy.Error:
-        pass
-    else:
-        assert 0, "internal error - copying should fail"
-    try:
-        copy.copy(m)
-    except copy.Error:
-        pass
-    else:
-        assert 0, "internal error - copying should fail"
-
-if 1 and pickle:
-    c = Curl()
-    m = CurlMulti()
-    fp = StringIO()
-    p = pickle.Pickler(fp, 1)
-    try:
-        p.dump(c)
-    except pickle.PicklingError:
-        pass
-    else:
-        assert 0, "internal error - pickling should fail"
-    try:
-        p.dump(m)
-    except pickle.PicklingError:
-        pass
-    else:
-        assert 0, "internal error - pickling should fail"
-    del c, m, fp, p
-
-if 1 and cPickle:
-    c = Curl()
-    m = CurlMulti()
-    fp = StringIO()
-    p = cPickle.Pickler(fp, 1)
-    try:
-        p.dump(c)
-    except cPickle.PicklingError:
-        pass
-    else:
-        assert 0, "internal error - pickling should fail"
-    try:
-        p.dump(m)
-    except cPickle.PicklingError:
-        pass
-    else:
-        assert 0, "internal error - pickling should fail"
-    del c, m, fp, p
-
-
-# /***********************************************************************
-# // test refcounts
-# ************************************************************************/
-
-# basic check of reference counting (use a memory checker like valgrind)
-if 1:
-    c = Curl()
-    m = CurlMulti()
-    m.add_handle(c)
-    del m
-    m = CurlMulti()
-    c.close()
-    del m, c
-
-# basic check of cyclic garbage collection
-if 1 and gc:
-    gc.collect()
-    c = Curl()
-    c.m = CurlMulti()
-    c.m.add_handle(c)
-    # create some nasty cyclic references
-    c.c = c
-    c.c.c1 = c
-    c.c.c2 = c
-    c.c.c3 = c.c
-    c.c.c4 = c.m
-    c.m.c = c
-    c.m.m = c.m
-    c.m.c = c
-    # delete
-    gc.collect()
-    flags = gc.DEBUG_COLLECTABLE | gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_OBJECTS
-    if opts.verbose >= 1:
-        flags = flags | gc.DEBUG_STATS
-    gc.set_debug(flags)
-    gc.collect()
-    ##print gc.get_referrers(c)
-    ##print gc.get_objects()
-    if opts.verbose >= 1:
-        print "Tracked objects:", len(gc.get_objects())
-    # The `del' below should delete these 4 objects:
-    #   Curl + internal dict, CurlMulti + internal dict
-    del c
-    gc.collect()
-    if opts.verbose >= 1:
-        print "Tracked objects:", len(gc.get_objects())
-
-
-# /***********************************************************************
-# // done
-# ************************************************************************/
-
-print "All tests passed."
diff --git a/pycurl/tests/test_memleak.py b/pycurl/tests/test_memleak.py
deleted file mode 100644 (file)
index 8577b97..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-#
-# just a simple self-test
-# need Python 2.2 or better for garbage collection
-#
-
-import gc, pycurl, sys
-gc.enable()
-
-
-print "Python", sys.version
-print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
-##print "PycURL version info", pycurl.version_info()
-print "  %s, compiled %s" % (pycurl.__file__, pycurl.COMPILE_DATE)
-
-
-gc.collect()
-flags = gc.DEBUG_COLLECTABLE | gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_OBJECTS
-if 1:
-    flags = flags | gc.DEBUG_STATS
-gc.set_debug(flags)
-gc.collect()
-
-print "Tracked objects:", len(gc.get_objects())
-
-multi = pycurl.CurlMulti()
-t = []
-for a in range(100):
-    curl = pycurl.Curl()
-    multi.add_handle(curl)
-    t.append(curl)
-
-print "Tracked objects:", len(gc.get_objects())
-
-for curl in t:
-    curl.close()
-    multi.remove_handle(curl)
-
-print "Tracked objects:", len(gc.get_objects())
-
-del curl
-del t
-del multi
-
-print "Tracked objects:", len(gc.get_objects())
-gc.collect()
-print "Tracked objects:", len(gc.get_objects())
-
-
diff --git a/pycurl/tests/test_multi.py b/pycurl/tests/test_multi.py
deleted file mode 100644 (file)
index 01312be..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import pycurl
-
-m = pycurl.CurlMulti()
-m.handles = []
-c1 = pycurl.Curl()
-c2 = pycurl.Curl()
-c1.setopt(c1.URL, 'http://curl.haxx.se')
-c2.setopt(c2.URL, 'http://cnn.com')
-c2.setopt(c2.FOLLOWLOCATION, 1)
-m.add_handle(c1)
-m.add_handle(c2)
-m.handles.append(c1)
-m.handles.append(c2)
-
-num_handles = len(m.handles)
-while num_handles:
-    while 1:
-        ret, num_handles = m.perform()
-        if ret != pycurl.E_CALL_MULTI_PERFORM:
-            break
-    m.select()
-
-m.remove_handle(c2)
-m.remove_handle(c1)
-del m.handles
-m.close()
-c1.close()
-c2.close()
diff --git a/pycurl/tests/test_multi2.py b/pycurl/tests/test_multi2.py
deleted file mode 100644 (file)
index 182e0dc..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import os, sys
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from StringIO import StringIO
-import pycurl
-
-
-urls = (
-    "http://curl.haxx.se",
-    "http://www.python.org",
-    "http://pycurl.sourceforge.net",
-    "http://pycurl.sourceforge.net/tests/403_FORBIDDEN",  # that actually exists ;-)
-    "http://pycurl.sourceforge.net/tests/404_NOT_FOUND",
-)
-
-# Read list of URIs from file specified on commandline
-try:
-    urls = open(sys.argv[1], "rb").readlines()
-except IndexError:
-    # No file was specified
-    pass
-
-# init
-m = pycurl.CurlMulti()
-m.handles = []
-for url in urls:
-    c = pycurl.Curl()
-    # save info in standard Python attributes
-    c.url = url
-    c.body = StringIO()
-    c.http_code = -1
-    m.handles.append(c)
-    # pycurl API calls
-    c.setopt(c.URL, c.url)
-    c.setopt(c.WRITEFUNCTION, c.body.write)
-    m.add_handle(c)
-
-# get data
-num_handles = len(m.handles)
-while num_handles:
-     while 1:
-         ret, num_handles = m.perform()
-         if ret != pycurl.E_CALL_MULTI_PERFORM:
-             break
-     # currently no more I/O is pending, could do something in the meantime
-     # (display a progress bar, etc.)
-     m.select()
-
-# close handles
-for c in m.handles:
-    # save info in standard Python attributes
-    c.http_code = c.getinfo(c.HTTP_CODE)
-    # pycurl API calls
-    m.remove_handle(c)
-    c.close()
-m.close()
-
-# print result
-for c in m.handles:
-    data = c.body.getvalue()
-    if 0:
-        print "**********", c.url, "**********"
-        print data
-    else:
-        print "%-53s http_code %3d, %6d bytes" % (c.url, c.http_code, len(data))
-
diff --git a/pycurl/tests/test_multi3.py b/pycurl/tests/test_multi3.py
deleted file mode 100644 (file)
index 0ef514a..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-# same as test_multi2.py, but enforce some debugging and strange API-calls
-
-import os, sys
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from StringIO import StringIO
-import pycurl
-
-
-urls = (
-    "http://curl.haxx.se",
-    "http://www.python.org",
-    "http://pycurl.sourceforge.net",
-    "http://pycurl.sourceforge.net/THIS_HANDLE_IS_CLOSED",
-)
-
-# init
-m = pycurl.CurlMulti()
-m.handles = []
-for url in urls:
-    c = pycurl.Curl()
-    # save info in standard Python attributes
-    c.url = url
-    c.body = StringIO()
-    c.http_code = -1
-    c.debug = 0
-    m.handles.append(c)
-    # pycurl API calls
-    c.setopt(c.URL, c.url)
-    c.setopt(c.WRITEFUNCTION, c.body.write)
-    m.add_handle(c)
-
-# debug - close a handle
-if 1:
-    c = m.handles[3]
-    c.debug = 1
-    c.close()
-
-# get data
-num_handles = len(m.handles)
-while num_handles:
-    while 1:
-        ret, num_handles = m.perform()
-        if ret != pycurl.E_CALL_MULTI_PERFORM:
-            break
-    # currently no more I/O is pending, could do something in the meantime
-    # (display a progress bar, etc.)
-    m.select()
-
-# close handles
-for c in m.handles:
-    # save info in standard Python attributes
-    try:
-        c.http_code = c.getinfo(c.HTTP_CODE)
-    except pycurl.error:
-        # handle already closed - see debug above
-        assert c.debug
-        c.http_code = -1
-    # pycurl API calls
-    if 0:
-        m.remove_handle(c)
-        c.close()
-    elif 0:
-        # in the C API this is the wrong calling order, but pycurl
-        # handles this automatically
-        c.close()
-        m.remove_handle(c)
-    else:
-        # actually, remove_handle is called automatically on close
-        c.close()
-m.close()
-
-# print result
-for c in m.handles:
-    data = c.body.getvalue()
-    if 0:
-        print "**********", c.url, "**********"
-        print data
-    else:
-        print "%-53s http_code %3d, %6d bytes" % (c.url, c.http_code, len(data))
-
diff --git a/pycurl/tests/test_multi4.py b/pycurl/tests/test_multi4.py
deleted file mode 100644 (file)
index 0c024a4..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import sys, select, time
-import pycurl
-
-c1 = pycurl.Curl()
-c2 = pycurl.Curl()
-c3 = pycurl.Curl()
-c1.setopt(c1.URL, "http://www.python.org")
-c2.setopt(c2.URL, "http://curl.haxx.se")
-c3.setopt(c3.URL, "http://slashdot.org")
-c1.body = open("doc1", "wb")
-c2.body = open("doc2", "wb")
-c3.body = open("doc3", "wb")
-c1.setopt(c1.WRITEFUNCTION, c1.body.write)
-c2.setopt(c2.WRITEFUNCTION, c2.body.write)
-c3.setopt(c3.WRITEFUNCTION, c3.body.write)
-
-m = pycurl.CurlMulti()
-m.add_handle(c1)
-m.add_handle(c2)
-m.add_handle(c3)
-
-# Number of seconds to wait for a timeout to happen
-SELECT_TIMEOUT = 10
-
-# Stir the state machine into action
-while 1:
-    ret, num_handles = m.perform()
-    if ret != pycurl.E_CALL_MULTI_PERFORM:
-        break
-
-# Keep going until all the connections have terminated
-while num_handles:
-    apply(select.select, m.fdset() + (SELECT_TIMEOUT,))
-    while 1:
-        ret, num_handles = m.perform()
-        if ret != pycurl.E_CALL_MULTI_PERFORM:
-            break
-
-# Cleanup
-m.remove_handle(c3)
-m.remove_handle(c2)
-m.remove_handle(c1)
-m.close()
-c1.body.close()
-c2.body.close()
-c3.body.close()
-c1.close()
-c2.close()
-c3.close()
-print "http://www.python.org is in file doc1"
-print "http://curl.haxx.se is in file doc2"
-print "http://slashdot.org is in file doc3"
diff --git a/pycurl/tests/test_multi5.py b/pycurl/tests/test_multi5.py
deleted file mode 100644 (file)
index b55dd7e..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import sys, select, time
-import pycurl
-
-c1 = pycurl.Curl()
-c2 = pycurl.Curl()
-c3 = pycurl.Curl()
-c1.setopt(c1.URL, "http://www.python.org")
-c2.setopt(c2.URL, "http://curl.haxx.se")
-c3.setopt(c3.URL, "http://slashdot.org")
-c1.body = open("doc1", "wb")
-c2.body = open("doc2", "wb")
-c3.body = open("doc3", "wb")
-c1.setopt(c1.WRITEFUNCTION, c1.body.write)
-c2.setopt(c2.WRITEFUNCTION, c2.body.write)
-c3.setopt(c3.WRITEFUNCTION, c3.body.write)
-
-m = pycurl.CurlMulti()
-m.add_handle(c1)
-m.add_handle(c2)
-m.add_handle(c3)
-
-# Number of seconds to wait for a timeout to happen
-SELECT_TIMEOUT = 10
-
-# Stir the state machine into action
-while 1:
-    ret, num_handles = m.perform()
-    if ret != pycurl.E_CALL_MULTI_PERFORM:
-        break
-
-# Keep going until all the connections have terminated
-while num_handles:
-    # The select method uses fdset internally to determine which file descriptors
-    # to check.
-    m.select(SELECT_TIMEOUT)
-    while 1:
-        ret, num_handles = m.perform()
-        if ret != pycurl.E_CALL_MULTI_PERFORM:
-            break
-
-# Cleanup
-m.remove_handle(c3)
-m.remove_handle(c2)
-m.remove_handle(c1)
-m.close()
-c1.body.close()
-c2.body.close()
-c3.body.close()
-c1.close()
-c2.close()
-c3.close()
-print "http://www.python.org is in file doc1"
-print "http://curl.haxx.se is in file doc2"
-print "http://slashdot.org is in file doc3"
-
diff --git a/pycurl/tests/test_multi6.py b/pycurl/tests/test_multi6.py
deleted file mode 100644 (file)
index 6ff8e92..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import sys, select, time
-import pycurl
-
-c1 = pycurl.Curl()
-c2 = pycurl.Curl()
-c3 = pycurl.Curl()
-c1.setopt(c1.URL, "http://www.python.org")
-c2.setopt(c2.URL, "http://curl.haxx.se")
-c3.setopt(c3.URL, "http://slashdot.org")
-c1.body = open("doc1", "wb")
-c2.body = open("doc2", "wb")
-c3.body = open("doc3", "wb")
-c1.setopt(c1.WRITEFUNCTION, c1.body.write)
-c2.setopt(c2.WRITEFUNCTION, c2.body.write)
-c3.setopt(c3.WRITEFUNCTION, c3.body.write)
-
-m = pycurl.CurlMulti()
-m.add_handle(c1)
-m.add_handle(c2)
-m.add_handle(c3)
-
-# Number of seconds to wait for a timeout to happen
-SELECT_TIMEOUT = 10
-
-# Stir the state machine into action
-while 1:
-    ret, num_handles = m.perform()
-    if ret != pycurl.E_CALL_MULTI_PERFORM:
-        break
-
-# Keep going until all the connections have terminated
-while num_handles:
-    # The select method uses fdset internally to determine which file descriptors
-    # to check.
-    m.select(SELECT_TIMEOUT)
-    while 1:
-        ret, num_handles = m.perform()
-        # Print the message, if any
-        print m.info_read(1)
-        if ret != pycurl.E_CALL_MULTI_PERFORM:
-            break
-
-# Cleanup
-m.remove_handle(c3)
-m.remove_handle(c2)
-m.remove_handle(c1)
-m.close()
-c1.body.close()
-c2.body.close()
-c3.body.close()
-c1.close()
-c2.close()
-c3.close()
-print "http://www.python.org is in file doc1"
-print "http://curl.haxx.se is in file doc2"
-print "http://slashdot.org is in file doc3"
-
diff --git a/pycurl/tests/test_multi_vs_thread.py b/pycurl/tests/test_multi_vs_thread.py
deleted file mode 100644 (file)
index c242d30..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import os, sys, time
-from threading import Thread, RLock
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from StringIO import StringIO
-import pycurl
-
-# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
-# the libcurl tutorial for more info.
-try:
-    import signal
-    from signal import SIGPIPE, SIG_IGN
-    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
-except ImportError:
-    pass
-
-# The conclusion is: the multi interface is fastest!
-
-NUM_PAGES = 30
-NUM_THREADS = 10
-assert NUM_PAGES % NUM_THREADS == 0
-
-##URL = "http://pycurl.sourceforge.net/tests/testgetvars.php?%d"
-URL = "http://pycurl.sourceforge.net/tests/teststaticpage.html?%d"
-
-
-#
-# util
-#
-
-class Curl:
-    def __init__(self, url):
-        self.url = url
-        self.body = StringIO()
-        self.http_code = -1
-        # pycurl API calls
-        self._curl = pycurl.Curl()
-        self._curl.setopt(pycurl.URL, self.url)
-        self._curl.setopt(pycurl.WRITEFUNCTION, self.body.write)
-        self._curl.setopt(pycurl.NOSIGNAL, 1)
-
-    def perform(self):
-        self._curl.perform()
-
-    def close(self):
-        self.http_code = self._curl.getinfo(pycurl.HTTP_CODE)
-        self._curl.close()
-
-
-def print_result(items):
-    return  # DO NOTHING
-    #
-    for c in items:
-        data = c.body.getvalue()
-        if 0:
-            print "**********", c.url, "**********"
-            print data
-        elif 1:
-            print "%-60s   %3d   %6d" % (c.url, c.http_code, len(data))
-
-
-###
-### 1) multi
-###
-
-def test_multi():
-    clock1 = time.time()
-
-    # init
-    handles = []
-    m = pycurl.CurlMulti()
-    for i in range(NUM_PAGES):
-        c = Curl(URL %i)
-        m.add_handle(c._curl)
-        handles.append(c)
-
-    clock2 = time.time()
-
-    # stir state machine into action
-    while 1:
-        ret, num_handles = m.perform()
-        if ret != pycurl.E_CALL_MULTI_PERFORM:
-            break
-
-    # get data
-    while num_handles:
-        m.select()
-        while 1:
-            ret, num_handles = m.perform()
-            if ret != pycurl.E_CALL_MULTI_PERFORM:
-                break
-
-    clock3 = time.time()
-
-    # close handles
-    for c in handles:
-        c.close()
-    m.close()
-
-    clock4 = time.time()
-    print "multi  interface:        %d pages: perform %5.2f secs, total %5.2f secs" % (NUM_PAGES, clock3 - clock2, clock4 - clock1)
-
-    # print result
-    print_result(handles)
-
-
-
-###
-### 2) thread
-###
-
-class Test(Thread):
-    def __init__(self, lock=None):
-        Thread.__init__(self)
-        self.lock = lock
-        self.items = []
-
-    def run(self):
-        if self.lock:
-            self.lock.acquire()
-            self.lock.release()
-        for c in self.items:
-            c.perform()
-
-
-def test_threads(lock=None):
-    clock1 = time.time()
-
-    # create and start threads, but block them
-    if lock:
-        lock.acquire()
-
-    # init (FIXME - this is ugly)
-    threads = []
-    handles = []
-    t = None
-    for i in range(NUM_PAGES):
-        if i % (NUM_PAGES / NUM_THREADS) == 0:
-            t = Test(lock)
-            if lock:
-                t.start()
-            threads.append(t)
-        c = Curl(URL % i)
-        t.items.append(c)
-        handles.append(c)
-    assert len(handles) == NUM_PAGES
-    assert len(threads) == NUM_THREADS
-
-    clock2 = time.time()
-
-    #
-    if lock:
-        # release lock to let the blocked threads run
-        lock.release()
-    else:
-        # start threads
-        for t in threads:
-            t.start()
-    # wait for threads to finish
-    for t in threads:
-        t.join()
-
-    clock3 = time.time()
-
-    # close handles
-    for c in handles:
-        c.close()
-
-    clock4 = time.time()
-    if lock:
-        print "thread interface [lock]: %d pages: perform %5.2f secs, total %5.2f secs" % (NUM_PAGES, clock3 - clock2, clock4 - clock1)
-    else:
-        print "thread interface:        %d pages: perform %5.2f secs, total %5.2f secs" % (NUM_PAGES, clock3 - clock2, clock4 - clock1)
-
-    # print result
-    print_result(handles)
-
-
-
-###
-### 3) thread - threads grab curl objects on demand from a shared pool
-###
-
-class TestPool(Thread):
-    def __init__(self, lock, pool):
-        Thread.__init__(self)
-        self.lock = lock
-        self.pool = pool
-
-    def run(self):
-        while 1:
-            self.lock.acquire()
-            c = None
-            if self.pool:
-                c = self.pool.pop()
-            self.lock.release()
-            if c is None:
-                break
-            c.perform()
-
-
-def test_thread_pool(lock):
-    clock1 = time.time()
-
-    # init
-    handles = []
-    for i in range(NUM_PAGES):
-        c = Curl(URL %i)
-        handles.append(c)
-
-    # create and start threads, but block them
-    lock.acquire()
-    threads = []
-    pool = handles[:]   # shallow copy of the list, shared for pop()
-    for i in range(NUM_THREADS):
-        t = TestPool(lock, pool)
-        t.start()
-        threads.append(t)
-    assert len(pool) == NUM_PAGES
-    assert len(threads) == NUM_THREADS
-
-    clock2 = time.time()
-
-    # release lock to let the blocked threads run
-    lock.release()
-
-    # wait for threads to finish
-    for t in threads:
-        t.join()
-
-    clock3 = time.time()
-
-    # close handles
-    for c in handles:
-        c.close()
-
-    clock4 = time.time()
-    print "thread interface [pool]: %d pages: perform %5.2f secs, total %5.2f secs" % (NUM_PAGES, clock3 - clock2, clock4 - clock1)
-
-    # print result
-    print_result(handles)
-
-
-
-lock = RLock()
-if 1:
-    test_multi()
-    test_threads()
-    test_threads(lock)
-    test_thread_pool(lock)
-else:
-    test_thread_pool(lock)
-    test_threads(lock)
-    test_threads()
-    test_multi()
-
diff --git a/pycurl/tests/test_post.py b/pycurl/tests/test_post.py
deleted file mode 100644 (file)
index f0a8ad0..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import urllib
-import pycurl
-
-# simple
-pf = {'field1': 'value1'}
-
-# multiple fields
-pf = {'field1':'value1', 'field2':'value2 with blanks', 'field3':'value3'}
-
-# multiple fields with & in field
-pf = {'field1':'value1', 'field2':'value2 with blanks and & chars',
-      'field3':'value3'}
-
-c = pycurl.Curl()
-c.setopt(c.URL, 'http://pycurl.sourceforge.net/tests/testpostvars.php')
-c.setopt(c.POSTFIELDS, urllib.urlencode(pf))
-c.setopt(c.VERBOSE, 1)
-c.perform()
-c.close()
diff --git a/pycurl/tests/test_post2.py b/pycurl/tests/test_post2.py
deleted file mode 100644 (file)
index 74a6eca..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import pycurl
-
-pf = [('field1', 'this is a test using httppost & stuff'),
-      ('field2', (pycurl.FORM_FILE, 'test_post.py', pycurl.FORM_FILE, 'test_post2.py')),
-      ('field3', (pycurl.FORM_CONTENTS, 'this is wei\000rd, but null-bytes are okay'))
-     ]
-
-c = pycurl.Curl()
-c.setopt(c.URL, 'http://www.contactor.se/~dast/postit.cgi')
-c.setopt(c.HTTPPOST, pf)
-c.setopt(c.VERBOSE, 1)
-c.perform()
-c.close()
diff --git a/pycurl/tests/test_post3.py b/pycurl/tests/test_post3.py
deleted file mode 100644 (file)
index 617eba2..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import urllib
-POSTSTRING = urllib.urlencode({'field1':'value1', 'field2':'value2 with blanks', 'field3':'value3'})
-
-class test:
-
-    def __init__(self):
-        self.finished = False
-
-    def read_cb(self, size):
-        assert len(POSTSTRING) <= size
-        if not self.finished:
-            self.finished = True
-            return POSTSTRING
-        else:
-            # Nothing more to read
-            return ""
-
-import pycurl
-c = pycurl.Curl()
-t = test()
-c.setopt(c.URL, 'http://pycurl.sourceforge.net/tests/testpostvars.php')
-c.setopt(c.POST, 1)
-c.setopt(c.POSTFIELDSIZE, len(POSTSTRING))
-c.setopt(c.READFUNCTION, t.read_cb)
-c.setopt(c.VERBOSE, 1)
-c.perform()
-c.close()
diff --git a/pycurl/tests/test_stringio.py b/pycurl/tests/test_stringio.py
deleted file mode 100644 (file)
index 25e639b..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import sys
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from StringIO import StringIO
-import pycurl
-
-url = "http://curl.haxx.se/dev/"
-
-print "Testing", pycurl.version
-
-body = StringIO()
-c = pycurl.Curl()
-c.setopt(c.URL, url)
-c.setopt(c.WRITEFUNCTION, body.write)
-c.perform()
-c.close()
-
-contents = body.getvalue()
-print contents
diff --git a/pycurl/tests/test_xmlrpc.py b/pycurl/tests/test_xmlrpc.py
deleted file mode 100644 (file)
index bc5953e..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-## XML-RPC lib included in python2.2
-import xmlrpclib
-import pycurl
-
-# Header fields passed in request
-xmlrpc_header = [
-    "User-Agent: PycURL XML-RPC Test", "Content-Type: text/xml"
-    ]
-
-# XML-RPC request template
-xmlrpc_template = """
-<?xml version='1.0'?><methodCall><methodName>%s</methodName>%s</methodCall>
-"""
-
-# Engage
-c = pycurl.Curl()
-c.setopt(c.URL, 'http://betty.userland.com/RPC2')
-c.setopt(c.POST, 1)
-c.setopt(c.HTTPHEADER, xmlrpc_header)
-c.setopt(c.POSTFIELDS, xmlrpc_template % ("examples.getStateName", xmlrpclib.dumps((5,))))
-
-print 'Response from http://betty.userland.com/'
-c.perform()
-c.close()
diff --git a/pycurl/tests/util.py b/pycurl/tests/util.py
deleted file mode 100644 (file)
index a1a9978..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# vi:ts=4:et
-# $Id$
-
-import os, sys
-
-#
-# prepare sys.path in case we are still in the build directory
-# see also: distutils/command/build.py (build_platlib)
-#
-
-def get_sys_path(p=None):
-    if p is None: p = sys.path
-    p = p[:]
-    try:
-        from distutils.util import get_platform
-    except ImportError:
-        return p
-    p0 = ""
-    if p: p0 = p[0]
-    #
-    plat = get_platform()
-    plat_specifier = "%s-%s" % (plat, sys.version[:3])
-    ##print plat, plat_specifier
-    #
-    for prefix in (p0, os.curdir, os.pardir,):
-        if not prefix:
-            continue
-        d = os.path.join(prefix, "build")
-        for subdir in ("lib", "lib." + plat_specifier, "lib." + plat):
-            dir = os.path.normpath(os.path.join(d, subdir))
-            if os.path.isdir(dir):
-                if dir not in p:
-                    p.insert(1, dir)
-    #
-    return p
-
-