Find, but don't load, all third party marshaller plugins.

    Third party marshaller plugins declare the entry point
    ``'hdf5storage.marshallers.plugins'`` with the name being the
    Marshaller API version and the target being a function that returns
    a ``tuple`` or ``list`` of all the marshallers provided by that
    plugin when given the hdf5storage version (``str``) as its only
    argument.

    .. versionadded:: 0.2

    Returns
    -------
    plugins : dict
        The marshaller obtaining entry points from third party
        plugins. The keys are the Marshaller API versions (``str``) and
        the values are ``dict`` of the entry points, with the module
        names as the keys (``str``) and the values being the entry
        points (``pkg_resources.EntryPoint``).

    See Also
    --------
    supported_marshaller_api_versions

def find_thirdparty_marshaller_plugins():
    """ Find, but don't load, all third party marshaller plugins.

    Third party marshaller plugins declare the entry point
    ``'hdf5storage.marshallers.plugins'`` with the name being the
    Marshaller API version and the target being a function that returns
    a ``tuple`` or ``list`` of all the marshallers provided by that
    plugin when given the hdf5storage version (``str``) as its only
    argument.

    .. versionadded:: 0.2

    Returns
    -------
    plugins : dict
        The marshaller obtaining entry points from third party
        plugins. The keys are the Marshaller API versions (``str``) and
        the values are ``dict`` of the entry points, with the module
        names as the keys (``str``) and the values being the entry
        points (``pkg_resources.EntryPoint``).

    See Also
    --------
    supported_marshaller_api_versions

    """
    all_plugins = tuple(pkg_resources.iter_entry_points(
        'hdf5storage.marshallers.plugins'))
    return {ver: {p.module_name: p
                  for p in all_plugins if p.name == ver}
            for ver in supported_marshaller_api_versions()}