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.
- Create a
pipestat.PipestatManager
object
import pipestat
psm = pipestat.PipestatManager(config="/path/to/config.yaml")
- Pass the objects to the
pipestat_reader.PipestatReader
constructor
import pipestat_reader
psr = pipestat_reader.PipestatReader(pipestat_managers=[psm])
- Generate a GraphQL schema
graphql_schema = psr.generate_graphql_schema()
- 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))
- 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/