def available_packages(*args, **kwargs):
<EOL>try:<EOL><INDENT>plugin_packages_info_json = ch.conda_exec('<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', verbose=False)<EOL>return json.loads(plugin_packages_info_json)<EOL><DEDENT>except RuntimeError as exception:<EOL><INDENT>if '<STR_LIT>' in str(exception):<EOL><INDENT>logger.warning('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>logger.warning('<STR_LIT>',<EOL>exc_info=True)<EOL><DEDENT><DEDENT>except Exception as exception:<EOL><INDENT>logger.warning('<STR_LIT>',<EOL>exc_info=True)<EOL><DEDENT>return {}<EOL>
Query available plugin packages based on specified Conda channels.

Parameters
----------
*args
    Extra arguments to pass to Conda ``search`` command.

Returns
-------
dict
    .. versionchanged:: 0.24
        All Conda packages beginning with ``microdrop.`` prefix from all
        configured channels.

    Each *key* corresponds to a package name.

    Each *value* corresponds to a ``list`` of dictionaries, each
    corresponding to an available version of the respective package.

    For example:

        {
          "microdrop.dmf-device-ui-plugin": [
            ...
            {
              ...
              "build_number": 0,
              "channel": "microdrop-plugins",
              "installed": true,
              "license": "BSD",
              "name": "microdrop.dmf-device-ui-plugin",
              "size": 62973,
              "version": "2.1.post2",
              ...
            },
            ...],
            ...
        }