ProductDB back-end API
Create a virtual environment
python -m venv venvEnter the virtual environment
source venv/bin/activateUpgrade pip (optional)
pip install --upgrade pipClone the repository from GitHub
git clone git@github.com:simonsobs/acondbs.gitInstall from the clone in the editable mode.
pip install -e acondbs/[tests]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 instanceSet environmental variables
export FLASK_APP="acondbs:create_app('$PWD/instance/config.py')"
export FLASK_DEBUG=1flask init-dbAn 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).
(Optional) Load sample data to the dababase.
flask import-csv acondbs/tests/sample/csv/Run with the Flask built-in server for the development. (Deployment options for proudction are descriped in the Flask documentation.)
flask runThe 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=5000Now, you can send GraphQL requests to the server, for example, as follows.
curl -d "query={allMaps { edges { node { name mapper } } }}" localhost:5000/graphqlIf you access to the server with a web browser, it will show a graphical user interface GraphiQL: http://localhost:5000/graphql
Move to the repository
cd acondbsRun the unit tests
pytestRun the unit tests with coverage
pytest --covGenerate the coverage report
coverage htmlThe report can be found at coverage_html_report/index.html.