Socket
Socket
Sign inDemoInstall

aiida-graphql

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aiida-graphql

Strawberry-based GraphQL API Server for AiiDA


Maintainers
1

aiida-graphql

Build Status codecov PyPI

Strawberry-based GraphQL Server for AiiDA

Why GraphQL when there is already the REST API? See https://www.howtographql.com/basics/1-graphql-is-the-better-rest/ ... a lot of possible optimizations and fits the graph-based structure of the AiiDA DB a lot better than a REST API.

Requirements

For development: https://poetry.eustace.io/

Why Strawberry for GraphQL? It uses graphql-core v3 (while graphene is still stuck with v2), uses typings and dataclasses for both validation and schema generation. And it uses modern Python to write the schema, in comparison to the schema-first approach.

Why Python 3.7+? It's the future, and for Strawberry. In fact, were it not for a bug in uvloop this would be Python 3.8+ (for the walrus operator). And given the timeline these projects are running for, we'll probably see Python 3.9 until people effectively start using it.

Why Poetry? I wanted to get away from setuptools and used Poetry already in a different project and liked the virtualenv integration.

Usage

Development

Installing the dependencies:

git clone https://github.com/dev-zero/aiida-graphql.git
cd aiida-graphql

# for poetry installation use the official documentation
poetry install

To run the development server:

$ poetry run strawberry server aiida_graphql.schema

then visit http://localhost:8000/graphql with your browser.

Example query:

{
  computers {
    uuid
    name
    description
    schedulerType
    transportType
  }
}

Query Screenshot

Available fields

Documentation and schema are embedded in the development server.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc