Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 1.82 KB

README.md

File metadata and controls

44 lines (34 loc) · 1.82 KB

This repository contains the Blue Python SDK source code, which allows clients to communicate with the Blue API from a Python client using gRPC. Documentation on the functionality of the API and documentation can be found here.

Installation

Our installation is available on PyPI so isntallation is simple. Simply run:

pip install alphausblue

to download the SDK and all its dependencies.

Usage

The basic flow for the SDK works like so. The grpc_client_connection authenticates the user with the Blue API via a Session, generating an access token that is then injected into the gRPC connection. A note here: the service name should always be included so that our system can direct requests to the proper endpoint.

from alphausblue.connection.conn import grpc_client_connection, BLUE
from alphausblue.iam.v1.iam_pb2_grpc import IamStub
from alphausblue.iam.v1.iam_pb2 import WhoAmIRequest
import asyncio

async def get_who_am_i():
    
    # First, retrieve the connection. We have to inform the API that
    # our service is for blue or we will be unable to find the server
    conn = grpc_client_connection(svc = BLUE)
    
    # Next, create a stub to send and receive requests
    stub = IamStub(conn)
    
    # Finally, send the request and return the response
    return await stub.WhoAmI(WhoAmIRequest())

As you can see, all requests are async-compatible. This functionality can also be acheived using the with-pattern:

from alphausblue.connection.conn import grpc_client_connection, BLUE
from alphausblue.iam.v1.iam_pb2_grpc import IamStub
from alphausblue.iam.v1.iam_pb2 import WhoAmIRequest
import asyncio

async def get_who_am_i():
    with conn = grpc_client_connection(svc = BLUE):
        stub = IamStub(conn)
        return await stub.WhoAmI(WhoAmIRequest())