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.basic.resolve_aiidaVersion(parent, info)[source]

Get AiiDA version.

aiida_restapi.graphql.basic.resolve_rowLimitMax(parent, info)[source]

Get row maximum number of rows.

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.AiidaOrmObjectType

Query 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>.AiidaOrmRowsType

Query all AiiDA Comments.

__module__ = 'aiida_restapi.graphql.comments'
_meta = <ObjectTypeOptions name='CommentsQuery'>
aiida_restapi.graphql.comments.resolve_Comment(parent, info, id=None, uuid=None)[source]

Resolution function.

aiida_restapi.graphql.comments.resolve_Comments(parent, info, filters=None)[source]

Resolution function.

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.AiidaOrmObjectType

Query an AiiDA Computer

__module__ = 'aiida_restapi.graphql.computers'
_meta = <ObjectTypeOptions name='ComputerQuery'>
nodes = <graphene.types.field.Field object>
static resolve_nodes(parent, info, filters=None)[source]

Resolution function.

class aiida_restapi.graphql.computers.ComputersQuery(*args, **kwargs)[source]

Bases: aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsType

Query all AiiDA Computers

__module__ = 'aiida_restapi.graphql.computers'
_meta = <ObjectTypeOptions name='ComputersQuery'>
aiida_restapi.graphql.computers.resolve_Computer(parent, info, id=None, uuid=None)[source]

Resolution function.

aiida_restapi.graphql.computers.resolve_Computers(parent, info, filters=None)[source]

Resolution function.

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.ObjectType

Return 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.entry_points.resolve_aiidaEntryPointGroups(parent, info)[source]

Resolution function.

aiida_restapi.graphql.entry_points.resolve_aiidaEntryPoints(parent, info, group)[source]

Resolution function.

aiida_restapi.graphql.groups module

Defines plugins for AiiDA groups.

class aiida_restapi.graphql.groups.GroupCreate(*args, **kwargs)[source]

Bases: graphene.types.mutation.Mutation

Create an AiiDA group (or change an existing one).

class Arguments[source]

Bases: object

The 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>
static mutate(root, info, label, description='', type_string=None)[source]

Create the group and return the requested fields.

class aiida_restapi.graphql.groups.GroupQuery(*args, **kwargs)[source]

Bases: aiida_restapi.graphql.orm_factories.AiidaOrmObjectType

Query an AiiDA Group

__module__ = 'aiida_restapi.graphql.groups'
_meta = <ObjectTypeOptions name='GroupQuery'>
nodes = <graphene.types.field.Field object>
static resolve_nodes(parent, info)[source]

Resolution function.

class aiida_restapi.graphql.groups.GroupsQuery(*args, **kwargs)[source]

Bases: aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsType

Query all AiiDA Groups

__module__ = 'aiida_restapi.graphql.groups'
_meta = <ObjectTypeOptions name='GroupsQuery'>
aiida_restapi.graphql.groups.resolve_Group(parent, info, id=None, uuid=None)[source]

Resolution function.

aiida_restapi.graphql.groups.resolve_Groups(parent, info, filters=None)[source]

Resolution function.

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.AiidaOrmObjectType

Query 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>.AiidaOrmRowsType

Query all AiiDA Logs.

__module__ = 'aiida_restapi.graphql.logs'
_meta = <ObjectTypeOptions name='LogsQuery'>
aiida_restapi.graphql.logs.resolve_Log(parent, info, id=None, uuid=None)[source]

Resolution function.

aiida_restapi.graphql.logs.resolve_Logs(parent, info, filters=None)[source]

Resolution function.

aiida_restapi.graphql.main module

Main module that generates the full Graphql App.

class aiida_restapi.graphql.main.AuthorizationMiddleware[source]

Bases: object

GraphQL 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)

resolve(next, root, info, **args)[source]

Run before each field query resolution or mutation

class aiida_restapi.graphql.main.GraphQLAppWithMiddleware(schema, executor=None, executor_class=None, graphiql=True, middleware=None)[source]

Bases: starlette.graphql.GraphQLApp

