This package folder provides a wrapper for loading external modules.
To make factory software more portable we want to virtualize the loading of modules, allowing particular module to be loaded only-if-exists, or providing a simplified implementation when the huge package is not available (for instance, numpy).
For most modules you just need to create a symlink with right module name and import it from cros.factory
. Examples:
from cros.factory.external import cv
Then use cv
as usual.
To check if a module was really loaded, check module.MODULE_READY
variable.
To debug module import issue (i.e., abort when import failed), set environment variable DEBUG_IMPORT
and run again.
If you need to use a module in import stage (i.e., inheriting some class inside the module), then you also have to provide a dummy implementation in _dummy
folder.