#

# Index of the `cache` module

- m `sqlobject.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.
    - f `tryGet` ... - This returns None, or the object in cache.
    - f `expire` ... - Expires a single object. Typically called after a delete. Doesn't even keep a weakref. (@@: bad name?)