I do the hands-on work of (potentially) non-blocking database access for the persistence of array elements 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.

Method __init__ Instantiates me for a three-dimensional array of elements within a particular group uniquely identified by the supplied integer ID, using a database connection to url.
Method startup You can run my transaction methods when the deferred returned from this method fires, and not before.
Method load Element load transaction
Method update Element overwrite (entry update) transaction
Method insert Element add (entry insert) transaction
Method delete Element delete transaction
Method clear Transaction to clear all elements (Use with care!)

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):

Instantiates me for a three-dimensional array of elements within a particular group uniquely identified by the supplied integer ID, using a database connection to url.

def startup(self):

You can run my transaction methods when the deferred returned from this method fires, and not before.

@transact
def load(self, x, y, z):

Element load transaction

@transact
def update(self, x, y, z, value):

Element overwrite (entry update) transaction

@transact
def insert(self, x, y, z, value):

Element add (entry insert) transaction

@transact
def delete(self, x, y, z):

Element delete transaction

@transact
def clear(self):

Transaction to clear all elements (Use with care!)

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