Skip to main content

A GraphQL server for product DB

Project description

PyPI version Test Status codecov

Acondbs

A GraphQL server for product DB

How to check out and run (for developers)

Prepare environment

Create a virtual environment

python -m venv venv

Enter the virtual environment

source venv/bin/activate

Upgrade pip (optional)

pip install --upgrade pip

Check out

Clone the repository from GitHub

git clone git@github.com:simonsobs/acondbs.git

Install from the clone in the editable mode.

pip install -e acondbs/[tests]

Configure

Create an instance folder of Flask, where the config file and the SQLite DB file are stored. Check out an example instance folder from GitHub

git clone git@github.com:TaiSakuma/acondbs-instance-example.git instance

Set environmental variables

export FLASK_APP="acondbs:create_app('$PWD/instance/config.py')"
export FLASK_DEBUG=1

Initialize database

flask init-db

An SQLite DB file has been created in the instance folder (instance/product.sqlite3). Tables were defined (The tables were empty. Only fields were defined. No data were inserted in the tables).

Load sample data to DB (optional)

(Optional) Load sample data to the dababase.

flask import-csv acondbs/tests/sample/csv/

Run

Run with the Flask built-in server for the development. (Deployment options for proudction are descriped in the Flask documentation.)

flask run

The above command starts the built-in server that only allows accress from localhost. It starts the server at the default TCP port, usually 5000.

To allow the access from outside, use --host=0.0.0.0 option. The TCP port can be specified by --port option. For example:

flask run --host=0.0.0.0 --port=5000

Access to the server with cURL

Now, you can send GraphQL requests to the server, for example, as follows.

curl -d "query={allMaps { edges { node { name mapper } } }}" localhost:5000/graphql

Access to the server with a web browser

If you access to the server with a web browser, it will show a graphical user interface GraphiQL: http://localhost:5000/graphql

Unit test

Move to the repository

cd acondbs

Run the unit tests

pytest

Run the unit tests with coverage

pytest --cov

Generate the coverage report

coverage html

The report can be found at coverage_html_report/index.html.

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

acondbs-0.4.4.tar.gz (139.1 kB view details)

Uploaded Source

Built Distribution

acondbs-0.4.4-py3-none-any.whl (256.3 kB view details)

Uploaded Python 3

File details

Details for the file acondbs-0.4.4.tar.gz.

File metadata

  • Download URL: acondbs-0.4.4.tar.gz
  • Upload date:
  • Size: 139.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for acondbs-0.4.4.tar.gz
Algorithm Hash digest
SHA256 250181f7774b7523d22954f4c3fd4d2ce205c5672204e03c6bfa578d5932f66b
MD5 04aae08d4f92191b2e1836eaac289097
BLAKE2b-256 9e11d784dacfb82a3fb76ba1101c42a8a438d6f6608949f8a0dc56bcca8f47c2

See more details on using hashes here.

File details

Details for the file acondbs-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: acondbs-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 256.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for acondbs-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ba5e8dda0a53eaf7dc724224cba1abff7cbf50b5cc54b0bddb1ce87b589f27b8
MD5 6b812a7c7a202f8b4eab7a2d8ac384cf
BLAKE2b-256 b2872866e56691d5fa306026d02d9cb7ee3d38b68858003b2c85c482ac26cfaf

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