The WoobBase class¶
- class WoobBase(modules_path=None, storage=None, scheduler=None)[source]
Bases:
object
Woob class to load modules from a specific path, without deal with woob remote repositories.
It provides methods to build backends or call methods on all loaded backends.
You should use this class when you want to build an application using Woob as a library, without using the standard modules nor the automatic module download and update machanism. When using WoobBase, you have to explicitely provide module paths and deal yourself with backend configuration.
- Parameters:
modules_path (
str
) – path to directory containing modules. (default:None
)storage (
woob.tools.storage.IStorage
) – provide a storage where backends can save data (default:None
)scheduler (
woob.core.scheduler.IScheduler
) – what scheduler to use; default iswoob.core.scheduler.Scheduler
(default:None
)
- deinit()[source]
Call this method when you stop using Woob, to properly unload all correctly.
- build_modules_loader()[source]
Build the module loader for the current application.
This can be overridden by children to avoid overriding an already existing modules loader.
- Return type:
- build_backend(module_name, params=None, storage=None, name=None, nofail=False, logger=None)[source]
Create a backend.
It does not load it into the Woob object, so you are responsible for deinitialization and calls.
- Parameters:
module_name (
str
) – name of moduleparams (
dict
) – parameters to give to backend (default:None
)storage (
woob.tools.storage.IStorage
) – storage to use (default:None
)name (
str
) – name of backend (default:None
)nofail (
bool
) – if true, this call can’t fail (default:False
)logger (
logging.Logger
) – logger to use (default:None
)
- Return type:
- exception LoadError(backend_name, message)[source]
Bases:
Exception
Raised when a backend is unabled to load.
- Parameters:
backend_name (
str
) – name of backend we can’t loadexception – exception object
- load_backend(module_name, name, params=None, storage=None, nofail=False)[source]
Load a backend.
- Parameters:
module_name (
str
:) – name of module to loadname (
str
) – name of instanceparams (
dict
) – parameters to give to backend (default:None
)storage (
woob.tools.storage.IStorage
) – storage to use (default:None
)nofail (
bool
) – if true, this call can’t fail (default:False
)
- Return type:
- unload_backends(names=None)[source]
Unload backends.
- get_backend(name, **kwargs)[source]
Get a backend from its name.
- iter_backends(caps=None, module=None)[source]
Iter on each backends.
Note: each backend is locked when it is returned.
- Parameters:
caps (tuple[
woob.capabilities.base.Capability
]) – optional list of capabilities to select backends (default:None
)module (
str
) – optional name of module (default:None
)
- Return type:
- do(function, *args, **kwargs)[source]
Do calls on loaded backends with specified arguments, in separated threads.
This function has two modes:
If function is a string, it calls the method with this name on each backends with the specified arguments;
If function is a callable, it calls it in a separated thread with the locked backend instance at first arguments, and *args and **kwargs.
- Parameters:
function (
str
) – backend’s method name, or a callable objectbackends (list[
str
]) – list of backends to iterate oncaps (list[
woob.capabilities.base.Capability
]) – iterate on backends which implement this caps
- Return type:
A
woob.core.bcall.BackendsCall
object (iterable)
- schedule(interval, function, *args)[source]
Schedule an event.
- repeat(interval, function, *args)[source]
Repeat a call to a function
- loop()[source]
Run the scheduler loop