Warning
This page was created from a pull request (#24).
aiida_restapi.graphql package¶
Submodules¶
aiida_restapi.graphql.basic module¶
Defines plugins for basic information about aiida etc.
aiida_restapi.graphql.comments module¶
Defines plugins for AiiDA comments.
-
class
aiida_restapi.graphql.comments.CommentQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.AiidaOrmObjectTypeQuery an AiiDA Comment
-
__module__= 'aiida_restapi.graphql.comments'¶
-
_meta= <ObjectTypeOptions name='CommentQuery'>¶
-
-
class
aiida_restapi.graphql.comments.CommentsQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsTypeQuery all AiiDA Comments.
-
__module__= 'aiida_restapi.graphql.comments'¶
-
_meta= <ObjectTypeOptions name='CommentsQuery'>¶
-
aiida_restapi.graphql.computers module¶
Defines plugins for AiiDA computers.
-
class
aiida_restapi.graphql.computers.ComputerQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.AiidaOrmObjectTypeQuery an AiiDA Computer
-
__module__= 'aiida_restapi.graphql.computers'¶
-
_meta= <ObjectTypeOptions name='ComputerQuery'>¶
-
nodes= <graphene.types.field.Field object>¶
-
-
class
aiida_restapi.graphql.computers.ComputersQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsTypeQuery all AiiDA Computers
-
__module__= 'aiida_restapi.graphql.computers'¶
-
_meta= <ObjectTypeOptions name='ComputersQuery'>¶
-
aiida_restapi.graphql.config module¶
Configuration for Graphql.
-
aiida_restapi.graphql.config.ENTITY_LIMIT= 100¶ The maximum query limit allowed for a list of entity rows.
aiida_restapi.graphql.entry_points module¶
Defines plugins for retrieving entry-point group and name lists.
-
class
aiida_restapi.graphql.entry_points.EntryPoints(*args, **kwargs)[source]¶ Bases:
graphene.types.objecttype.ObjectTypeReturn type from an entry point group and its list of registered names.
-
__module__= 'aiida_restapi.graphql.entry_points'¶
-
_meta= <ObjectTypeOptions name='EntryPoints'>¶
-
group= <graphene.types.scalars.String object>¶
-
names= <graphene.types.structures.List object>¶
-
aiida_restapi.graphql.groups module¶
Defines plugins for AiiDA groups.
-
class
aiida_restapi.graphql.groups.GroupCreate(*args, **kwargs)[source]¶ Bases:
graphene.types.mutation.MutationCreate an AiiDA group (or change an existing one).
-
class
Arguments[source]¶ Bases:
objectThe arguments to create a group.
-
__dict__= mappingproxy({'__module__': 'aiida_restapi.graphql.groups', '__doc__': 'The arguments to create a group.', 'label': <graphene.types.scalars.String object>, 'description': <graphene.types.scalars.String object>, 'type_string': <graphene.types.scalars.String object>, '__dict__': <attribute '__dict__' of 'Arguments' objects>, '__weakref__': <attribute '__weakref__' of 'Arguments' objects>, '__annotations__': {}})¶
-
__module__= 'aiida_restapi.graphql.groups'¶
-
__weakref__¶ list of weak references to the object (if defined)
-
description= <graphene.types.scalars.String object>¶
-
label= <graphene.types.scalars.String object>¶
-
type_string= <graphene.types.scalars.String object>¶
-
-
__module__= 'aiida_restapi.graphql.groups'¶
-
_meta= <MutationOptions name='GroupCreate'>¶
-
created= <graphene.types.scalars.Boolean object>¶
-
group= <graphene.types.field.Field object>¶
-
class
-
class
aiida_restapi.graphql.groups.GroupQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.AiidaOrmObjectTypeQuery an AiiDA Group
-
__module__= 'aiida_restapi.graphql.groups'¶
-
_meta= <ObjectTypeOptions name='GroupQuery'>¶
-
nodes= <graphene.types.field.Field object>¶
-
-
class
aiida_restapi.graphql.groups.GroupsQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsTypeQuery all AiiDA Groups
-
__module__= 'aiida_restapi.graphql.groups'¶
-
_meta= <ObjectTypeOptions name='GroupsQuery'>¶
-
aiida_restapi.graphql.logs module¶
Defines plugins for AiiDA process node logs.
-
class
aiida_restapi.graphql.logs.LogQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.AiidaOrmObjectTypeQuery an AiiDA Log
-
__module__= 'aiida_restapi.graphql.logs'¶
-
_meta= <ObjectTypeOptions name='LogQuery'>¶
-
-
class
aiida_restapi.graphql.logs.LogsQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsTypeQuery all AiiDA Logs.
-
__module__= 'aiida_restapi.graphql.logs'¶
-
_meta= <ObjectTypeOptions name='LogsQuery'>¶
-
aiida_restapi.graphql.main module¶
Main module that generates the full Graphql App.
-
class
aiida_restapi.graphql.main.AuthorizationMiddleware[source]¶ Bases:
objectGraphQL middleware, to handle authentication of requests.
-
__dict__= mappingproxy({'__module__': 'aiida_restapi.graphql.main', '__doc__': 'GraphQL middleware, to handle authentication of requests.', 'resolve': <function AuthorizationMiddleware.resolve>, '__dict__': <attribute '__dict__' of 'AuthorizationMiddleware' objects>, '__weakref__': <attribute '__weakref__' of 'AuthorizationMiddleware' objects>, '__annotations__': {}})¶
-
__module__= 'aiida_restapi.graphql.main'¶
-
__weakref__¶ list of weak references to the object (if defined)
-
-
class
aiida_restapi.graphql.main.GraphQLAppWithMiddleware(schema, executor=None, executor_class=None, graphiql=True, middleware=None)[source]¶ Bases:
starlette.graphql.GraphQLAppA GraphQLApp that exposes graphene middleware.
-
__init__(schema, executor=None, executor_class=None, graphiql=True, middleware=None)[source]¶ Initialise GraphQLApp.
-
__module__= 'aiida_restapi.graphql.main'¶
-
aiida_restapi.graphql.nodes module¶
Defines plugins for AiiDA nodes.
-
aiida_restapi.graphql.nodes.Link¶ alias of
aiida_restapi.graphql.nodes.LinkObjectType
-
class
aiida_restapi.graphql.nodes.LinkQuery(*args, **kwargs)[source]¶ Bases:
graphene.types.objecttype.ObjectTypeA link and its end node.
-
__module__= 'aiida_restapi.graphql.nodes'¶
-
_meta= <ObjectTypeOptions name='LinkQuery'>¶
-
link= <graphene.types.field.Field object>¶
-
node= <graphene.types.field.Field object>¶
-
-
class
aiida_restapi.graphql.nodes.LinksQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsTypeQuery all AiiDA Links.
-
__module__= 'aiida_restapi.graphql.nodes'¶
-
_meta= <ObjectTypeOptions name='LinksQuery'>¶
-
-
class
aiida_restapi.graphql.nodes.NodeQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.AiidaOrmObjectTypeQuery an AiiDA Node
-
__module__= 'aiida_restapi.graphql.nodes'¶
-
_meta= <ObjectTypeOptions name='NodeQuery'>¶
-
ancestors= <graphene.types.field.Field object>¶
-
attributes= <aiida_restapi.graphql.utils.JSON object>¶
-
comments= <graphene.types.field.Field object>¶
-
descendants= <graphene.types.field.Field object>¶
-
extras= <aiida_restapi.graphql.utils.JSON object>¶
-
incoming= <graphene.types.field.Field object>¶
-
logs= <graphene.types.field.Field object>¶
-
outgoing= <graphene.types.field.Field object>¶
-
-
class
aiida_restapi.graphql.nodes.NodesQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsTypeQuery all AiiDA Nodes
-
__module__= 'aiida_restapi.graphql.nodes'¶
-
_meta= <ObjectTypeOptions name='NodesQuery'>¶
-
aiida_restapi.graphql.orm_factories module¶
Classes and functions to auto-generate base ObjectTypes for aiida orm entities.
-
aiida_restapi.graphql.orm_factories.create_query_path(query, parent)[source]¶ Append parent entities to the
QueryBuilderpath.- Parameters
parent – data from the parent resolver
- Returns
key-word arguments for the “leaf” path
-
aiida_restapi.graphql.orm_factories.field_names_from_orm(cls)[source]¶ Extract the field names from an AIIDA ORM class.
-
aiida_restapi.graphql.orm_factories.fields_from_name(cls, exclude_fields=())[source]¶ Extract the fields from an AIIDA ORM class name and convert them to graphene objects.
-
aiida_restapi.graphql.orm_factories.fields_from_orm(cls, exclude_fields=())[source]¶ Extract the fields from an AIIDA ORM class and convert them to graphene objects.
-
aiida_restapi.graphql.orm_factories.get_projection(db_fields, info, is_link=False)[source]¶ Traverse the child AST to work out what fields we should project.
Any fields found that are not database fields, are assumed to be joins. If any joins are present, we always include “id”, so they can be linked.
We fallback to “**” (all fields) if the selection set cannot be identified.
-
aiida_restapi.graphql.orm_factories.multirow_cls_factory(entity_cls, orm_cls, name)[source]¶ Create a graphene class with standard fields/resolvers for querying multiple rows of the same AiiDA ORM entity.
aiida_restapi.graphql.plugins module¶
Module defining the graphql plugin mechanism.
-
class
aiida_restapi.graphql.plugins.MutationPlugin(name, mutation)[source]¶ Bases:
tupleDefine a top-level mutation, to plugin to the schema.
-
__annotations__= {'mutation': typing.Type[graphene.types.mutation.Mutation], 'name': <class 'str'>}¶
-
__getnewargs__()¶ Return self as a plain tuple. Used by copy and pickle.
-
__module__= 'aiida_restapi.graphql.plugins'¶
-
static
__new__(_cls, name, mutation)¶ Create new instance of MutationPlugin(name, mutation)
-
__repr__()¶ Return a nicely formatted representation string
-
__slots__= ()¶
-
_asdict()¶ Return a new dict which maps field names to their values.
-
_field_defaults= {}¶
-
_field_types= {'mutation': typing.Type[graphene.types.mutation.Mutation], 'name': <class 'str'>}¶
-
_fields= ('name', 'mutation')¶
-
_fields_defaults= {}¶
-
classmethod
_make(iterable)¶ Make a new MutationPlugin object from a sequence or iterable
-
_replace(**kwds)¶ Return a new MutationPlugin object replacing specified fields with new values
-
mutation: Type[graphene.types.mutation.Mutation]¶ Alias for field number 1
-
-
class
aiida_restapi.graphql.plugins.QueryPlugin(name, field, resolver)[source]¶ Bases:
tupleDefine a top-level query, to plugin to the schema.
-
__annotations__= {'field': <ObjectType meta=None>, 'name': <class 'str'>, 'resolver': typing.Callable[..., typing.Any]}¶
-
__getnewargs__()¶ Return self as a plain tuple. Used by copy and pickle.
-
__module__= 'aiida_restapi.graphql.plugins'¶
-
static
__new__(_cls, name, field, resolver)¶ Create new instance of QueryPlugin(name, field, resolver)
-
__repr__()¶ Return a nicely formatted representation string
-
__slots__= ()¶
-
_asdict()¶ Return a new dict which maps field names to their values.
-
_field_defaults= {}¶
-
_field_types= {'field': <ObjectType meta=None>, 'name': <class 'str'>, 'resolver': typing.Callable[..., typing.Any]}¶
-
_fields= ('name', 'field', 'resolver')¶
-
_fields_defaults= {}¶
-
classmethod
_make(iterable)¶ Make a new QueryPlugin object from a sequence or iterable
-
_replace(**kwds)¶ Return a new QueryPlugin object replacing specified fields with new values
-
field: graphene.types.objecttype.ObjectType¶ Alias for field number 1
-
resolver: Callable[[…], Any]¶ Alias for field number 2
-
-
aiida_restapi.graphql.plugins.create_mutations(mutations, docstring='The root mutation')[source]¶ Generate mutations from a sequence of mutation plugins.
-
aiida_restapi.graphql.plugins.create_query(queries, docstring='The root query')[source]¶ Generate a query from a sequence of query plugins.
-
aiida_restapi.graphql.plugins.create_schema(queries=(), mutations=(), query_docstring='The root query', mutations_docstring='The root mutation', auto_camelcase=False, **kwargs)[source]¶ Generate a schema from a sequence of query plugins.
Note we set auto_camelcase False, since this keeps database field names the same.
aiida_restapi.graphql.sphinx_ext module¶
Sphinx extension for documenting the GraphQL schema.
aiida_restapi.graphql.users module¶
Defines plugins for AiiDA users.
-
class
aiida_restapi.graphql.users.UserQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.AiidaOrmObjectTypeQuery an AiiDA User
-
__module__= 'aiida_restapi.graphql.users'¶
-
_meta= <ObjectTypeOptions name='UserQuery'>¶
-
nodes= <graphene.types.field.Field object>¶
-
-
class
aiida_restapi.graphql.users.UsersQuery(*args, **kwargs)[source]¶ Bases:
aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsTypeQuery all AiiDA Users
-
__module__= 'aiida_restapi.graphql.users'¶
-
_meta= <ObjectTypeOptions name='UsersQuery'>¶
-
aiida_restapi.graphql.utils module¶
Utility functions for graphql.
-
class
aiida_restapi.graphql.utils.FilterString(*args, **kwargs)[source]¶ Bases:
graphene.types.scalars.StringA string adhering to the AiiDA filter syntax.
-
__module__= 'aiida_restapi.graphql.utils'¶
-
_meta= <ScalarOptions name='FilterString'>¶
-
-
class
aiida_restapi.graphql.utils.JSON(*args, **kwargs)[source]¶ Bases:
graphene.types.generic.GenericScalarSubclass of the GenericScalar scalar type represents a generic GraphQL scalar value that could be: String, Boolean, Int, Float, List or Object.
-
__module__= 'aiida_restapi.graphql.utils'¶
-
_meta= <ScalarOptions name='JSON'>¶
-
-
aiida_restapi.graphql.utils.selected_field_names_naive(selection_set)[source]¶ Get the list of field names that are selected at the current level. Does not include nested names.
Taken from: https://github.com/graphql-python/graphene/issues/57#issuecomment-774227086