Source code for aiida_restapi.graphql.entry_points

"""Defines plugins for retrieving entry-point group and name lists."""

# pylint: disable=too-few-public-methods,unused-argument
from typing import Any, Dict, List

import graphene as gr
from aiida.plugins.entry_point import (
    ENTRY_POINT_GROUP_TO_MODULE_PATH_MAP,
    get_entry_point_names,
)

from .plugins import QueryPlugin


[docs] class EntryPoints(gr.ObjectType): """Return type from an entry point group and its list of registered names.""" group = gr.String() names = gr.List(gr.String)
[docs] def resolve_aiidaEntryPointGroups(parent: Any, info: gr.ResolveInfo) -> List[str]: """Resolution function.""" return list(ENTRY_POINT_GROUP_TO_MODULE_PATH_MAP.keys())
[docs] def resolve_aiidaEntryPoints(parent: Any, info: gr.ResolveInfo, group: str) -> Dict[str, Any]: """Resolution function.""" return {'group': group, 'names': get_entry_point_names(group)}
aiidaEntryPointGroupsPlugin = QueryPlugin( 'aiidaEntryPointGroups', gr.List(gr.String, description='List of the entrypoint group names'), resolve_aiidaEntryPointGroups, ) aiidaEntryPointsPlugin = QueryPlugin( 'aiidaEntryPoints', gr.Field( EntryPoints, description='List of the entrypoint names in a group', group=gr.String(required=True), ), resolve_aiidaEntryPoints, )