Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Unified Diff: third_party/twisted_8_1/twisted/enterprise/reflector.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/enterprise/reflector.py
diff --git a/third_party/twisted_8_1/twisted/enterprise/reflector.py b/third_party/twisted_8_1/twisted/enterprise/reflector.py
deleted file mode 100644
index cc15a3705c5a478fa555d3709c9dfcebe4e660b8..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/enterprise/reflector.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# -*- test-case-name: twisted.test.test_reflector -*-
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-
-import weakref, warnings
-
-from twisted.enterprise.util import DBError
-
-class Reflector:
- """
- DEPRECATED.
-
- Base class for enterprise reflectors. This implements row caching.
- """
- populated = 0
-
- def __init__(self, rowClasses):
- """
- Initialize me against a database.
-
- @param rowClasses: a list of row class objects that describe the
- database schema.
- """
- warnings.warn("twisted.enterprise.reflector is deprecated since "
- "Twisted 8.0", category=DeprecationWarning, stacklevel=2)
- # does not hold references to cached rows.
- self.rowCache = weakref.WeakValueDictionary()
- self.rowClasses = rowClasses
- self.schema = {}
- self._populate()
-
- def __getstate__(self):
- d = self.__dict__.copy()
- del d['rowCache']
- return d
-
- def __setstate__(self, state):
- self.__dict__ = state
- self.rowCache = weakref.WeakValueDictionary()
- self._populate()
-
- def _populate(self):
- """Implement me to populate schema information for the reflector.
- """
- raise DBError("not implemented")
-
- def populateSchemaFor(self, tableInfo):
- """This is called once for each registered rowClass to add it
- and its foreign key relationships for that rowClass to the
- schema."""
-
- self.schema[ tableInfo.rowTableName ] = tableInfo
-
- # add the foreign key to the foreign table.
- for foreignTableName, childColumns, parentColumns, containerMethod, autoLoad in tableInfo.rowForeignKeys:
- self.schema[foreignTableName].addForeignKey(childColumns,
- parentColumns, tableInfo.rowClass,
- containerMethod, autoLoad)
-
- def getTableInfo(self, rowObject):
- """Get a TableInfo record about a particular instance.
-
- This record contains various information about the instance's
- class as registered with this reflector.
-
- @param rowObject: a L{RowObject} instance of a class previously
- registered with me.
- @raises twisted.enterprise.row.DBError: raised if this class was not
- previously registered.
- """
- try:
- return self.schema[rowObject.rowTableName]
- except KeyError:
- raise DBError("class %s was not registered with %s" % (
- rowObject.__class__, self))
-
- def buildWhereClause(self, relationship, row):
- """util method used by reflectors. builds a where clause to link a row to another table.
- """
- whereClause = []
- for i in range(0,len(relationship.childColumns)):
- value = getattr(row, relationship.parentColumns[i][0])
- whereClause.append( [relationship.childColumns[i][0], EQUAL, value] )
- return whereClause
-
- def addToParent(self, parentRow, rows, tableName):
- """util method used by reflectors. adds these rows to the parent row object.
- If a rowClass does not have a containerMethod, then a list attribute "childRows"
- will be used.
- """
- parentInfo = self.getTableInfo(parentRow)
- relationship = parentInfo.getRelationshipFor(tableName)
- if not relationship:
- raise DBError("no relationship from %s to %s" % ( parentRow.rowTableName, tableName) )
-
- if not relationship.containerMethod:
- if hasattr(parentRow, "childRows"):
- for row in rows:
- if row not in parentRow.childRows:
- parentRow.childRows.append(row)
- else:
- parentRow.childRows = rows
- return
-
- if not hasattr(parentRow, relationship.containerMethod):
- raise DBError("parent row (%s) doesnt have container method <%s>!" % (parentRow, relationship.containerMethod))
-
- meth = getattr(parentRow, relationship.containerMethod)
- for row in rows:
- meth(row)
-
- ####### Row Cache ########
-
- def addToCache(self, rowObject):
- """NOTE: Should this be recursive?! requires better container knowledge..."""
- self.rowCache[ rowObject.getKeyTuple() ] = rowObject
-
- def findInCache(self, rowClass, kw):
- keys = []
- keys.append(rowClass.rowTableName)
- for keyName, keyType in rowClass.rowKeyColumns:
- keys.append( kw[keyName] )
- keyTuple = tuple(keys)
- return self.rowCache.get(keyTuple)
-
- def removeFromCache(self, rowObject):
- """NOTE: should this be recursive!??"""
- key = rowObject.getKeyTuple()
- if self.rowCache.has_key(key):
- del self.rowCache[key]
-
- ####### Row Operations ########
-
- def loadObjectsFrom(self, tableName, parent=None, data=None,
- whereClause=[], loadChildren=1):
- """Implement me to load objects from the database.
-
- @param whereClause: a list of tuples of (columnName, conditional, value)
- so it can be parsed by all types of reflectors. eg.::
- whereClause = [("name", EQUALS, "fred"), ("age", GREATERTHAN, 18)]
- """
- raise DBError("not implemented")
-
- def updateRow(self, rowObject):
- """update this rowObject to the database.
- """
- raise DBError("not implemented")
-
- def insertRow(self, rowObject):
- """insert a new row for this object instance.
- """
- raise DBError("not implemented")
-
- def deleteRow(self, rowObject):
- """delete the row for this object from the database.
- """
- raise DBError("not implemented")
-
-# conditionals
-EQUAL = 0
-LESSTHAN = 1
-GREATERTHAN = 2
-LIKE = 3
-
-
-__all__ = ['Reflector', 'EQUAL', 'LESSTHAN', 'GREATERTHAN', 'LIKE']
« no previous file with comments | « third_party/twisted_8_1/twisted/enterprise/adbapi.py ('k') | third_party/twisted_8_1/twisted/enterprise/row.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698