[SQL-CVS] r219 - trunk/SQLObject/sqlobject
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2004-09-23 02:41:35
|
Author: ianb
Date: 2004-09-22 18:29:26 -0400 (Wed, 22 Sep 2004)
New Revision: 219
Modified:
trunk/SQLObject/sqlobject/main.py
Log:
Applied patch [ 974755 ] add connection parameters to all class methods i=
n SQLObject
Modified: trunk/SQLObject/sqlobject/main.py
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/SQLObject/sqlobject/main.py 2004-09-22 22:28:41 UTC (rev 218)
+++ trunk/SQLObject/sqlobject/main.py 2004-09-22 22:29:26 UTC (rev 219)
@@ -357,7 +357,7 @@
=20
get =3D classmethod(get)
=20
- def addColumn(cls, columnDef, changeSchema=3DFalse):
+ def addColumn(cls, columnDef, changeSchema=3DFalse, connection=3DNon=
e):
column =3D columnDef.withClass(cls)
name =3D column.name
assert name !=3D 'id', "The 'id' column is implicit, and should =
not be defined as a column"
@@ -462,15 +462,17 @@
setattr(cls, column.alternateMethodName, classmethod(func))
=20
if changeSchema:
- cls._connection.addColumn(cls._table, column)
+ conn =3D connection or cls._connection
+ conn.addColumn(cls._table, column)
=20
if cls._SO_finishedClassCreation:
makeProperties(cls)
=20
addColumn =3D classmethod(addColumn)
=20
- def addColumnsFromDatabase(cls):
- for columnDef in cls._connection.columnsFromSchema(cls._table, c=
ls):
+ def addColumnsFromDatabase(cls, connection=3DNone):
+ conn =3D connection or cls._connection
+ for columnDef in conn.columnsFromSchema(cls._table, cls):
alreadyExists =3D False
for c in cls._columns:
if c.name =3D=3D columnDef.name:
@@ -481,7 +483,7 @@
=20
addColumnsFromDatabase =3D classmethod(addColumnsFromDatabase)
=20
- def delColumn(cls, column, changeSchema=3DFalse):
+ def delColumn(cls, column, changeSchema=3DFalse, connection=3DNone):
if isinstance(column, str):
column =3D cls._SO_columnDict[column]
if isinstance(column, col.Col):
@@ -510,7 +512,8 @@
delattr(cls, column.alternateMethodName)
=20
if changeSchema:
- cls._connection.delColumn(cls._table, column)
+ conn =3D connection or cls._connection
+ conn.delColumn(cls._table, column)
=20
if cls._SO_finishedClassCreation:
unmakeProperties(cls)
@@ -954,48 +957,56 @@
select =3D classmethod(select)
=20
def selectBy(cls, connection=3DNone, **kw):
+ conn =3D connection or cls._connection
return SelectResults(cls,
- cls._connection._SO_columnClause(cls, kw),
- connection=3Dconnection)
+ conn._SO_columnClause(cls, kw),
+ connection=3Dconn)
=20
selectBy =3D classmethod(selectBy)
=20
- # 3-03 @@: Should these have a connection argument?
- def dropTable(cls, ifExists=3DFalse, dropJoinTables=3DTrue, cascade=3D=
False):
- if ifExists and not cls._connection.tableExists(cls._table):
+ def dropTable(cls, ifExists=3DFalse, dropJoinTables=3DTrue, cascade=3D=
False,
+ connection=3DNone):
+ conn =3D connection or conn._connection
+ if ifExists and not conn.tableExists(cls._table):
return
- cls._connection.dropTable(cls._table, cascade)
+ conn.dropTable(cls._table, cascade)
if dropJoinTables:
- cls.dropJoinTables(ifExists=3DifExists)
+ cls.dropJoinTables(ifExists=3DifExists, connection=3Dconn)
dropTable =3D classmethod(dropTable)
=20
- def createTable(cls, ifNotExists=3DFalse, createJoinTables=3DTrue):
- if ifNotExists and cls._connection.tableExists(cls._table):
+ def createTable(cls, ifNotExists=3DFalse, createJoinTables=3DTrue,
+ connection=3DNone):
+ conn =3D connection or cls._connection
+ if ifNotExists and conn.tableExists(cls._table):
return
- cls._connection.createTable(cls)
+ conn.createTable(cls)
if createJoinTables:
- cls.createJoinTables(ifNotExists=3DifNotExists)
+ cls.createJoinTables(ifNotExists=3DifNotExists,
+ connection=3Dconn)
createTable =3D classmethod(createTable)
=20
- def createTableSQL(cls, createJoinTables=3DTrue):
- sql =3D cls._connection.createTableSQL(cls)
+ def createTableSQL(cls, createJoinTables=3DTrue, connection=3DNone):
+ conn =3D connection or cls._connection
+ sql =3D conn.createTableSQL(cls)
if createJoinTables:
- sql +=3D '\n' + cls.createJoinTablesSQL()
+ sql +=3D '\n' + cls.createJoinTablesSQL(connection=3Dconn)
return sql
createTableSQL =3D classmethod(createTableSQL)
=20
- def createJoinTables(cls, ifNotExists=3DFalse):
+ def createJoinTables(cls, ifNotExists=3DFalse, connection=3DNone):
+ conn =3D connection or cls._connection
for join in cls._getJoinsToCreate():
if ifNotExists and \
- cls._connection.tableExists(join.intermediateTable):
+ conn.tableExists(join.intermediateTable):
continue
- cls._connection._SO_createJoinTable(join)
+ conn._SO_createJoinTable(join)
createJoinTables =3D classmethod(createJoinTables)
=20
- def createJoinTablesSQL(cls):
+ def createJoinTablesSQL(cls, connection=3DNone):
+ conn =3D connection or cls._connection
sql =3D []
for join in cls._getJoinsToCreate():
- sql.append(cls._connection._SO_createJoinTableSQL(join))
+ sql.append(conn._SO_createJoinTableSQL(join))
return '\n'.join(sql)
createJoinTablesSQL =3D classmethod(createJoinTablesSQL)
=20
@@ -1012,7 +1023,8 @@
return joins
_getJoinsToCreate =3D classmethod(_getJoinsToCreate)
=20
- def dropJoinTables(cls, ifExists=3DFalse):
+ def dropJoinTables(cls, ifExists=3DFalse, connection=3DNone):
+ conn =3D connection or cls._connection
for join in cls._SO_joinList:
if not join:
continue
@@ -1021,16 +1033,17 @@
if join.soClass.__name__ > join.otherClass.__name__:
continue
if ifExists and \
- not cls._connection.tableExists(join.intermediateTable):
+ not conn.tableExists(join.intermediateTable):
continue
- cls._connection._SO_dropJoinTable(join)
+ conn._SO_dropJoinTable(join)
=20
dropJoinTables =3D classmethod(dropJoinTables)
=20
- def clearTable(cls):
+ def clearTable(cls, connection=3DNone):
# 3-03 @@: Maybe this should check the cache... but it's
# kind of crude anyway, so...
- cls._connection.clearTable(cls._table)
+ conn =3D connection or cls._connection
+ conn.clearTable(cls._table)
clearTable =3D classmethod(clearTable)
=20
def destroySelf(self):
@@ -1074,8 +1087,8 @@
self.id,
' '.join(['%s=3D%s' % (name, repr(value)) for name, va=
lue in self._reprItems()]))
=20
- def sqlrepr(cls, value):
- return cls._connection.sqlrepr(value)
+ def sqlrepr(cls, value, connection=3DNone):
+ return (connection or cls._connection).sqlrepr(value)
=20
sqlrepr =3D classmethod(sqlrepr)
=20
|