Index: third_party/twisted_8_1/twisted/enterprise/row.py |
diff --git a/third_party/twisted_8_1/twisted/enterprise/row.py b/third_party/twisted_8_1/twisted/enterprise/row.py |
deleted file mode 100644 |
index 36d0fa4b6d00a865019149b709ab771655a1312d..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/enterprise/row.py |
+++ /dev/null |
@@ -1,127 +0,0 @@ |
-# -*- test-case-name: twisted.test.test_reflector -*- |
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
- |
-""" |
-DEPRECATED. |
- |
-A (R)elational (O)bject (W)rapper. |
- |
-This is an extremely thin wrapper. |
- |
-Maintainer: U{Dave Peticolas<mailto:davep@twistedmatrix.com>} |
-""" |
- |
-import warnings |
- |
-from twisted.enterprise.util import DBError, NOQUOTE, getKeyColumn, dbTypeMap |
- |
- |
-class RowObject: |
- """ |
- I represent a row in a table in a relational database. |
- |
- My class is "populated" by a Reflector object. After I am |
- populated, instances of me are able to interact with a particular |
- database table. |
- |
- You should use a class derived from this class for each database |
- table. |
- |
- reflector.loadObjectsFrom() is used to create sets of |
- instance of objects of this class from database tables. |
- |
- Once created, the "key column" attributes cannot be changed. |
- |
- |
- Class Attributes that users must supply:: |
- |
- rowKeyColumns # list of key columns in form: [(columnName, typeName)] |
- rowTableName # name of database table |
- rowColumns # list of the columns in the table with the correct |
- # case.this will be used to create member variables. |
- rowFactoryMethod # method to create an instance of this class. |
- # HACK: must be in a list!!! [factoryMethod] (optional) |
- rowForeignKeys # keys to other tables (optional) |
- """ |
- |
- populated = 0 # set on the class when the class is "populated" with SQL |
- dirty = 0 # set on an instance when the instance is out-of-sync with the database |
- |
- def __init__(self): |
- """ |
- DEPRECATED. |
- """ |
- warnings.warn("twisted.enterprise.row is deprecated since Twisted 8.0", |
- category=DeprecationWarning, stacklevel=2) |
- |
- def assignKeyAttr(self, attrName, value): |
- """Assign to a key attribute. |
- |
- This cannot be done through normal means to protect changing |
- keys of db objects. |
- """ |
- found = 0 |
- for keyColumn, type in self.rowKeyColumns: |
- if keyColumn == attrName: |
- found = 1 |
- if not found: |
- raise DBError("%s is not a key columns." % attrName) |
- self.__dict__[attrName] = value |
- |
- def findAttribute(self, attrName): |
- """Find an attribute by caseless name. |
- """ |
- for attr, type in self.rowColumns: |
- if attr.lower() == attrName.lower(): |
- return getattr(self, attr) |
- raise DBError("Unable to find attribute %s" % attrName) |
- |
- def __setattr__(self, name, value): |
- """Special setattr to prevent changing of key values. |
- """ |
- # build where clause |
- if getKeyColumn(self.__class__, name): |
- raise DBError("cannot assign value <%s> to key column attribute <%s> of RowObject class" % (value,name)) |
- |
- if name in self.rowColumns: |
- if value != self.__dict__.get(name,None) and not self.dirty: |
- self.setDirty(1) |
- |
- self.__dict__[name] = value |
- |
- def createDefaultAttributes(self): |
- """Populate instance with default attributes. |
- |
- This is used when creating a new instance NOT from the |
- database. |
- """ |
- for attr in self.rowColumns: |
- if getKeyColumn(self.__class__, attr): |
- continue |
- for column, ctype, typeid in self.dbColumns: |
- if column.lower(column) == attr.lower(): |
- q = dbTypeMap.get(ctype, None) |
- if q == NOQUOTE: |
- setattr(self, attr, 0) |
- else: |
- setattr(self, attr, "") |
- |
- def setDirty(self, flag): |
- """Use this to set the 'dirty' flag. |
- |
- (note: this avoids infinite recursion in __setattr__, and |
- prevents the 'dirty' flag ) |
- """ |
- self.__dict__["dirty"] = flag |
- |
- def getKeyTuple(self): |
- keys = [] |
- keys.append(self.rowTableName) |
- for keyName, keyType in self.rowKeyColumns: |
- keys.append( getattr(self, keyName) ) |
- return tuple(keys) |
- |
- |
-__all__ = ['RowObject'] |