A wrapper around
shotgun_api3 to allow for parallel requests.
The standard Shotgun API uses a connection object that serialized requests. Therefore, efficient usage in a multi-threaded environment is tricker than it could be. Ergo, this module was concieved.
ShotgunPool is a connection pool that creates fresh Shotgun instances
when needed, and recycles old ones after use. It proxies attributes and
methods to the managed instances. An actual Shotgun instance should never leak
out of this object, so even passing around bound methods from this object
should be safe.
>>> # Construct and wrap a Shotgun instance. >>> shotgun = Shotgun(...) >>> shotgun = ShotgunPool(shotgun) >>> >>> # Use it like normal, except in parallel. >>> shotgun.find('Task', ...)
ShotgunPool(prototype, *args, **kwargs)¶
Shotgun connection pool.
Parameters: prototype – Shotgun instance to use as a prototype, OR the
base_urlto be used to construct a prototype.
If passed a
base_url, the remaining args and kwargs will be passed to the Shotgun constructor for creation of a prototype.
configobject of the prototype will be shared amoung all Shotgun instances created; changing the settings on one Shotgun instance (or this object) will affect all other instances.