I do the hands-on work of non-blocking database access for the persistence of name:value items within a uniquely-identified group.

My methods return Twisted Deferred instances to the results of their database accesses rather than forcing the client code to block while the database access is being completed.

Construct me for the items of a particular group uniquely identified by the supplied integer ID, optionally using a particular database connection to url with any supplied keywords.

Method __init__ Constructor
Method startup Startup method, automatically called before the first transaction.
Method load Item load transaction.
Method loadAll Loads all my items, returning a name:value dict.
Method update Item overwrite (entry update) transaction.
Method insert Item add (entry insert) transaction.
Method delete Item(s) delete transaction.
Method names All item names loading transaction.

Inherited from AccessBroker:

Instance Variable q A property-generated reference to a threaded task queue that is dedicated to my database connection.
Instance Variable connection The current SQLAlchemy connection object, if any yet exists. Generated by my connect method.
Class Method setup Constructs a global queue for all instances of me, returning a deferred that fires with it.
Method singleton Undocumented
Method connect Undocumented
Method waitUntilRunning Returns a Deferred that fires when the broker is running and ready for transactions.
Method callWhenRunning Calls the f-args-kw combo when the broker is running and ready for transactions.
Method table Instantiates a new table object, creating it in the transaction thread as needed.
Method first No summary
Method shutdown Shuts down my database transaction functionality and threaded task queue, returning a Deferred that fires when all queued tasks are done and the shutdown is complete.
Method handleResult No summary
Method s Polymorphic method for working with select instances within a cached selection subcontext.
Method select Just returns an SQLAlchemy select object. You do everything else.
Method selex Supply columns as arguments and this method generates a select on the columns, yielding a placeholder object with the same attributes as the select object itself.
Method selectorator No summary
Method execute Does a connection.execute(*args, **kw) as a transaction, in my thread with my current connection, with all the usual handling of the ResultProxy.
Method sql Executes raw SQL as a transaction, in my thread with my current connection, with any rows of the result returned as a list.
Method produceRows No summary
Method deferToQueue Dispatches callable(*args, **kw) as a task via the like-named method of my asynchronous queue, returning a Deferred to its eventual result.
def __init__(self, ID, *url, **kw):
def startup(self):

Startup method, automatically called before the first transaction.

@transact
def load(self, name):

Item load transaction.

@transact
def loadAll(self):

Loads all my items, returning a name:value dict.

@transact
def update(self, name, value):

Item overwrite (entry update) transaction.

@transact
def insert(self, name, value):

Item add (entry insert) transaction.

@transact
def delete(self, *names):

Item(s) delete transaction.

@transact
def names(self):

All item names loading transaction.

API Documentation for sAsync, generated by pydoctor at 2021-09-18 08:41:22.