def list_pkgs(versions_as_list=False, **kwargs):
    '''
    List the packages currently installed as a dict::

        {'<package_name>': '<version>'}

    CLI Example:

    .. code-block:: bash

        salt '*' pkg.list_pkgs
    '''
    versions_as_list = salt.utils.data.is_true(versions_as_list)
    # not yet implemented or not applicable
    if any([salt.utils.data.is_true(kwargs.get(x))
            for x in ('removed', 'purge_desired')]):
        return {}

    if 'pkg.list_pkgs' in __context__:
        if versions_as_list:
            return __context__['pkg.list_pkgs']
        else:
            ret = copy.deepcopy(__context__['pkg.list_pkgs'])
            __salt__['pkg_resource.stringify'](ret)
            return ret

    ret = {}
    cmd = 'pkg_info -q -a'
    out = __salt__['cmd.run_stdout'](cmd, output_loglevel='trace')
    for line in out.splitlines():
        try:
            pkgname, pkgver, flavor = __PKG_RE.match(line).groups()
        except AttributeError:
            continue
        pkgname += '--{0}'.format(flavor) if flavor else ''
        __salt__['pkg_resource.add_pkg'](ret, pkgname, pkgver)

    __salt__['pkg_resource.sort_pkglist'](ret)
    __context__['pkg.list_pkgs'] = copy.deepcopy(ret)
    if not versions_as_list:
        __salt__['pkg_resource.stringify'](ret)
    return ret
def list_pkgs ( versions_as_list = False , ** kwargs ) : versions_as_list = salt . utils . data . is_true ( versions_as_list ) if any ( [ salt . utils . data . is_true ( kwargs . get ( x ) ) for x in ( 'removed' , 'purge_desired' ) ] ) : return { } if 'pkg.list_pkgs' in __context__ : if versions_as_list : return __context__ [ 'pkg.list_pkgs' ] else : ret = copy . deepcopy ( __context__ [ 'pkg.list_pkgs' ] ) __salt__ [ 'pkg_resource.stringify' ] ( ret ) return ret ret = { } cmd = 'pkg_info -q -a' out = __salt__ [ 'cmd.run_stdout' ] ( cmd , output_loglevel = 'trace' ) for line in out . splitlines ( ) : try : pkgname , pkgver , flavor = __PKG_RE . match ( line ) . groups ( ) except AttributeError : continue pkgname += '--{0}' . format ( flavor ) if flavor else '' __salt__ [ 'pkg_resource.add_pkg' ] ( ret , pkgname , pkgver ) __salt__ [ 'pkg_resource.sort_pkglist' ] ( ret ) __context__ [ 'pkg.list_pkgs' ] = copy . deepcopy ( ret ) if not versions_as_list : __salt__ [ 'pkg_resource.stringify' ] ( ret ) return ret
List the packages currently installed as a dict::

        {'<package_name>': '<version>'}

    CLI Example:

    .. code-block:: bash

        salt '*' pkg.list_pkgs