forderClassesByDependencyLevel...
- 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.

forderClassesByDependencyLevel...
- 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.

fshorten_filename...
- Shortens a filename to make it relative to the current
directory (if it can). For display purposes.

forderClassesByDependencyLevel...
- 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.

forderClassesByDependencyLevel...
- 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.

mcache...
- 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).

ffinishPut...
- Releases the lock that is retained when .get() is called and
returns None.

fcreated...
- 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.

fclear...
- Removes everything from the cache. Warning! This can cause
duplicate objects in memory.

fexpireAll...
- Expires all objects, moving them all into the expired/weakref
cache.

f__init__...
- Every cullFrequency times that an item is retrieved from
this cache, the cull method is called.

CCacheSet...
- 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.

fcreate_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.

CDatabaseIndex...
- 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:

CClassRegistry...
- 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.

faddClassCallback...
- 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.

Csqlmeta...
- 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.

CBoundAttribute...
- 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.

CConnectionHub...
- 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.

CConnWrapper...
- 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)

CRowCreateSignal...
- 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).

CCreateTableSignal...
- Called when a table is created. If ifNotExists==True and the
table exists, this event is not called.

CRowDestroyedSignal...
- Called after an instance is deleted. Sender is the instance's
class. Arguments are (instance).

CAddColumnSignal...
- 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.

CDeleteColumnSignal...
- 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).

CDropTableSignal...
- Called when a table is dropped. If ifExists==True and the
table doesn't exist, this event is not called.

CRowCreatedSignal...
- 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).

CRowDestroySignal...
- Called before an instance is deleted. Sender is the instance's
class. Arguments are (instance, post_funcs).

CClassCreateSignal...
- 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.

CRowUpdateSignal...
- 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.

CRowUpdatedSignal...
- 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.

flisten...
- Listen for the given signal on the SQLObject subclass
soClass, calling receiver() when send(soClass, signal,
...) is called.

fcreateSequenceName...
- 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

Cclassinstancemethod...
- 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.

faccumulateMany...
- 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)