#

# Index of the `sqlobject` module

- m `sqlobject` ... - SQLObject
  - a `sqlhub` ...
  - a `func` ...
  - a `default_datetime_implementation` ...
  - a `mxdatetime_available` ...
  - a `MXDATETIME_IMPLEMENTATION` ...
  - a `version` ...
  - a `__package__` ...
  - a `version_info` ...
  - m `manager` ...
    - a `__package__` ...
    - m `command` ...
      - a `the_runner` ...
      - a `__package__` ...
      - C `CommandList` ...
        - a `min_args` ...
        - a `help` ...
        - a `parser` ...
        - a `aliases` ...
        - a `max_args_error` ...
        - a `prog_name` ...
        - a `name` ...
        - a `summary` ...
        - a `min_args_error` ...
        - a `required_args` ...
        - f `ini_config` ...
        - f `__init__` ...
        - f `classes_from_egg` ...
        - f `config` ...
        - f `open_editor` ... - Open an editor with the given text. Return the new text, or None if no edits were made. If given, everything after breaker will be ignored.
        - f `run` ...
        - f `orderClassesByDependencyLevel` ... - Return classes ordered by their depth in the class dependency tree (this is not the inheritance tree), from the top level (independant) classes to the deepest level. The dependency tree is defined by the foreign key relations.
        - f `__classinit__` ...
        - f `shorten_filename` ... - Shortens a filename to make it relative to the current directory (if it can). For display purposes.
        - f `config_from_egg` ...
        - f `classes_from_package` ...
        - f `ask` ...
        - f `classes_from_module` ...
        - f `connection` ...
        - f `classes` ...
        - f `command` ...
        - f `load_options_from_egg` ...
      - C `SQLObjectVersionTable` ... - This table is used to store information about the database and its version (used with record and update commands).
        - a `version` ...
        - a `updated` ...
        - a `j` ...
        - a `q` ...
      - C `CommandRunner` ...
        - f `register` ...
        - f `run` ...
        - f `invalid` ...
        - f `__init__` ...
      - C `CommandExecute` ...
        - a `help` ...
        - a `parser` ...
        - a `name` ...
        - a `summary` ...
        - f `ini_config` ...
        - f `__init__` ...
        - f `config` ...
        - f `run` ...
        - f `shorten_filename` ... - Shortens a filename to make it relative to the current directory (if it can). For display purposes.
        - f `config_from_egg` ...
        - f `ask` ...
        - f `classes_from_module` ...
        - f `classes` ...
        - f `load_options_from_egg` ...
      - C `CommandSQL` ...
        - a `parser` ...
        - a `name` ...
        - a `summary` ...
        - f `shorten_filename` ... - Shortens a filename to make it relative to the current directory (if it can). For display purposes.
        - f `classes_from_package` ...
        - f `connection` ...
        - f `classes` ...
        - f `load_options_from_egg` ...
      - C `CommandCreate` ...
        - a `parser` ...
        - a `name` ...
        - a `summary` ...
        - f `shorten_filename` ... - Shortens a filename to make it relative to the current directory (if it can). For display purposes.
        - f `connection` ...
        - f `classes` ...
      - C `CommandHelp` ...
        - a `parser` ...
        - a `max_args` ...
        - a `name` ...
        - a `summary` ...
        - f `shorten_filename` ... - Shortens a filename to make it relative to the current directory (if it can). For display purposes.
        - f `connection` ...
        - f `classes` ...
      - C `Command` ...
        - f `shorten_filename` ... - Shortens a filename to make it relative to the current directory (if it can). For display purposes.
        - f `connection` ...
        - f `classes` ...
      - C `CommandDrop` ...
        - a `parser` ...
        - a `name` ...
        - a `summary` ...
        - f `shorten_filename` ... - Shortens a filename to make it relative to the current directory (if it can). For display purposes.
        - f `connection` ...
        - f `classes` ...
      - C `CommandStatus` ...
        - a `help` ...
        - a `parser` ...
        - a `name` ...
        - a `summary` ...
        - f `shorten_filename` ... - Shortens a filename to make it relative to the current directory (if it can). For display purposes.
        - f `classes_from_module` ...
        - f `classes` ...
      - C `CommandRecord` ...
        - a `help` ...
        - a `parser` ...
        - a `name` ...
        - a `summary` ...
        - a `version_regex` ...
        - f `ini_config` ...
        - f `update_db` ...
        - f `config` ...
        - f `run` ...
        - f `orderClassesByDependencyLevel` ... - Return classes ordered by their depth in the class dependency tree (this is not the inheritance tree), from the top level (independant) classes to the deepest level. The dependency tree is defined by the foreign key relations.
        - f `load_options_from_egg` ...
      - C `CommandUpgrade` ...
        - a `help` ...
        - a `parser` ...
        - a `name` ...
        - a `summary` ...
        - a `upgrade_regex` ...
        - f `ini_config` ...
        - f `strip_comments` ...
        - f `update_db` ...
        - f `orderClassesByDependencyLevel` ... - Return classes ordered by their depth in the class dependency tree (this is not the inheritance tree), from the top level (independant) classes to the deepest level. The dependency tree is defined by the foreign key relations.
        - f `base_dir` ...
      - f `nowarning_tempnam` ...
      - f `db_differences` ... - Returns the differences between a class and the table in a connection. Returns [] if no differences are found. This function does the best it can; it can miss many differences.
      - f `standard_parser` ...
      - f `register` ...
      - f `update_sys_path` ...
  - m `mysql` ...
    - a `__package__` ...
    - f `builder` ...
    - m `mysqlconnection` ...
      - a `__package__` ...
      - C `ErrorMessage` ...
      - C `MySQLConnection` ...
        - a `supportTransactions` ...
        - a `schemes` ...
        - a `dbName` ...
        - f `createReferenceConstraint` ...
        - f `delColumn` ...
        - f `guessClass` ...
        - f `__init__` ...
        - f `listTables` ...
        - f `createIndexSQL` ...
        - f `can_use_microseconds` ...
        - f `columnsFromSchema` ...
        - f `dropDatabase` ...
        - f `server_version` ...
        - f `createIDColumn` ...
        - f `makeConnection` ...
        - f `tableExists` ...
        - f `createColumn` ...
        - f `joinSQLType` ...
        - f `addColumn` ...
  - m `cache` ... - This implements the instance caching in SQLObject. Caching is relatively aggressive. All objects are retained so long as they are in memory, by keeping weak references to objects. We also keep other objects in a cache that doesn't allow them to be garbage collected (unless caching is turned off).
    - a `__package__` ...
    - C `CacheSet` ... - A CacheSet is used to collect and maintain a series of caches. In SQLObject, there is one CacheSet per connection, and one Cache in the CacheSet for each class, since IDs are not unique across classes. It contains methods similar to Cache, but that take a `cls` argument.
      - f `getAll` ... - Returns all instances in the cache for the given class or all classes.
      - f `allSubCaches` ...
      - f `finishPut` ...
      - f `weakrefAll` ... - Move all objects in the cls (or if not given, then in all classes) to the weakref dictionary, where they can be collected.
      - f `created` ...
      - f `tryGetByName` ...
      - f `clear` ...
      - f `tryGet` ...
      - f `get` ...
      - f `expire` ...
      - f `allSubCachesByClassNames` ...
      - f `put` ...
      - f `allIDs` ...
      - f `__init__` ...
    - C `CacheFactory` ... - CacheFactory caches object creation. Each object should be referenced by a single hashable ID (note tuples of hashable values are also hashable).
      - f `created` ... - Inserts and object into the cache. Should be used when no one else knows about the object yet, so there cannot be any object already in the cache. After a database INSERT is an example of this situation.
      - f `clear` ... - Removes everything from the cache. Warning! This can cause duplicate objects in memory.
  - m `include` ...
    - m `hashcol` ...
      - a `__package__` ...
      - C `HashCol` ... - End-user HashCol class. May be instantiated with 'hashMethod', a function which returns the string hash of any other string (i.e. basestring).
        - a `name` ...
        - C `baseClass` ... - The internal HashCol definition. By default, enforces a md5 digest.
          - a `validator` ...
          - a `default` ...
          - a `joinName` ...
          - f `__init__` ...
          - f `createValidators` ...
    - m `pydispatch` ... - Multi-consumer multi-producer dispatching mechanism
      - m `errors` ... - Error types for dispatcher mechanism
        - C `DispatcherTypeError` ... - Error raised when inappropriate signal-type specified (None)
          - a `args` ...
          - a `message` ...
        - C `DispatcherKeyError` ... - Error raised when unknown (sender,signal) set specified
        - C `DispatcherError` ... - Base class for all Dispatcher errors
      - m `saferef` ... - Refactored "safe reference" from dispatcher.py
        - a `__package__` ...
        - C `BoundMethodWeakref` ... - 'Safe' and reusable weak references to instance methods
          - f `__nonzero__` ... - Whether we are still a valid reference
          - f `calculateKey` ... - Calculate the reference key for this reference
          - f `__cmp__` ... - Compare with another reference
          - f `__call__` ... - Return a strong reference to the bound method
          - f `__init__` ... - Return a weak-reference-like instance for a bound method
        - f `safeRef` ... - Return a safe weak reference to a callable target
      - m `robust` ... - Module implementing error-catching version of send (sendRobust)
        - a `Anonymous` ...
        - a `__package__` ...
        - a `Any` ...
        - f `sendRobust` ... - Send signal from sender to all connected receivers catching errors
      - m `robustapply` ... - Robust apply mechanism
        - f `function` ... - Get function-like callable object for given receiver
        - f `robustApply` ... - Call receiver with arguments and an appropriate subset of named
      - m `dispatcher` ... - Multiple-producer-multiple-consumer signal-dispatching
        - a `connections` ...
        - a `senders` ...
        - a `__package__` ...
        - a `generators` ...
        - a `sendersBack` ...
        - a `__cvsid__` ...
        - a `WEAKREF_TYPES` ...
        - f `liveReceivers` ... - Filter sequence of receivers to get resolved, live receivers
        - f `connect` ... - Connect receiver to sender for signal
        - f `getAllReceivers` ... - Get list of all receivers from global tables
        - f `disconnect` ... - Disconnect receiver from sender for signal
        - f `send` ... - Send signal from sender to all connected receivers.
        - f `getReceivers` ... - Get list of receivers from global tables
        - f `sendExact` ... - Send signal only to those receivers registered for exact message
  - m `postgres` ...
    - a `__package__` ...
    - f `builder` ...
    - m `pgconnection` ...
      - a `__package__` ...
      - C `ErrorMessage` ...
      - C `PostgresConnection` ...
        - a `schemes` ...
        - a `dbName` ...
        - f `createReferenceConstraint` ...
        - f `delColumn` ...
        - f `guessClass` ...
        - f `__init__` ...
        - f `listTables` ...
        - f `listDatabases` ...
        - f `createIndexSQL` ...
        - f `createColumn` ...
        - f `dropTable` ...
        - f `columnsFromSchema` ...
        - f `defaultFromSchema` ... - If the default can be converted to a python constant, convert it. Otherwise return is as a sqlbuilder constant.
        - f `dropDatabase` ...
        - f `createIDColumn` ...
        - f `tableExists` ...
        - f `joinSQLType` ...
        - f `addColumn` ...
        - f `createEmptyDatabase` ...
      - f `PsycoBinaryConverter` ...
  - m `views` ...
    - a `table` ...
    - a `SQLTrueClause` ...
    - a `operatorMap` ...
    - a `safeSQLRE` ...
    - a `__package__` ...
    - C `ViewSQLObjectField` ...
      - f `__init__` ...
      - f `__sqlrepr__` ...
      - f `tablesUsedImmediate` ...
    - C `ViewSQLObjectTable` ...
    - C `ViewSQLObject` ... - A SQLObject class that derives all it's values from other SQLObject classes. Columns on subclasses should use SQLBuilder constructs for dbName, and sqlmeta should specify:
      - a `j` ...
      - a `q` ...
      - f `__classinit__` ...
    - f `isAggregate` ...
  - m `util` ...
    - m `threadinglocal` ...
      - a `__package__` ...
    - m `csvexport` ... - Exports a SQLObject class (possibly annotated) to a CSV file.
      - a `__package__` ...
      - f `export_csv` ... - Export the SQLObject class `soClass` to a CSV file.
      - f `export_csv_zip` ... - Export several SQLObject classes into a .zip file. Each item in the `soClasses` list may be a SQLObject class, select result, or `(soClass, select)` tuple.
    - m `moduleloader` ...
      - a `__package__` ...
      - f `load_module` ...
      - f `load_module_from_name` ...
    - m `csvimport` ... - Import from a CSV file or directory of files.
      - a `__package__` ...
      - f `create_data` ... - Create the `data`, which is the return value from `load_csv()`. Classes will be resolved with the callable `class_getter`; or if `class_getter` is a module then the class names will be attributes of that.
      - f `load_csv` ... - Loads the CSV file, returning a list of dictionaries with types coerced.
      - f `load_csv_from_directory` ... - Load the data from all the files in a directory. Filenames indicate the class, with `general.csv` for data not associated with a class. Return data just like `load_csv` does.
  - m `versioning` ...
    - a `__package__` ...
    - C `Version` ...
      - a `j` ...
      - a `q` ...
      - f `restore` ...
      - f `getChangedFields` ...
      - f `nextVersion` ...
      - f `select` ...
    - C `Versioning` ...
      - f `__addtoclass__` ...
      - f `rowUpdate` ...
      - f `createTable` ...
      - f `__init__` ...
      - f `__get__` ...
    - f `getColumns` ...
  - m `constraints` ... - Constraints
    - C `MaxLength` ...
      - f `__call__` ...
      - f `__init__` ...
    - C `BadValue` ...
      - f `__init__` ...
    - C `InList` ...
      - f `__call__` ...
      - f `__init__` ...
    - f `isFloat` ...
    - f `isString` ...
    - f `isInt` ...
    - f `notNull` ...
    - f `isBool` ...
  - m `dberrors` ... - dberrors: database exception classes for SQLObject.
    - C `DataError` ...
    - C `DuplicateEntryError` ...
    - C `InterfaceError` ...
    - C `InternalError` ...
    - C `IntegrityError` ...
    - C `Warning` ...
    - C `OperationalError` ...
    - C `Error` ...
    - C `ProgrammingError` ...
    - C `NotSupportedError` ...
    - C `DatabaseError` ...
  - m `index` ...
    - a `__package__` ...
    - C `DatabaseIndex` ... - This takes a variable number of parameters, each of which is a column for indexing. Each column may be a column object or the string name of the column (not the database name). You may also use dictionaries, to further customize the indexing of the column. The dictionary may have certain keys:
      - a `name` ...
      - C `baseClass` ...
        - f `convertColumns` ... - Converts all the columns to dictionary descriptors; dereferences string column names.
        - f `maxdbCreateIndexSQL` ...
        - f `sqliteCreateIndexSQL` ...
        - f `firebirdCreateIndexSQL` ...
        - f `get` ...
        - f `getExpression` ...
        - f `mssqlCreateIndexSQL` ...
        - f `sybaseCreateIndexSQL` ...
        - f `__init__` ...
        - f `mysqlCreateIndexSQL` ...
      - f `setName` ...
      - f `withClass` ...
      - f `__init__` ...
  - m `rdbhost` ...
    - a `__package__` ...
    - f `builder` ...
    - m `rdbhostconnection` ... - This module written by David Keeney, 2009, 2010
      - a `__package__` ...
      - C `RdbhostConnection` ...
        - a `schemes` ...
        - a `dbName` ...
        - f `__init__` ...
  - m `mssql` ...
    - a `__package__` ...
    - f `builder` ...
    - m `mssqlconnection` ...
      - a `__package__` ...
      - C `MSSQLConnection` ...
        - a `limit_re` ...
        - a `SHOW_COLUMNS` ...
        - a `SHOW_TABLES` ...
        - a `HAS_IDENTITY` ...
        - a `schemes` ...
        - a `dbName` ...
        - f `createReferenceConstraint` ...
        - f `delColumn` ...
        - f `guessClass` ... - Here we take raw values coming out of syscolumns and map to SQLObject class types.
        - f `__init__` ...
        - f `createIDColumn` ...
        - f `createIndexSQL` ...
        - f `can_use_microseconds` ...
        - f `can_use_max_types` ...
        - f `columnsFromSchema` ...
        - f `server_version` ... - Get server version: 8 - 2000 9 - 2005 10 - 2008 11 - 2012
        - f `makeConnection` ...
        - f `tableExists` ...
        - f `insert_id` ... - insert_id method.
        - f `createColumn` ...
        - f `joinSQLType` ...
        - f `addColumn` ...
  - m `sqlbuilder` ...
    - a `__package__` ...
    - C `INSubquery` ...
      - a `op` ...
      - f `__ror__` ...
      - f `startswith` ...
      - f `__radd__` ...
      - f `__rmul__` ...
      - f `endswith` ...
      - f `__rsub__` ...
      - f `__rdiv__` ...
      - f `__and__` ...
      - f `__lt__` ...
      - f `__abs__` ...
      - f `__rmod__` ...
      - f `__init__` ...
      - f `__rpow__` ...
      - f `__rand__` ...
      - f `__sqlrepr__` ...
      - f `contains` ...
      - f `__cmp__` ...
      - f `__pos__` ...
      - f `__call__` ...
      - f `__mul__` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__invert__` ...
      - f `__rcmp__` ...
      - f `__or__` ...
      - f `__add__` ...
      - f `__gt__` ...
      - f `__eq__` ...
      - f `__mod__` ...
      - f `__div__` ...
      - f `__le__` ...
      - f `__neg__` ...
      - f `components` ...
      - f `__sub__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
      - f `__ge__` ...
      - f `__pow__` ...
    - C `Union` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `__neg__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `Outer` ...
      - f `__init__` ...
    - C `ColumnAS` ... - Just like SQLOp('AS', expr, name) except without the parentheses
      - f `__ror__` ...
      - f `startswith` ...
      - f `__radd__` ...
      - f `endswith` ...
      - f `__rdiv__` ...
      - f `__and__` ...
      - f `__rmod__` ...
      - f `__init__` ...
      - f `__rpow__` ...
      - f `__cmp__` ...
      - f `__pos__` ...
      - f `__call__` ...
      - f `__mul__` ...
      - f `__rcmp__` ...
      - f `__add__` ...
      - f `execute` ...
      - f `__mod__` ...
      - f `__div__` ...
      - f `__neg__` ...
      - f `components` ...
      - f `__sub__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `AliasField` ...
      - f `__and__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `__neg__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `SQLCall` ...
      - f `__and__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `__neg__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `Update` ...
      - f `__and__` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `SQLModulo` ...
      - f `__and__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `__neg__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `ConstantSpace` ...
    - C `SQLObjectState` ...
    - C `LIKE` ...
      - a `op` ...
      - f `__rmul__` ...
      - f `__and__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `__gt__` ...
      - f `__neg__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `SQLJoin` ...
      - f `__ne__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `NOTINSubquery` ...
      - a `op` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__neg__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `SQLConstant` ...
      - f `__and__` ...
      - f `tablesUsedImmediate` ...
      - f `__or__` ...
      - f `__add__` ...
      - f `__neg__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `Select` ...
      - f `orderBy` ...
      - f `reversed` ...
      - f `__radd__` ...
      - f `__and__` ...
      - f `__init__` ...
      - f `tablesUsedImmediate` ...
      - f `unlimited` ...
      - f `__or__` ...
      - f `__add__` ...
      - f `__eq__` ...
      - f `newItems` ...
      - f `__le__` ...
      - f `__neg__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `OuterField` ...
      - f `tablesUsedImmediate` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `NoDefault` ...
    - C `Subquery` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `tablesUsedSet` ...
    - C `TableSpace` ...
      - C `TableClass` ...
        - C `FieldClass` ...
          - f `__ror__` ...
          - f `startswith` ...
          - f `endswith` ...
          - f `__rdiv__` ...
          - f `__and__` ...
          - f `__lt__` ...
          - f `__rmod__` ...
          - f `__init__` ...
          - f `__rpow__` ...
          - f `__rand__` ...
          - f `contains` ...
          - f `__cmp__` ...
          - f `__call__` ...
          - f `__mul__` ...
          - f `tablesUsedImmediate` ...
          - f `__rcmp__` ...
          - f `__or__` ...
          - f `__add__` ...
          - f `__gt__` ...
          - f `execute` ...
          - f `__mod__` ...
          - f `__neg__` ...
          - f `components` ...
          - f `__sub__` ...
          - f `tablesUsedSet` ...
          - f `__ge__` ...
          - f `__pow__` ...
        - f `__abs__` ...
        - f `__call__` ...
        - f `__mul__` ...
        - f `__invert__` ...
        - f `__eq__` ...
        - f `__mod__` ...
        - f `__div__` ...
    - C `Delete` ... - To be safe, this will signal an error if there is no where clause, unless you pass in where=None to the constructor.
      - f `startswith` ...
      - f `__rmul__` ...
      - f `endswith` ...
      - f `__rdiv__` ...
      - f `__and__` ...
      - f `__rand__` ...
      - f `__sqlrepr__` ...
      - f `contains` ...
      - f `__cmp__` ...
      - f `__call__` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__rcmp__` ...
      - f `__add__` ...
      - f `__mod__` ...
      - f `__div__` ...
      - f `components` ...
      - f `__sub__` ...
      - f `tablesUsedSet` ...
      - f `__pow__` ...
    - C `ImportProxy` ... - Class to be used in column definitions that rely on other tables that might not yet be in a classregistry.
      - C `FieldClass` ...
        - f `__ror__` ...
        - f `startswith` ...
        - f `__radd__` ...
        - f `endswith` ...
        - f `__rdiv__` ...
        - f `__and__` ...
        - f `__lt__` ...
        - f `__abs__` ...
        - f `__rmod__` ...
        - f `__init__` ...
        - f `__rpow__` ...
        - f `__rand__` ...
        - f `contains` ...
        - f `__cmp__` ...
        - f `__pos__` ...
        - f `__call__` ...
        - f `__mul__` ...
        - f `__ne__` ...
        - f `__rcmp__` ...
        - f `__or__` ...
        - f `__add__` ...
        - f `execute` ...
        - f `__mod__` ...
        - f `__div__` ...
        - f `__le__` ...
        - f `__neg__` ...
        - f `components` ...
        - f `__sub__` ...
        - f `tablesUsedSet` ...
        - f `__ge__` ...
      - f `__abs__` ...
      - f `__cmp__` ...
      - f `__call__` ...
      - f `__mul__` ...
      - f `__invert__` ...
      - f `__add__` ...
      - f `__gt__` ...
      - f `__mod__` ...
    - C `Replace` ...
      - f `tablesUsedImmediate` ...
      - f `__neg__` ...
      - f `tablesUsedSet` ...
    - C `SQLObjectTable` ...
      - C `FieldClass` ...
        - f `startswith` ...
        - f `endswith` ...
        - f `__rdiv__` ...
        - f `__and__` ...
        - f `__rmod__` ...
        - f `__init__` ...
        - f `__cmp__` ...
        - f `__call__` ...
        - f `tablesUsedImmediate` ...
        - f `__rcmp__` ...
        - f `__or__` ...
        - f `__add__` ...
        - f `execute` ...
        - f `__mod__` ...
        - f `__neg__` ...
        - f `components` ...
        - f `__sub__` ...
        - f `__ge__` ...
      - f `__abs__` ...
      - f `__call__` ...
      - f `__invert__` ...
    - C `VersionError` ...
    - C `SQLExpression` ...
      - f `tablesUsedImmediate` ...
      - f `tablesUsedSet` ...
    - C `RLIKE` ...
      - a `op_db` ...
      - a `op` ...
      - f `__and__` ...
      - f `__init__` ...
      - f `__pos__` ...
      - f `tablesUsedImmediate` ...
      - f `execute` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `OuterTable` ...
      - f `tablesUsedImmediate` ...
      - f `__abs__` ...
      - f `__call__` ...
      - f `__invert__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `SQLOp` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `tablesUsedSet` ...
    - C `SQLJoinOn` ... - Conditional JOIN ON
      - f `__rmul__` ...
      - f `endswith` ...
      - f `__rdiv__` ...
      - f `__and__` ...
      - f `__lt__` ...
      - f `__rand__` ...
      - f `__sqlrepr__` ...
      - f `contains` ...
      - f `__cmp__` ...
      - f `__call__` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__rcmp__` ...
      - f `__add__` ...
      - f `__div__` ...
      - f `components` ...
      - f `__sub__` ...
      - f `tablesUsedSet` ...
      - f `__pow__` ...
    - C `SQLTrueClauseClass` ...
      - f `tablesUsedImmediate` ...
      - f `__or__` ...
      - f `__add__` ...
      - f `tablesUsedSet` ...
      - f `__pow__` ...
    - C `SQLObjectTableWithJoins` ...
      - f `endswith` ...
      - f `__rmod__` ...
      - f `__init__` ...
      - f `__rand__` ...
      - f `__call__` ...
      - f `__invert__` ...
      - f `__add__` ...
      - f `__eq__` ...
      - f `tablesUsed` ...
      - f `tablesUsedSet` ...
    - C `SQLJoinUsing` ... - Conditional JOIN USING
      - f `startswith` ...
      - f `__rmul__` ...
      - f `endswith` ...
      - f `__rdiv__` ...
      - f `__and__` ...
      - f `__lt__` ...
      - f `__rand__` ...
      - f `__sqlrepr__` ...
      - f `contains` ...
      - f `__cmp__` ...
      - f `__call__` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__rcmp__` ...
      - f `__add__` ...
      - f `__mod__` ...
      - f `__div__` ...
      - f `components` ...
      - f `__sub__` ...
      - f `tablesUsedSet` ...
      - f `__pow__` ...
    - C `SQLPrefix` ...
      - f `__and__` ...
      - f `tablesUsedImmediate` ...
      - f `__or__` ...
      - f `__add__` ...
      - f `__neg__` ...
      - f `tablesUsedSet` ...
    - C `CONCAT` ...
    - C `SQLJoinConditional` ... - Conditional JOIN
      - f `__ror__` ...
      - f `startswith` ...
      - f `__rmul__` ...
      - f `endswith` ...
      - f `__rdiv__` ...
      - f `__and__` ...
      - f `__lt__` ...
      - f `__abs__` ...
      - f `__rand__` ...
      - f `__sqlrepr__` ...
      - f `contains` ...
      - f `__cmp__` ...
      - f `__call__` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__rcmp__` ...
      - f `__add__` ...
      - f `__mod__` ...
      - f `__div__` ...
      - f `components` ...
      - f `__sub__` ...
      - f `tablesUsedSet` ...
      - f `__pow__` ...
    - C `Insert` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `__neg__` ...
      - f `tablesUsedSet` ...
    - C `Alias` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `__neg__` ...
      - f `tablesUsedSet` ...
    - C `DESC` ...
      - f `__ne__` ...
      - f `tablesUsedImmediate` ...
      - f `__add__` ...
      - f `tablesUsedSet` ...
    - C `AliasTable` ...
      - f `startswith` ...
      - f `__call__` ...
      - f `tablesUsedImmediate` ...
      - f `__invert__` ...
      - f `execute` ...
      - f `tablesUsedSet` ...
    - f `LEFTJOINUsing` ...
    - f `RIGHTJOINOn` ...
    - f `LEFTOUTERJOIN` ...
    - f `LEFTOUTERJOINConditional` ...
    - f `CROSSJOIN` ...
    - f `RIGHTJOIN` ...
    - f `STRAIGHTJOIN` ...
    - f `LEFTJOINConditional` ...
    - f `RIGHTJOINConditional` ...
    - f `RIGHTOUTERJOIN` ...
    - f `NATURALRIGHTOUTERJOIN` ...
    - f `RIGHTOUTERJOINConditional` ...
    - f `execute` ...
    - f `OR` ...
    - f `NATURALRIGHTJOIN` ...
    - f `SOME` ...
    - f `FULLOUTERJOIN` ...
    - f `FULLJOINUsing` ...
    - f `NOTEXISTS` ...
    - f `SQLExprConverter` ...
    - f `tablesUsedSet` ...
    - f `AND` ...
    - f `CONTAINSSTRING` ...
    - f `ISNULL` ...
    - f `FULLOUTERJOINOn` ...
    - f `NOT` ...
    - f `FULLJOIN` ...
    - f `STARTSWITH` ...
    - f `INNERJOINConditional` ...
    - f `RIGHTOUTERJOINUsing` ...
    - f `NATURALLEFTOUTERJOIN` ...
    - f `sqlIdentifier` ...
    - f `RIGHTJOINUsing` ...
    - f `INNERJOINUsing` ...
    - f `NATURALJOIN` ...
    - f `LEFTJOIN` ...
    - f `ALL` ...
    - f `NATURALLEFTJOIN` ...
    - f `JOIN` ...
    - f `NATURALFULLOUTERJOIN` ...
    - f `FULLJOINOn` ...
    - f `RIGHTOUTERJOINOn` ...
    - f `FULLOUTERJOINConditional` ...
    - f `LEFTJOINOn` ...
    - f `FULLJOINConditional` ...
    - f `NATURALFULLJOIN` ...
    - f `ENDSWITH` ...
    - f `LEFTOUTERJOINUsing` ...
    - f `dictToList` ...
    - f `NOTIN` ...
    - f `ISNOTNULL` ...
    - f `LEFTOUTERJOINOn` ...
    - f `INNERJOINOn` ...
    - f `INNERJOIN` ...
    - f `EXISTS` ...
    - f `IN` ...
    - f `ANY` ...
    - f `FULLOUTERJOINUsing` ...
  - m `firebird` ...
    - a `__package__` ...
    - f `builder` ...
    - m `firebirdconnection` ...
      - a `__package__` ...
      - C `FirebirdConnection` ...
        - a `schemes` ...
        - a `dbName` ...
        - f `createReferenceConstraint` ...
        - f `delColumn` ...
        - f `guessClass` ... - An internal method that tries to figure out what Col subclass is appropriate given whatever introspective information is available -- both very database-specific.
        - f `createIndexSQL` ...
        - f `createColumn` ...
        - f `dropTable` ...
        - f `dropDatabase` ...
        - f `createIDColumn` ...
        - f `makeConnection` ...
        - f `tableExists` ...
        - f `joinSQLType` ...
        - f `addColumn` ...
        - f `createEmptyDatabase` ...
  - m `converters` ...
    - a `__package__` ...
    - a `converters` ...
    - a `sqlStringReplace` ...
    - C `ConverterRegistry` ...
    - f `TimeConverter` ...
    - f `StringLikeConverter` ...
    - f `mxDateTimeConverter` ...
    - f `SequenceConverter` ...
    - f `TimeConverterMS` ...
    - f `sqlrepr` ...
    - f `LongConverter` ...
    - f `quote_str` ...
    - f `BoolConverter` ...
    - f `DateTimeConverter` ...
    - f `mxTimeConverter` ...
    - f `TimedeltaConverter` ...
    - f `NoneConverter` ...
    - f `DecimalConverter` ...
    - f `IntConverter` ...
    - f `unquote_str` ...
    - f `DateTimeConverterMS` ...
    - f `registerConverter` ...
    - f `lookupConverter` ...
    - f `DateConverter` ...
    - f `FloatConverter` ...
    - f `StructTimeConverter` ...
  - m `classregistry` ... -
    classresolver.py
      2 February 2004, Ian Bicking <ianb@colorstudy.com>
    - a `MasterRegistry` ...
    - C `ClassRegistry` ... - We'll be dealing with classes that reference each other, so class C1 may reference C2 (in a join), while C2 references C1 right back. Since classes are created in an order, there will be a point when C1 exists but C2 doesn't. So we deal with classes by name, and after each class is created we try to fix up any references by replacing the names with actual classes.
      - f `addClassCallback` ... - Whenever a name is substituted for the class, you can register a callback that will be called when the needed class is created. If it's already been created, the callback will be called immediately.
      - f `allClasses` ...
      - f `__init__` ...
      - f `addClass` ... - Everytime a class is created, we add it to the registry, so that other classes can find it by name. We also call any callbacks that are waiting for the class.
    - f `registry` ...
    - f `findClass` ...
  - m `main` ...
    - a `__package__` ...
    - C `SQLObjectIntegrityError` ...
    - C `SQLObjectNotFound` ...
    - C `sqlmeta` ... - This object is the object we use to keep track of all sorts of information. Subclasses are made for each SQLObject subclass (dynamically if necessary), and instances are created to go alongside every SQLObject instance.
      - a `columnDefinitions` ...
      - a `indexes` ...
      - a `childClasses` ...
      - a `columnList` ...
      - a `columns` ...
      - a `indexDefinitions` ...
      - a `joins` ...
      - a `joinDefinitions` ...
      - f `delColumn` ...
      - f `addIndex` ...
      - f `__init__` ...
      - f `expireAll` ... - Expire all instances of this class.
      - f `addColumnsFromDatabase` ...
      - f `send` ...
      - f `setClass` ...
      - f `delJoin` ...
      - f `asDict` ... - Return the object as a dictionary of columns to values.
      - f `__classinit__` ...
      - f `addJoin` ...
      - f `getColumns` ...
      - f `addColumn` ...
    - C `SQLObject` ...
      - f `set` ...
      - f `deleteBy` ...
      - f `sqlrepr` ...
      - f `sync` ...
      - f `dropJoinTables` ...
      - f `__lt__` ...
      - f `createJoinTables` ...
      - f `__init__` ...
      - f `createIndexes` ...
      - f `__sqlrepr__` ...
      - f `expire` ...
      - f `select` ...
      - f `__getstate__` ...
      - f `__ne__` ...
      - f `dropTable` ...
      - f `__classinit__` ...
      - f `createTableSQL` ...
      - f `destroySelf` ...
      - f `clearTable` ...
      - f `syncUpdate` ...
      - f `deleteMany` ...
      - f `tableExists` ...
      - f `selectBy` ...
      - f `tablesUsedImmediate` ...
      - f `__le__` ...
    - f `getID` ...
    - f `getObject` ...
  - m `boundattributes` ... - Bound attributes are attributes that are bound to a specific class and a specific name. In SQLObject a typical example is a column object, which knows its name and class.
    - a `__package__` ...
    - C `BoundAttribute` ... - This is a declarative class that passes all the values given to it to another object. So you can pass it arguments (via __init__/__call__) or give it the equivalent of keyword arguments through subclassing. Then a bound object will be added in its place.
      - a `__addtoclass__` ...
      - a `singleton` ...
      - f `__classinit__` ...
      - f `make_object` ...
      - f `set_object` ...
      - f `__instanceinit__` ...
    - C `BoundFactory` ... - This will bind the attribute to whatever is given by `factory_class`. This factory should be a callable with the signature `factory_class(added_class, attr_name, *args, **kw)`.
      - a `__addtoclass__` ...
      - a `singleton` ...
      - a `declarative_count` ...
      - f `make_object` ...
      - f `set_object` ...
      - f `__instanceinit__` ...
  - m `styles` ...
    - a `__package__` ...
    - C `Style` ... - The base Style class, and also the simplest implementation. No translation occurs -- column names and attribute names match, as do class names and table names (when using auto class or schema generation).
      - f `dbTableToPythonClass` ...
      - f `dbColumnToPythonAttr` ...
      - f `instanceAttrToIDAttr` ...
      - f `pythonClassToAttr` ...
      - f `tableReference` ...
    - C `MixedCaseUnderscoreStyle` ... - This is the default style. Python attributes use mixedCase, while database columns use underscore_separated.
      - f `pythonClassToDBTable` ...
      - f `dbColumnToPythonAttr` ...
      - f `instanceAttrToIDAttr` ...
      - f `pythonClassToAttr` ...
      - f `__init__` ...
    - C `MixedCaseStyle` ... - This style leaves columns as mixed-case, and uses long ID names (like ProductID instead of simply id).
      - f `pythonAttrToDBColumn` ...
      - f `dbColumnToPythonAttr` ...
      - f `pythonClassToAttr` ...
      - f `instanceIDAttrToAttr` ...
  - m `sqlite` ...
    - a `__package__` ...
    - f `builder` ...
    - m `sqliteconnection` ...
      - a `__package__` ...
      - C `SQLiteConnection` ...
        - a `schemes` ...
        - a `dbName` ...
        - f `getConnection` ...
        - f `createReferenceConstraint` ...
        - f `guessClass` ...
        - f `close` ...
        - f `recreateTableWithoutColumn` ...
        - f `uri` ...
        - f `listTables` ...
        - f `oldUri` ...
        - f `createIndexSQL` ...
        - f `createColumn` ...
        - f `columnsFromSchema` ...
        - f `dropDatabase` ...
        - f `releaseConnection` ...
        - f `createIDColumn` ...
        - f `makeConnection` ...
        - f `tableExists` ...
        - f `joinSQLType` ...
        - f `addColumn` ...
        - f `createEmptyDatabase` ...
      - C `ErrorMessage` ...
  - m `dbconnection` ...
    - a `__package__` ...
    - a `TheURIOpener` ...
    - C `DBConnection` ...
      - f `expireAll` ... - Expire all instances of objects for this connection.
      - f `soClassAdded` ... - This is called for each new class; we use this opportunity to create an instance method that is bound to the class and this connection.
      - f `uri` ...
      - f `connectionFromOldURI` ...
      - f `oldUri` ...
      - f `__init__` ...
    - C `ConnectionURIOpener` ...
      - f `connectionForURI` ...
      - f `registerConnectionInstance` ...
    - C `ConnectionHub` ... - This object serves as a hub for connections, so that you can pass in a ConnectionHub to a SQLObject subclass as though it was a connection, but actually bind a real database connection later. You can also bind connections on a per-thread basis.
      - a `threadConnection` ...
      - f `__set__` ...
      - f `getConnection` ...
      - f `__init__` ...
    - C `LogWriter` ...
      - f `write` ...
    - C `ConnWrapper` ... - This represents a SQLObject class that is bound to a specific connection (instances have a connection instance variable, but classes are global, so this is binds the connection variable lazily when a class method is accessed)
      - f `__call__` ...
      - f `__init__` ...
    - C `Transaction` ...
      - f `queryOne` ...
      - f `rollback` ...
      - f `queryInsertID` ...
      - f `__del__` ...
      - f `assertActive` ...
      - f `query` ...
      - f `commit` ...
      - f `close` ...
      - f `__init__` ...
    - C `Iteration` ...
      - f `next` ...
    - C `ConnMethodWrapper` ...
      - f `__call__` ...
      - f `__init__` ...
    - C `ConsoleWriter` ...
      - f `write` ...
    - C `Boolean` ... - A bool class that also understands some special string keywords (yes/no, true/false, on/off, 1/0)
    - C `DBAPI` ... - Subclass must define a makeConnection() method, which returns a newly-created connection object.
      - f `createReferenceConstraint` ...
      - f `getConnection` ...
      - f `accumulateSelect` ... - Apply an accumulate function(s) (SUM, COUNT, MIN, AVG, MAX, etc...) to the select object.
      - f `transaction` ...
      - f `query` ...
      - f `close` ...
      - f `createBinary` ... - Create a binary object wrapper for the given database.
      - f `queryAll` ...
      - f `__init__` ...
      - f `createTableSQL` ...
      - f `expireAll` ... - Expire all instances of objects for this connection.
      - f `uri` ...
      - f `printDebug` ...
      - f `iterSelect` ...
      - f `queryAllDescription` ...
      - f `createTable` ...
      - f `connectionFromURI` ...
      - f `oldUri` ...
      - f `createIndexSQL` ...
      - f `createColumn` ...
      - f `createReferenceConstraints` ...
      - f `dropTable` ...
      - f `clearTable` ...
      - f `__del__` ...
      - f `queryForSelect` ...
      - f `queryOne` ...
      - f `queryInsertID` ...
      - f `soClassAdded` ... - This is called for each new class; we use this opportunity to create an instance method that is bound to the class and this connection.
      - f `createColumns` ...
      - f `connectionFromOldURI` ...
      - f `createSQL` ...
      - f `releaseConnection` ...
      - f `createEmptyDatabase` ... - Create an empty database.
    - f `dbConnectionForScheme` ...
    - f `makeDebugWriter` ...
    - f `registerConnection` ...
    - f `registerConnectionInstance` ...
    - f `connectionForURI` ...
  - m `sybase` ...
    - a `__package__` ...
    - f `builder` ...
    - m `sybaseconnection` ...
      - a `__package__` ...
      - C `SybaseConnection` ...
        - a `SHOW_COLUMNS` ...
        - a `SHOW_TABLES` ...
        - a `HAS_IDENTITY` ...
        - a `schemes` ...
        - a `dbName` ...
        - f `delColumn` ...
        - f `createIDColumn` ...
        - f `createColumn` ...
        - f `columnsFromSchema` ...
        - f `tableExists` ...
        - f `insert_id` ... - Sybase adapter/cursor does not support the insert_id method.
        - f `joinSQLType` ...
        - f `addColumn` ...
  - m `__version__` ...
    - a `release_level` ...
  - m `events` ...
    - a `__package__` ...
    - C `RowCreateSignal` ... - Called before an instance is created, with the class as the sender. Called with the arguments `(instance, kwargs, post_funcs)`. There may be a `connection` argument. `kwargs``may be usefully modified. ``post_funcs` is a list of callbacks, intended to have functions appended to it, and are called with the arguments `(new_instance)`.
    - C `CreateTableSignal` ... - Called when a table is created. If `ifNotExists==True` and the table exists, this event is not called.
    - C `RowDestroyedSignal` ... - Called after an instance is deleted. Sender is the instance's class. Arguments are `(instance)`.
    - C `AddColumnSignal` ... - Called when a column is added to a class, with arguments `(cls, connection, column_name, column_definition, changeSchema, post_funcs)`. This is called after the column has been added, and is called for each column after class creation.
    - C `DeleteColumnSignal` ... - Called when a column is removed from a class, with the arguments `(cls, connection, column_name, so_column_obj, post_funcs)`. Like `AddColumnSignal` this is called after the action has been performed, and is called for subclassing (when a column is implicitly removed by setting it to `None`).
    - C `DropTableSignal` ... - Called when a table is dropped. If `ifExists==True` and the table doesn't exist, this event is not called.
    - C `RowCreatedSignal` ... - Called after an instance is created, with the class as the sender. Called with the arguments `(instance, kwargs, post_funcs)`. There may be a `connection` argument. `kwargs``may be usefully modified. ``post_funcs` is a list of callbacks, intended to have functions appended to it, and are called with the arguments `(new_instance)`.
    - C `RowDestroySignal` ... - Called before an instance is deleted. Sender is the instance's class. Arguments are `(instance, post_funcs)`.
    - C `ClassCreateSignal` ... - Signal raised after class creation. The sender is the superclass (in case of multiple superclasses, the first superclass). The arguments are `(new_class_name, bases, new_attrs, post_funcs, early_funcs)`. `new_attrs` is a dictionary and may be modified (but `new_class_name` and `bases` are immutable). `post_funcs` is an initially-empty list that can have callbacks appended to it.
    - C `Signal` ... - Base event for all SQLObject events.
    - C `RowUpdateSignal` ... - Called when an instance is updated through a call to `.set()` (or a column attribute assignment). The arguments are `(instance, kwargs)`. `kwargs` can be modified. This is run before the instance is updated; if you want to look at the current values, simply look at `instance`.
    - C `RowUpdatedSignal` ... - Called when an instance is updated through a call to `.set()` (or a column attribute assignment). The arguments are `(instance, post_funcs)`. `post_funcs` is a list of callbacks, intended to have functions appended to it, and are called with the arguments `(new_instance)`. This is run after the instance is updated; Works better with lazyUpdate = True.
    - f `listen` ... - Listen for the given `signal` on the SQLObject subclass `soClass`, calling `receiver()` when `send(soClass, signal, ...)` is called.
  - m `maxdb` ...
    - a `__package__` ...
    - f `builder` ...
    - m `maxdbconnection` ... - Contributed by Edigram SAS, Paris France Tel:01 44 77 94 00 Ahmed MOHAMED ALI <ahmedmoali@yahoo.com> 27 April 2004
      - a `__package__` ...
      - a `SAPDBMAX_ID_LENGTH` ...
      - C `MaxdbConnection` ...
        - a `schemes` ...
        - a `GET_PK_AND_FK` ...
        - a `GET_COLUMNS` ...
        - a `dbName` ...
        - f `createReferenceConstraint` ...
        - f `delColumn` ...
        - f `guessClass` ... - An internal method that tries to figure out what Col subclass is appropriate given whatever introspective information is available -- both very database-specific.
        - f `__init__` ...
        - f `createIndexSQL` ...
        - f `createColumn` ...
        - f `createSequenceName` ... - sequence name are builded with the concatenation of the table name with '_SEQ' word we truncate the name of the sequence_name because sapdb identifier cannot exceed 32 characters so that the name of the sequence does not exceed 32 characters
        - f `columnsFromSchema` ...
        - f `sqlAddLimit` ...
        - f `dropTable` ...
        - f `createTable` ...
        - f `createIDColumn` ...
        - f `makeConnection` ...
        - f `tableExists` ...
        - f `joinSQLType` ...
        - f `addColumn` ...
      - C `IncorrectIDStyleError` ...
        - f `__init__` ...
      - C `StyleMismatchError` ...
      - C `maxdbException` ...
      - C `LowerBoundOfSliceIsNotSupported` ...
      - C `PrimaryKeyNotFounded` ...
  - m `declarative` ... - Declarative objects.
    - a `__package__` ...
    - C `classinstancemethod` ... - Acts like a class method when called from a class, like an instance method when called by an instance. The method should take two arguments, 'self' and 'cls'; one of these will be None depending on how the method was called.
      - f `__init__` ...
      - f `__get__` ...
    - C `DeclarativeMeta` ...
      - a `__weakrefoffset__` ...
      - a `__mro__` ...
      - a `__bases__` ...
      - a `__dictoffset__` ...
      - a `__itemsize__` ...
      - a `__name__` ...
      - a `__basicsize__` ...
      - a `__flags__` ...
    - C `Declarative` ...
      - a `singleton` ...
      - f `__classinit__` ...
      - f `__call__` ...
      - f `__init__` ...
      - f `__instanceinit__` ...
  - m `sresults` ...
    - a `__package__` ...
    - C `SelectResults` ...
      - a `throughTo` ...
      - f `orderBy` ...
      - f `newClause` ...
      - f `avg` ...
      - f `sum` ...
      - f `reversed` ...
      - f `__getitem__` ...
      - f `max` ...
      - f `clone` ...
      - f `__iter__` ...
      - f `queryForSelect` ...
      - f `getOne` ... - If a query is expected to only return a single value, using `.getOne()` will return just that value.
      - f `count` ... - Counting elements of current select results
      - f `lazyIter` ... - Returns an iterator that will lazily pull rows out of the database and return SQLObject instances
      - f `min` ...
      - f `accumulateMany` ... - Making the expressions for count/sum/min/max/avg of a given select result attributes. attributes must be a list/tuple of pairs (func_name, attribute); attribute can be a column name (like 'a_column') or a dot-q attribute (like Table.q.aColumn)
      - f `filter` ...
      - f `connection` ...
      - f `limit` ...
  - m `inheritance` ...
    - a `__package__` ...
    - C `InheritableSQLObject` ...
      - a `j` ...
      - a `q` ...
      - C `sqlmeta` ...
        - a `idName` ...
        - a `columnDefinitions` ...
        - a `style` ...
        - a `table` ...
        - a `indexes` ...
        - a `childClasses` ...
        - a `columnList` ...
        - a `columns` ...
        - a `indexDefinitions` ...
        - a `joins` ...
        - a `joinDefinitions` ...
        - f `delColumn` ...
        - f `delJoin` ...
        - f `addJoin` ...
        - f `getColumns` ...
        - f `getAllColumns` ...
      - C `SelectResultsClass` ...
        - f `__init__` ...
        - f `accumulateMany` ...
      - f `set` ...
      - f `select` ...
      - f `get` ...
      - f `__classinit__` ...
      - f `selectBy` ...
  - m `col` ... - Col -- SQLObject columns
    - a `__package__` ...
    - C `TimestampCol` ...
      - C `baseClass` ... - Necessary to support MySQL's use of TIMESTAMP versus DATETIME types
        - a `datetimeFormat` ...
        - f `__set__` ...
        - f `mssqlCreateSQL` ...
        - f `getDbEncoding` ...
        - f `__init__` ...
        - f `maxdbCreateSQL` ...
        - f `sqliteCreateSQL` ...
        - f `mysqlCreateSQL` ...
        - f `__get__` ...
        - f `autoConstraints` ...
        - f `postgresCreateSQL` ...
        - f `sybaseCreateSQL` ...
        - f `createValidators` ...
        - f `firebirdCreateSQL` ...
        - f `createSQL` ...
        - f `__delete__` ...
      - f `withClass` ...
    - C `BigIntCol` ...
      - C `baseClass` ...
        - f `__set__` ...
        - f `mssqlCreateSQL` ...
        - f `getDbEncoding` ...
        - f `sqliteCreateSQL` ...
        - f `__get__` ...
        - f `postgresCreateSQL` ...
        - f `sybaseCreateSQL` ...
        - f `createValidators` ...
      - f `withClass` ...
      - f `__init__` ...
    - C `SOCurrencyCol` ...
      - f `__set__` ...
      - f `mssqlCreateSQL` ...
      - f `getDbEncoding` ...
      - f `__init__` ...
      - f `maxdbCreateSQL` ...
      - f `sqliteCreateSQL` ...
      - f `mysqlCreateSQL` ...
      - f `__get__` ...
      - f `postgresCreateSQL` ...
      - f `createSQL` ...
    - C `SODecimalStringCol` ...
      - f `sqliteCreateSQL` ...
      - f `mysqlCreateSQL` ...
      - f `createSQL` ...
    - C `StringCol` ...
      - C `baseClass` ...
        - f `mssqlCreateSQL` ...
        - f `__init__` ...
        - f `maxdbCreateSQL` ...
        - f `sqliteCreateSQL` ...
        - f `mysqlCreateSQL` ...
        - f `sybaseCreateSQL` ...
        - f `createSQL` ...
        - f `__delete__` ...
      - f `__init__` ...
    - C `SOStringLikeCol` ... - A common ancestor for SOStringCol and SOUnicodeCol
      - f `mssqlCreateSQL` ...
      - f `getDbEncoding` ...
      - f `__init__` ...
      - f `maxdbCreateSQL` ...
      - f `sqliteCreateSQL` ...
      - f `mysqlCreateSQL` ...
      - f `__get__` ...
      - f `autoConstraints` ...
      - f `sybaseCreateSQL` ...
      - f `__delete__` ...
    - C `SOIntCol` ...
      - f `__init__` ...
      - f `sqliteCreateSQL` ...
      - f `mysqlCreateSQL` ...
      - f `postgresCreateSQL` ...
      - f `sybaseCreateSQL` ...
      - f `addSQLAttrs` ...
    - C `SOFloatCol` ...
      - f `maxdbCreateSQL` ...
      - f `__get__` ...
      - f `postgresCreateSQL` ...
      - f `sybaseCreateSQL` ...
      - f `createSQL` ...
    - C `TimedeltaCol` ...
      - C `baseClass` ...
        - f `__set__` ...
        - f `getDbEncoding` ...
        - f `__init__` ...
        - f `maxdbCreateSQL` ...
        - f `sqliteCreateSQL` ...
        - f `mysqlCreateSQL` ...
        - f `__get__` ...
        - f `autoConstraints` ...
        - f `postgresCreateSQL` ...
        - f `sybaseCreateSQL` ...
        - f `createSQL` ...
        - f `__delete__` ...
    - C `SetCol` ...
      - C `baseClass` ...
        - f `__set__` ...
        - f `__init__` ...
        - f `sqliteCreateSQL` ...
        - f `sybaseCreateSQL` ...
      - f `__init__` ...
    - C `SOUnicodeCol` ...
      - f `mssqlCreateSQL` ...
      - f `sqliteCreateSQL` ...
      - f `postgresCreateSQL` ...
      - f `createSQL` ...
    - C `SOCol` ...
      - f `__get__` ...
      - f `postgresCreateSQL` ...
      - f `sybaseCreateSQL` ...
    - C `SOBLOBCol` ...
      - f `__set__` ...
      - f `sqliteCreateSQL` ...
      - f `mysqlCreateSQL` ...
      - f `sybaseCreateSQL` ...
    - C `CurrencyCol` ...
      - f `__init__` ...
    - C `KeyCol` ...
      - C `baseClass` ...
        - a `key_type` ...
        - f `__set__` ...
        - f `mssqlCreateSQL` ...
        - f `sqliteCreateSQL` ...
        - f `mysqlCreateSQL` ...
        - f `__get__` ...
        - f `autoConstraints` ...
        - f `postgresCreateSQL` ...
        - f `sybaseCreateSQL` ...
        - f `createValidators` ... - Create a list of validators for the column.
        - f `firebirdCreateSQL` ...
        - f `__delete__` ...
      - f `withClass` ...
      - f `__init__` ...
    - C `SOMediumIntCol` ...
      - f `__set__` ...
      - f `getDbEncoding` ...
      - f `__init__` ...
      - f `maxdbCreateSQL` ...
      - f `sqliteCreateSQL` ...
      - f `__get__` ...
      - f `postgresCreateSQL` ...
      - f `createSQL` ...
    - C `DateCol` ...
      - C `baseClass` ...
        - a `dateFormat` ...
        - f `mssqlCreateSQL` ...
        - f `getDbEncoding` ...
        - f `sqliteCreateSQL` ...
        - f `autoConstraints` ...
        - f `sybaseCreateSQL` ...
        - f `createSQL` ...
      - f `__init__` ...
    - C `PickleCol` ...
      - C `baseClass` ...
        - f `mssqlCreateSQL` ...
        - f `getDbEncoding` ...
        - f `__init__` ...
        - f `sqliteCreateSQL` ...
        - f `mysqlCreateSQL` ...
        - f `__get__` ...
        - f `autoConstraints` ...
        - f `postgresCreateSQL` ...
        - f `sybaseCreateSQL` ...
        - f `createValidators` ...
        - f `firebirdCreateSQL` ...
        - f `createSQL` ...
        - f `__delete__` ...
      - f `withClass` ...
    - C `IntCol` ...
      - f `withClass` ...
      - f `__init__` ...
    - C `SOTimeCol` ...
      - a `timeFormat` ...
      - f `mssqlCreateSQL` ...
      - f `__init__` ...
      - f `maxdbCreateSQL` ...
      - f `mysqlCreateSQL` ...
      - f `__get__` ...
      - f `autoConstraints` ...
      - f `sybaseCreateSQL` ...
      - f `firebirdCreateSQL` ...
    - C `SOBoolCol` ...
      - f `maxdbCreateSQL` ...
      - f `sqliteCreateSQL` ...
      - f `__get__` ...
      - f `autoConstraints` ...
      - f `postgresCreateSQL` ...
      - f `sybaseCreateSQL` ...
    - C `DecimalCol` ...
      - C `baseClass` ...
        - f `__set__` ...
        - f `mssqlCreateSQL` ...
        - f `getDbEncoding` ...
        - f `__init__` ...
        - f `maxdbCreateSQL` ...
        - f `sqliteCreateSQL` ...
        - f `mysqlCreateSQL` ...
        - f `__get__` ...
        - f `autoConstraints` ...
        - f `sybaseCreateSQL` ...
        - f `__delete__` ...
      - f `__init__` ...
    - C `TimeCol` ...
      - f `__init__` ...
    - C `MediumIntCol` ...
    - C `BLOBCol` ...
    - C `FloatCol` ...
    - C `UnicodeCol` ...
    - C `SmallIntCol` ...
      - C `baseClass` ...
        - f `__set__` ...
        - f `mssqlCreateSQL` ...
        - f `getDbEncoding` ...
        - f `__init__` ...
        - f `mysqlCreateSQL` ...
        - f `autoConstraints` ...
        - f `sybaseCreateSQL` ...
        - f `addSQLAttrs` ...
        - f `createSQL` ...
        - f `__delete__` ...
    - C `TinyIntCol` ...
      - C `baseClass` ...
        - f `__set__` ...
        - f `getDbEncoding` ...
        - f `sqliteCreateSQL` ...
        - f `__get__` ...
        - f `sybaseCreateSQL` ...
        - f `createValidators` ...
        - f `__delete__` ...
    - C `SOForeignKey` ...
      - f `mssqlCreateSQL` ...
      - f `__init__` ...
      - f `maxdbCreateReferenceConstraint` ...
      - f `sqliteCreateSQL` ...
      - f `autoConstraints` ...
      - f `postgresCreateSQL` ...
      - f `firebirdCreateSQL` ...
      - f `createSQL` ...
    - C `DecimalStringCol` ...
      - f `__init__` ...
    - C `SOEnumCol` ...
      - f `sqliteCreateSQL` ...
      - f `mysqlCreateSQL` ...
      - f `sybaseCreateSQL` ...
      - f `createSQL` ...
    - C `BoolCol` ...
      - f `withClass` ...
      - f `__init__` ...
    - C `SODateTimeCol` ...
      - f `__init__` ...
      - f `maxdbCreateSQL` ...
      - f `mysqlCreateSQL` ...
      - f `firebirdCreateSQL` ...
    - C `DateTimeCol` ...
      - f `now` ...
      - f `__init__` ...
    - C `ForeignKey` ...
    - C `Col` ...
    - C `EnumCol` ...
      - f `withClass` ...
    - f `use_microseconds` ...
  - m `joins` ...
    - a `__package__` ...
    - C `MultipleJoin` ...
      - a `joinMethodName` ...
      - C `baseClass` ...
        - a `orderBy` ...
        - f `performJoin` ...
        - f `__init__` ...
    - C `OneToMany` ...
      - a `singleton` ...
      - a `declarative_count` ...
      - a `__unpackargs__` ...
      - a `__addtoclass__` ...
      - a `__restrict_attributes__` ...
      - C `factory_class` ...
    - C `RelatedJoin` ...
      - C `baseClass` ...
        - f `hasIntermediateTable` ...
        - f `add` ...
        - f `remove` ...
        - f `performJoin` ...
        - f `__init__` ...
      - f `withClass` ...
    - C `SQLMultipleJoin` ...
      - C `baseClass` ...
        - f `hasIntermediateTable` ...
        - f `performJoin` ...
      - f `withClass` ...
    - C `ManyToMany` ...
      - a `declarative_count` ...
      - a `__unpackargs__` ...
      - a `__addtoclass__` ...
      - a `__restrict_attributes__` ...
      - C `factory_class` ...
        - f `event_CreateTableSignal` ...
        - f `__init__` ...
        - f `__get__` ...
    - C `SQLRelatedJoin` ...
      - C `baseClass` ...
        - f `remove` ...
    - C `SingleJoin` ...
      - C `baseClass` ...
        - f `performJoin` ...
      - f `withClass` ...
      - f `__init__` ...