Allows installation of additional packages at runtime (from within virtual environments).
Uses pip underneath the hood for installing the packages.
You can install the library with pip as follows:
pip install wai.lazypip
The following methods are available from module wai.lazypip:
check_module- checks whether the module is present and, if a list of packages has been provided, installs these and performs check again.require_module- likecheck_module, but instead of returning a boolean, will raise an Exception in case the module is not present.check_funandrequire_funwork in a similar fashion, but checking for a function within the module.check_attrandrequire_attrcheck for an attribute within the module.check_classandrequire_classcheck for a class to be present within the module.
The list of packages to install is in the same format as you would normally pass
on to the pip command-line too, e.g.:
["matplotlib"]
["matploblib<3.3.0"]
It is also possible to provide additional arguments to pip (which get inserted after
the install argument).
-
checking whether we are in a virtual environment
from wai.lazypip import is_venv if is_venv(): print("yep, in a virtual environment") else: print("sorry, not a virtual environment")
-
checking for the
matplotlibmodule and installing matplotlib older than 3.3.0 if not yet present in the virtual environmentfrom wai.lazypip import check_module m = "matplotlib" p = [m + "<3.3.0"] print(m, check_module(m, p))
-
checking whether the
matplotlibmodule has methodvalidate_backendand installing matplotlib older than 3.3.0 if not yet present in the virtual environmentfrom wai.lazypip import check_fun m = "matplotlib" f = "validate_backend" p = [m + "<3.3.0"] print(m, f, check_fun(m, f, p))
-
checking whether the
matplotlibmodule has attributeURL_REGEXand installing matplotlib older than 3.3.0 if not yet present in the virtual environmentfrom wai.lazypip import check_attr m = "matplotlib" a = "URL_REGEX" p = [m + "<3.3.0"] print(m, a, check_attr(m, a, p))
-
checking whether the
matplotlibmodule has methodvalidate_backendand installing matplotlib older than 3.3.0 if not yet present in the virtual environmentfrom wai.lazypip import check_class m = "matplotlib" c = "MutableMapping" p = [m + "<3.3.0"] print(m, c, check_class(m, c, p))