From: Billy G. A. <bal...@us...> - 2001-10-13 20:58:25
|
Update of /cvsroot/pypgsql/pypgsql/pyPgSQL/libpq In directory usw-pr-cvs1:/tmp/cvs-serv12800/pyPgSQL/libpq Added Files: __init__.py Log Message: 13OCT2001 bga Re-arranged how the PgSQL and libpq modules are accessed. There is now a pyPgSQL package the encapulates PgSQL and libpq. Also, libpq is now a package (of pyPgSQL) that contains the libpqmodule.so file. This was done so that support for pickling of the Pg* types/objects could be added. --- NEW FILE: __init__.py --- """ libpq - Access to the PostgreSQL C-API for Python. ===================================================================== Copyright 2000 by Billy G. Allie. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, pro- vided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in sup- porting documentation, and that the copyright owner's name not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. """ from libpq import * from libpq import __version__ #-----------------------------------------------------------------------+ # Add support to pickle the following pyPgSQL opbjects: | # PgInt2, PgInt8, PgBoolean | #-----------------------------------------------------------------------+ def _B(value): return PgBoolean(value) def _C(conninfo): return PQconnectdb(conninfo) def _I2(value): return PgInt2(value) def _I8(value): return PgInt8(value) def _LO(conninfo, oid, lo_mode, softspace, offset): # Rebuild a large object. cnx = PQconnectdb(conninfo) lo = PgLargeObject(cnx, oid) if len(lo_mode) > 0: lo.open(lo_mode) lo.seek(offset,0) lo.softspace = softspace return lo def _V(value): return PgVersion(value) # Module Initialization class modinit: import copy_reg def pickle_PgBoolean(value): return _B, (str(value),) copy_reg.pickle(PgBooleanType, pickle_PgBoolean, _B) def pickle_PgConnection(value): return _C, (value._conninfo,) copy_reg.pickle(PgConnectionType, pickle_PgConnection, _C) def pickle_PgInt2(value): return _I2, (str(value),) copy_reg.pickle(PgInt2Type, pickle_PgInt2, _I2) def pickle_PgInt8(value): return _I8, (str(value),) copy_reg.pickle(PgInt8Type, pickle_PgInt8, _I8) def pickle_PgLargeObject(value): return _LO, value._pickle() copy_reg.pickle(PgLargeObjectType, pickle_PgLargeObject, _LO) def pickle_PgVersion(value): return _V, (str(value),) copy_reg.pickle(PgVersionType, pickle_PgVersion, _V) del modinit |