Skip to main content

Fast-API Response catalog for pre-computed query

Project description

Akvo-ResponseGrouper

PyPI Build Status Repo Size Coverage Status Languages Issues Last Commit Documentation Status GitHub license

Fast-API Response catalog for pre-computed query

Install

$ pip install AkvoResponseGrouper

Schema Requirements

Please follow the required schema before using AkvoResponseGrouper.

Usage

  1. Database Migration

Database migration is the first required step for AkvoResponseGrouper to work. Use the akvo-responsegrouper CLI to migrate all data sources with JSON configuration files to generate Materialized Views that AkvoResponseGrouper can then use.

$ akvo-responsegrouper
usage: akvo-responsegrouper [-h] [-c CONFIG] [-d]

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        akvo-responsegrouper -c <json_file_config>
  -d, --drop            Drop the ar_category view table
  1. Router

To get the new endpoint provided by AkvoResponseGrouper, import the collection route to the App by:

from fastapi import FastAPI
from AkvoResponseGrouper.routes import collection_route

app = FastAPI(
    root_path="/",
    title="Akvo Response Grouper Demo",
)

app.include_router(collection_route)

@app.get("/", tags=["Dev"])
def read_main():
    return "OK"
  1. Query

Development

Run Dev Containers

The dev environment contains two containers: FastAPI backend and PostGres db, to run:

docker compose up -d

Before go to the next step, wait until the service started at http://localhost:5000.

Seed Necessary Data

In order to debug the data itself. We need to seed the example form and fake datapoints

docker compose exec backend python -m script.seeder_form
docker compose exec backend python -m script.seeder_datapoint <number_of_datapoint>

Migration

Dev environment uses contents that is available in Akvo-ResponseGrouper/src/AkvoResponseGrouper. To create the Category Materialized View via CLI in dev environment:

Upgrade:

python -m AkvoResponseGrouper.cli.migrate -c './sources/category.json'

After upgrade, you can see "AkvoResponseGrouper - Collection" is available in API docs, ussualy http://locahhost:5000/docs (Depends on the root path api).

Downgrade:

python -m AkvoResponseGrouper.cli.migrate -c './sources/category.json'

Teardown

docker compose down -v

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

AkvoResponseGrouper-1.2.0.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

AkvoResponseGrouper-1.2.0-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file AkvoResponseGrouper-1.2.0.tar.gz.

File metadata

  • Download URL: AkvoResponseGrouper-1.2.0.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for AkvoResponseGrouper-1.2.0.tar.gz
Algorithm Hash digest
SHA256 4614032372d5e23dc7c8ebab5697ab42aa6f92c7bd743e7454350e5a5ff15747
MD5 a42834d1d2f1987568d787896eb27da5
BLAKE2b-256 f98c4c9849746cc51c1cd1cc68ff26205dc6286e88a653785e749c3218e70813

See more details on using hashes here.

File details

Details for the file AkvoResponseGrouper-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for AkvoResponseGrouper-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45fc7459a604653ad2efa659a4e23fa41817bb270b3157535cae2b92119c51d9
MD5 3b9e67abfd93543cb59a4aab22cba1bf
BLAKE2b-256 c8e99f10364e8b22f2e9f5b2e9ca72c750b7809e1294944c7bf35bd01f41aa3d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page