| Index: third_party/twisted_8_1/twisted/enterprise/util.py
|
| diff --git a/third_party/twisted_8_1/twisted/enterprise/util.py b/third_party/twisted_8_1/twisted/enterprise/util.py
|
| deleted file mode 100644
|
| index e75b92f4012d49c94a2844ee760e171827241b3e..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/enterprise/util.py
|
| +++ /dev/null
|
| @@ -1,200 +0,0 @@
|
| -# -*- test-case-name: twisted.test.test_enterprise -*-
|
| -# Copyright (c) 2001-2008 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -
|
| -import warnings, types
|
| -
|
| -from twisted.python.versions import Version, getVersionString
|
| -from twisted.python.deprecate import deprecated
|
| -from twisted.enterprise.adbapi import _safe
|
| -
|
| -# Common deprecation decorator used for all deprecations.
|
| -_deprecatedVersion = Version("Twisted", 8, 0, 0)
|
| -_releasedDeprecation = deprecated(_deprecatedVersion)
|
| -
|
| -warnings.warn(
|
| - "twisted.enterprise.util is deprecated since %s." % (
|
| - getVersionString(_deprecatedVersion),),
|
| - category=DeprecationWarning)
|
| -
|
| -NOQUOTE = 1
|
| -USEQUOTE = 2
|
| -
|
| -dbTypeMap = {
|
| - "bigint": NOQUOTE,
|
| - "bool": USEQUOTE,
|
| - "boolean": USEQUOTE,
|
| - "bytea": USEQUOTE,
|
| - "date": USEQUOTE,
|
| - "int2": NOQUOTE,
|
| - "int4": NOQUOTE,
|
| - "int8": NOQUOTE,
|
| - "int": NOQUOTE,
|
| - "integer": NOQUOTE,
|
| - "float4": NOQUOTE,
|
| - "float8": NOQUOTE,
|
| - "numeric": NOQUOTE,
|
| - "real": NOQUOTE,
|
| - "smallint": NOQUOTE,
|
| - "char": USEQUOTE,
|
| - "text": USEQUOTE,
|
| - "time": USEQUOTE,
|
| - "timestamp": USEQUOTE,
|
| - "varchar": USEQUOTE
|
| - }
|
| -
|
| -class DBError(Exception):
|
| - pass
|
| -
|
| -
|
| -
|
| -### Utility functions
|
| -
|
| -def getKeyColumn(rowClass, name):
|
| - lcname = name.lower()
|
| - for keyColumn, type in rowClass.rowKeyColumns:
|
| - if lcname == keyColumn.lower():
|
| - return name
|
| - return None
|
| -getKeyColumn = _releasedDeprecation(getKeyColumn)
|
| -
|
| -
|
| -
|
| -def quote(value, typeCode, string_escaper=_safe):
|
| - """Add quotes for text types and no quotes for integer types.
|
| - NOTE: uses Postgresql type codes.
|
| - """
|
| - q = dbTypeMap.get(typeCode, None)
|
| - if q is None:
|
| - raise DBError("Type %s not known" % typeCode)
|
| - if value is None:
|
| - return 'null'
|
| - if q == NOQUOTE:
|
| - return str(value)
|
| - elif q == USEQUOTE:
|
| - if typeCode.startswith('bool'):
|
| - if value:
|
| - value = '1'
|
| - else:
|
| - value = '0'
|
| - if typeCode == "bytea":
|
| - l = ["'"]
|
| - for c in value:
|
| - i = ord(c)
|
| - if i == 0:
|
| - l.append("\\\\000")
|
| - elif i == 92:
|
| - l.append(c * 4)
|
| - elif 32 <= i <= 126:
|
| - l.append(c)
|
| - else:
|
| - l.append("\\%03o" % i)
|
| - l.append("'")
|
| - return "".join(l)
|
| - if not isinstance(value, types.StringType) and \
|
| - not isinstance(value, types.UnicodeType):
|
| - value = str(value)
|
| - return "'%s'" % string_escaper(value)
|
| -quote = _releasedDeprecation(quote)
|
| -
|
| -
|
| -def safe(text):
|
| - """
|
| - Make a string safe to include in an SQL statement.
|
| - """
|
| - return _safe(text)
|
| -
|
| -safe = _releasedDeprecation(safe)
|
| -
|
| -
|
| -def makeKW(rowClass, args):
|
| - """Utility method to construct a dictionary for the attributes
|
| - of an object from set of args. This also fixes the case of column names.
|
| - """
|
| - kw = {}
|
| - for i in range(0,len(args)):
|
| - columnName = rowClass.dbColumns[i][0].lower()
|
| - for attr in rowClass.rowColumns:
|
| - if attr.lower() == columnName:
|
| - kw[attr] = args[i]
|
| - break
|
| - return kw
|
| -makeKW = _releasedDeprecation(makeKW)
|
| -
|
| -
|
| -def defaultFactoryMethod(rowClass, data, kw):
|
| - """Used by loadObjects to create rowObject instances.
|
| - """
|
| - newObject = rowClass()
|
| - newObject.__dict__.update(kw)
|
| - return newObject
|
| -defaultFactoryMethod = _releasedDeprecation(defaultFactoryMethod)
|
| -
|
| -### utility classes
|
| -
|
| -class _TableInfo:
|
| - """(internal)
|
| -
|
| - Info about a table/class and it's relationships. Also serves as a container for
|
| - generated SQL.
|
| - """
|
| - def __init__(self, rc):
|
| - self.rowClass = rc
|
| - self.rowTableName = rc.rowTableName
|
| - self.rowKeyColumns = rc.rowKeyColumns
|
| - self.rowColumns = rc.rowColumns
|
| -
|
| - if hasattr(rc, "rowForeignKeys"):
|
| - self.rowForeignKeys = rc.rowForeignKeys
|
| - else:
|
| - self.rowForeignKeys = []
|
| -
|
| - if hasattr(rc, "rowFactoryMethod"):
|
| - if rc.rowFactoryMethod:
|
| - self.rowFactoryMethod = rc.rowFactoryMethod
|
| - else:
|
| - self.rowFactoryMethod = [defaultFactoryMethod]
|
| - else:
|
| - self.rowFactoryMethod = [defaultFactoryMethod]
|
| -
|
| - self.updateSQL = None
|
| - self.deleteSQL = None
|
| - self.insertSQL = None
|
| - self.relationships = []
|
| - self.dbColumns = []
|
| -
|
| - def addForeignKey(self, childColumns, parentColumns, childRowClass, containerMethod, autoLoad):
|
| - """This information is attached to the "parent" table
|
| - childColumns - columns of the "child" table
|
| - parentColumns - columns of the "parent" table, the one being joined to... the "foreign" table
|
| - """
|
| - self.relationships.append( _TableRelationship(childColumns, parentColumns,
|
| - childRowClass, containerMethod, autoLoad) )
|
| -
|
| - def getRelationshipFor(self, tableName):
|
| - for relationship in self.relationships:
|
| - if relationship.childRowClass.rowTableName == tableName:
|
| - return relationship
|
| - return None
|
| -
|
| -class _TableRelationship:
|
| - """(Internal)
|
| -
|
| - A foreign key relationship between two tables.
|
| - """
|
| - def __init__(self,
|
| - childColumns,
|
| - parentColumns,
|
| - childRowClass,
|
| - containerMethod,
|
| - autoLoad):
|
| - self.childColumns = childColumns
|
| - self.parentColumns = parentColumns
|
| - self.childRowClass = childRowClass
|
| - self.containerMethod = containerMethod
|
| - self.autoLoad = autoLoad
|
| -
|
| -
|
| -__all__ = ['NOQUOTE', 'USEQUOTE', 'dbTypeMap', 'DBError', 'getKeyColumn',
|
| - 'safe', 'quote']
|
|
|