Skip to content

pepkit/pipestat_reader

Repository files navigation

pipestat_reader - web API generator for pipeline results

Code style: black

Pipestat reader is a Python package that is an extension of pipestat.

Pipestat can be used to collect pipeline results and store them in either a YAML-formatted file or in a database. If the results are stored in the database, then pipestat reader can be used to automatically generate a web API to query these results.

Usage

  1. Create a pipestat.PipestatManager object
import pipestat

psm = pipestat.PipestatManager(config="/path/to/config.yaml")
  1. Pass the objects to the pipestat_reader.PipestatReader constructor
import pipestat_reader

psr = pipestat_reader.PipestatReader(pipestat_managers=[psm])
  1. Generate a GraphQL schema
graphql_schema = psr.generate_graphql_schema()
  1. Use the schema in your web application, for example in FastAPI:
from fastapi import FastAPI
from starlette.graphql import GraphQLApp

app = FastAPI(title="test app")
app.mount("/graphql", GraphQLApp(schema=graphql_schema, graphiql=True))
  1. Retrieve the results reported with pipestat

By POST queries

curl -X POST \
-H "Content-Type: application/json" \
-d '{"query": "{table_name{edges{node{column_name}}}}"}' \
http://0.0.0.0:8000/graphql/

Using the interactive GraphiQL interface at http://0.0.0.0:8000/graphql/