[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 |