def get_version_of_tools():
    """
    get versions of tools reactor is using (specified in constants.TOOLS_USED)

    :returns list of dicts, [{"name": "docker-py", "version": "1.2.3"}, ...]
    """
    response = []
    for tool in TOOLS_USED:
        pkg_name = tool["pkg_name"]
        try:
            tool_module = import_module(pkg_name)
        except ImportError as ex:
            logger.warning("can't import module %s: %r", pkg_name, ex)
        else:
            version = getattr(tool_module, "__version__", None)
            if version is None:
                logger.warning("tool %s doesn't have __version__", pkg_name)
            else:
                response.append({
                    "name": tool.get("display_name", pkg_name),
                    "version": version,
                    "path": tool_module.__file__,
                })
    return response
def get_version_of_tools ( ) : response = [ ] for tool in TOOLS_USED : pkg_name = tool [ "pkg_name" ] try : tool_module = import_module ( pkg_name ) except ImportError as ex : logger . warning ( "can't import module %s: %r" , pkg_name , ex ) else : version = getattr ( tool_module , "__version__" , None ) if version is None : logger . warning ( "tool %s doesn't have __version__" , pkg_name ) else : response . append ( { "name" : tool . get ( "display_name" , pkg_name ) , "version" : version , "path" : tool_module . __file__ , } ) return response
get versions of tools reactor is using (specified in constants.TOOLS_USED)

    :returns list of dicts, [{"name": "docker-py", "version": "1.2.3"}, ...]