deps Guide
Using deps
The ansible_collections.community.general.plugins.module_utils.deps module util simplifies
the importing of code as described in Importing and using shared code.
Please notice that deps is meant to be used specifically with Ansible modules, and not other types of plugins.
The same example from the Developer Guide would become:
from ansible_collections.community.general.plugins.module_utils import deps
with deps.declare("foo"):
    import foo
Then in main(), just after the argspec (or anywhere in the code, for that matter), do
deps.validate(module)  # assuming module is a valid AnsibleModule instance
By default, deps will rely on ansible.module_utils.basic.missing_required_lib to generate
a message about a failing import. That function accepts parameters reason and url, and
and so does deps`:
with deps.declare("foo", reason="foo is needed to properly bar", url="https://foo.bar.io"):
    import foo
If you would rather write a custom message instead of using missing_required_lib then do:
with deps.declare("foo", msg="Custom msg explaining why foo is needed"):
    import foo
deps allows for multiple dependencies to be declared:
with deps.declare("foo"):
    import foo
with deps.declare("bar"):
    import bar
with deps.declare("doe"):
    import doe
By default, deps.validate() will check on all the declared dependencies, but if so desired,
they can be validated selectively by doing:
deps.validate(module, "foo")       # only validates the "foo" dependency
deps.validate(module, "doe:bar")   # only validates the "doe" and "bar" dependencies
deps.validate(module, "-doe:bar")  # validates all dependencies except "doe" and "bar"
New in version 6.1.0.
