Source code for aiida_restapi.graphql.entry_points

# -*- coding: utf-8 -*-
"""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, )