kwcoco.util.util_futures module

class kwcoco.util.util_futures.SerialExecutor[source]

Bases: object

Implements the concurrent.futures API around a single-threaded backend

Example

>>> with SerialExecutor() as executor:
>>>     futures = []
>>>     for i in range(100):
>>>         f = executor.submit(lambda x: x + 1, i)
>>>         futures.append(f)
>>>     for f in concurrent.futures.as_completed(futures):
>>>         assert f.result() > 0
>>>     for i, f in enumerate(futures):
>>>         assert i + 1 == f.result()
submit(func, *args, **kw)[source]
shutdown()[source]
class kwcoco.util.util_futures.Executor(mode='thread', max_workers=0)[source]

Bases: object

Wrapper around a specific executor.

Abstracts Serial, Thread, and Process Executor via arguments.

Parameters:
  • mode (str, default=’thread’) – either thread, serial, or process
  • max_workers (int, default=0) – number of workers. If 0, serial is forced.
submit(func, *args, **kw)[source]
shutdown()[source]