A GraphQLApp that exposes graphene middleware.

__init__(schema, executor=None, executor_class=None, graphiql=True, middleware=None)[source]

Initialise GraphQLApp.

__module__ = 'aiida_restapi.graphql.main'
async execute(query, variables=None, context=None, operation_name=None)[source]

Execute a query.

aiida_restapi.graphql.nodes module

Defines plugins for AiiDA nodes.

alias of aiida_restapi.graphql.nodes.LinkObjectType

class aiida_restapi.graphql.nodes.LinkQuery(*args, **kwargs)[source]

Bases: graphene.types.objecttype.ObjectType

A link and its end node.

__module__ = 'aiida_restapi.graphql.nodes'
_meta = <ObjectTypeOptions name='LinkQuery'>
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>.AiidaOrmRowsType

Query 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.AiidaOrmObjectType

Query 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>
static resolve_ancestors(parent, info, filters=None)[source]

Resolution function.

static resolve_attributes(parent, info, filter=None)[source]

Resolution function.

static resolve_comments(parent, info)[source]

Resolution function.

static resolve_descendants(parent, info, filters=None)[source]

Resolution function.

static resolve_extras(parent, info, filter=None)[source]

Resolution function.

static resolve_incoming(parent, info, filters=None)[source]

Resolution function.

static resolve_logs(parent, info)[source]

Resolution function.

static resolve_outgoing(parent, info, filters=None)[source]

Resolution function.

class aiida_restapi.graphql.nodes.NodesQuery(*args, **kwargs)[source]

Bases: aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsType

Query all AiiDA Nodes

__module__ = 'aiida_restapi.graphql.nodes'
_meta = <ObjectTypeOptions name='NodesQuery'>
aiida_restapi.graphql.nodes.resolve_Node(parent, info, id=None, uuid=None)[source]

Resolution function.

aiida_restapi.graphql.nodes.resolve_Nodes(parent, info, filters=None)[source]

Resolution function.

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 QueryBuilder path.

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.orm_factories.resolve_entity(orm_cls, info, id=None, uuid=None, uuid_name='uuid')[source]

Query for a single entity, and project only the fields requested.

Parameters

uuid_name – This is used for User, where we set it to “email”

aiida_restapi.graphql.orm_factories.single_cls_factory(orm_cls, exclude_fields=())[source]

Create a graphene class with standard fields/resolvers for querying a single AiiDA ORM entity.

aiida_restapi.graphql.plugins module

Module defining the graphql plugin mechanism.

class aiida_restapi.graphql.plugins.MutationPlugin(name, mutation)[source]

Bases: tuple

Define 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

name: str

Alias for field number 0

class aiida_restapi.graphql.plugins.QueryPlugin(name, field, resolver)[source]

Bases: tuple

Define 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

name: str

Alias for field number 0

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.sphinx_ext.setup(app)[source]

Setup the sphinx extension.

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.AiidaOrmObjectType

Query an AiiDA User

__module__ = 'aiida_restapi.graphql.users'
_meta = <ObjectTypeOptions name='UserQuery'>
nodes = <graphene.types.field.Field object>
static resolve_nodes(parent, info, filters=None)[source]

Resolution function.

class aiida_restapi.graphql.users.UsersQuery(*args, **kwargs)[source]

Bases: aiida_restapi.graphql.orm_factories.multirow_cls_factory.<locals>.AiidaOrmRowsType

Query all AiiDA Users

__module__ = 'aiida_restapi.graphql.users'
_meta = <ObjectTypeOptions name='UsersQuery'>
aiida_restapi.graphql.users.resolve_User(parent, info, id=None, email=None)[source]

Resolution function.

aiida_restapi.graphql.users.resolve_Users(parent, info, filters=None)[source]

Resolution function.

aiida_restapi.graphql.utils module

Utility functions for graphql.

class aiida_restapi.graphql.utils.FilterString(*args, **kwargs)[source]

Bases: graphene.types.scalars.String

A 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.GenericScalar

Subclass 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

Module contents