Skip to content

A CLI to quickly launch data-driven and api-first businesses - using the modern python stack

License

Notifications You must be signed in to change notification settings

closedloop-technologies/quantready

Repository files navigation

quantready

A CLI to quickly launch data-driven and API-first businesses - using the modern python stack

✅✅✅ QuantReady Stack - Templates ✨

CLI for creating and configuring projects and using the quantready-* templates

build and publish python libraries and docker images

  • ✔️ poetry for dependency management
  • ✔️ pre-commit hooks for code formatting, linting, and testing
  • ✔️ unittest for testing
  • ✔️ gitleaks for secrets scanning
  • ✔️ github actions for CI/CD
  • ✔️ docker for building containers
  • ✔️ twine for publishing to pypi or private repositories
  • 🔲 gcloud for publishing to private repositories

quantready-api - A template to build and deploy fastapi applications

  • authentication - api key or oauth
  • authorization - RBAC via OSO
  • rate limiting - via redis
  • job-queues to support long-running tasks
  • workers
  • caching
  • github actions to deploy to gcloud
  • all other features of quantready

quantready-vendor - A template to sell and meter access to your APIs. Supports time-based and usage-based pricing

  • supports free and paid endpoints
  • billing per API call or per time-period
  • stripe-cli integration for managing products and billing
  • pricing-tables, account management and checkout
  • usage tracking api
  • all other features of quantready-api
  • [quantready-chat]
    • A template to build and deploy chatbots
    • Supports Websockets
    • Slack Integration
    • all other features of quantready-vendor

📦 Installation

There are two ways to install:

1. Install using quantready cli

It is best to install as a template using gh

pip install quantready

# Create a new repo
quantready create <your-repo> --template quantready/quantready-base

2. Install as a template

To install and configure yourself using gh

gh template copy quantready/quantready <your-repo>

pip install typer
python configure.py

💻 Development

Install dependencies

Requires poetry and python3.10 or higher

Install Poetry from https://github.com/python-poetry/install.python-poetry.org#python-poetry-installer

  curl -sSL https://install.python-poetry.org | python3 -
# Create a virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
poetry install

# Install pre-commit hooks
poetry run pre-commit install --install-hooks

# Create a .env file and modify it's contents
cp .env.example .env

🚀 Deployment

The best way is to use quantready cli

# Configure the project and cloud providers
quantready configure

This will create a .quantready file in the root of the project.

GitHub Actions: On creation of a new release

Configuration Set a GitHub Repository Secret PYPI_API_TOKEN equal to an API key generated from your PYPI account:

  1. Generate Token here: https://pypi.org/manage/account/token/
  2. Set it as a Repository Secret here: https://github.com///settings/secrets/actions

Create a new Release

  1. Goto https://github.com/closedloop-technologies/quantready/releases/new

or

  1. Goto https://github.com///releases
  2. Click "Draft a new Release"

This will trigger the GitHub Action to deploy your new release to PyPi

Push Docker image

# Build the image
docker build -t quantready/quantready .

# Run the image
docker run -it --rm quantready/quantready

# Push the image to docker hub
docker push quantready/quantready

# Push the image to gcr
docker tag quantready/quantready gcr.io/<your-project>/quantready

Publish to pypi

# Build the package
poetry build
poetry run twine upload dist/*

Get PYPI_API_TOKEN from https://pypi.org/manage/account/token/ And set it as a github secret https://github.com///settings/secrets/actions

Publish to private repository

# Build the package
poetry build
poetry run twine upload --repository-url https://pypi.yourdomain.com dist/*

📝 License

This project is licensed under the terms of the MIT license.

📚 Resources

About

A CLI to quickly launch data-driven and api-first businesses - using the modern python stack

Resources

License

Stars

Watchers

Forks

Packages

No packages published