@staticmethod
def query_plugin(pa, webapp, interface, name, *args, **kwargs):
    """Same as queryPlugins, but returns a single plugin instance as
        opposed an entire list. `name` will be used to identify that plugin.
        Positional and keyword arguments will be used to instantiate the plugin
        object.

        ``pa``,
            Platform object, whose base class is :class:`Pluggdapps`.

        ``webapp``,
            Web application object, plugin implementing
            :class:`pluggdapps.interfaces.IWebApp` interface. It is an
            optional argument, which must be passed ``None`` otherwise.

        ``interface``,
            :class:`pluggdapps.plugin.Interface` class or canonical form of
            interface-name.

        ``name``,
            plugin name in canonical format. For example, canonical name for 
            plugin class `ConfigSqlite3DB` defined under `pluggdapps` package
            will be, `pluggdapps.ConfigSqlite3DB`.

        ``args`` and ``kwargs``,
            Positional and key-word arguments used to instantiate the plugin.

        If ``settings`` key-word argument is present, it will be used to
        override default plugin settings. Return a single Plugin instance.
        """
    from pluggdapps.plugin import PluginMeta
    if isinstance(interface, str):
        intrf = interface.lower()
        interface = PluginMeta._interfmap.get(intrf, {}).get('cls', None)
    cls = PluginMeta._implementers.get(interface, {}).get(name.lower(), None)
    return cls(pa, webapp, *args, **kwargs) if cls else None
