Module pluginconf.depends
+Dependency validation and consistency checker for updates
+Classes
+-
+
+class DependencyValidation +(add={}, core=['st2', 'uikit', 'config', 'action']) +
+-
++
Now this definitely requires customization. Each plugin can carry +a list of (soft-) dependency names.
+# depends: config, appcore >= 2.0, bin:wkhtmltoimage, python < 3.5
+Here only in-application modules are honored, system references +ignored. Unknown plugin names are also skipped. A real install +helper might want to auto-tick them on, etc. This example is just +meant for probing downloadable plugins.
+The .valid() helper only asserts the api: string, or skips existing +modules, and if they're more recent. +While .depends() compares minimum versions against existing modules.
+In practice there's little need for full-blown dependency resolving +for application-level modules.
+Attributes
+-
+
api
:list
+- allowed api: identifiers for .valid() stream checks +
log
:logging
+- warning handler +
have
:dict
+- accumulated list of existing/virtual plugins +
Parameters
+-
+
add
:dict
+- name to pmd list of existing/core/virtual plugins (can define +versions or own dependencies) +
core
:list
+- name list of virtual plugins +
Class variables
+-
+
var api
+-
++
debugging
+ var log
+- + + +
Methods
+-
+
+def and_or(self, deps, have, r=True) +
+- + + +
+def cmp(self, d, have, absent=True) +
+- + + +
+def depends(self, plugin) +
+-
++
test depends: and breaks:
+ +def module_test(self, type, name) +
+- + + +
+def neither(self, deps, have) +
+- + + +
+def split(self, dep_str) +
+- + + +
+def valid(self, new_plugin) +
+-
++
check plugin info from repository stream (fields there $name, $file, $dist, api, id, depends, etc)
+
+