datalad_next.utils.external_versions

datalad_next.utils.external_versions = <datalad.support.external_versions.ExternalVersions object>

Helper to figure out/use versions of the externals (modules, cmdline tools, etc).

To avoid collision between names of python modules and command line tools, prepend names for command line tools with cmd:.

It maintains a dictionary of distuil.version.LooseVersion`s to make comparisons easy. Note that even if version string conform the StrictVersion "standard", LooseVersion will be used. If version can't be deduced for the external, `UnknownVersion() is assigned. If external is not present (can't be imported, or custom check throws exception), None is returned without storing it, so later call will re-evaluate fully.