WireWorker and its support staff. For most applications, you can use process instead.

You need to start another Python interpreter somewhere using WireServer and have WireWorker connect to it via Twisted AMP. My ServerManager is just the thing for that.

Class RunTask Runs a task and returns the status and result.
Class GetNext With a unique ID, gets the next iteration of data from an iterator or a task result so big that it had to be chunked.
Class WireWorkerUniverse Subclass me in code that runs on the remote interpreter, and then call the subclass methods via runTask.
Class WireWorker Runs tasks "over the wire," via Twisted AMP running on an endpoint connection.
Class ChunkyString I iterate chunks of a big string, deleting my internal reference to it when done so it can be garbage collected even if I'm not.
Class WireRunner An instance of me is constructed by a WireWorkerUniverse on the server end of the AMP connection to run all tasks for its WireServer.
Class WireServer An AMP server for the remote end of a WireWorker.
Class ServerManager I spawn one or more new Python interpreters that run a WireServer on the local machine.
Function runServer Runs a WireServer, listening at the specified endpoint description without bothering with an application.
def runServer(description, wwuFQN):

Runs a WireServer, listening at the specified endpoint description without bothering with an application.

You must specify the package.module.class fully qualified name of a WireWorkerUniverse subclass with wwu.

API Documentation for AsynQueue, generated by pydoctor at 2022-11-17 13:13:24.