Skip to main content

Bottle Suite

Bottle.py suite with CORS, SQL, REST, and JWT

Installation

python3 -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ bottle-suite --upgrade

Usage

CLI

Create Project

$ bottle-suite-create
Enter project name. <bottle-suite-project>:
Create a SQLite database? [y/N]:
Attach an SQL database? [y/N]:
Created project bottle-suite-project
    cd bottle-suite-project
    bottle-suite -d -r

Run

$ cd bottle-suite-project
$ bottle-suite -d -r
View dashboard @ http://localhost:8000/dashboard
Bottle v0.13-dev server starting up (using WSGIRefServer(dashboard=True))...
Listening on http://localhost:8000/
Hit Ctrl-C to quit.

Options

usage: bottle-suite [-h] [--port PORT] [--host HOST] [--jwt JWT_KEY] [--sqlite [PATH]] [--dbhost DBHOST] [--dbname DBNAME] [--dbuser DBUSER] [--dbpass DBPASS] [--cors CORS] [-r] [-d]

optional arguments:
  -h, --help       show this help message and exit
  --port PORT      Port to listen on
  --host HOST      Host to listen on
  --jwt JWT_KEY    JWT key
  --sqlite [PATH]  Path to SQLite database (default: bottle-suite/src/scripts/tmp.db)
  --dbhost DBHOST  SQL database host
  --dbname DBNAME  SQL database name
  --dbuser DBUSER  SQL database username
  --dbpass DBPASS  SQL database password
  --cors CORS      Enable CORS
  -r               Automatic reloading
  -d               Enable dashboard

Import

app.py

from bottle_suite import BottleSuite

app = BottleSuite()
app.run(reloader=True)

Resources

Resource Folder

Bottle Suite will attempt to automatically find Resources objects in a resource folder in the working directory and create endpoints for them. By default it will look for a folder named "resources". All ".py" files in the folder will be scanned for Resource objects.

Example Project Structure

├── src
│   ├── resources
│   │   ├── __init__.py
│   │   ├── resource_a.py
|   |   ├── resource_b.py
│   ├── app.py

Resource Objects

See Bottle REST Tutorial

resource_a.py

from bottle_suite import Resource

class ResourceA(Resource):

    def options(self):
        pass

    def get(self):
        return {}
    
    def post(self):
        pass
    
    def put(self):
        pass

    def patch(self):
        pass

    def delete(self):
        pass

Adding Endpoints for Resources

Bottle Suite has a Bottle REST object. Resources can be added by accessing the Bottle REST object and calling addResource().

app.py

from resources.resource_a import ResourceA
from bottle_suite import BottleSuite

app = BottleSuite()
app.rest.addResource(ResourceA, "/resource_a")
app.run(reloader=True)

Release files for bottle-suite 0.0.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bottle-suite 0.0.17
File Size Uploaded
bottle_suite-0.0.17.tar.gz 342.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bottle-suite 0.0.17
File Interpreter ABI Platform
bottle_suite-0.0.17-py3-none-any.whl Python 3 none any Details

Total release size: 694.0 kB

Release files / bottle_suite-0.0.17.tar.gz

Download URL bottle_suite-0.0.17.tar.gz
Size 342.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9645c4e2230399c1f2650fd5847ef5852ac8f79b1c8a6c5f79f3e6e51e1c524b
BLAKE2b-256 checksum
How to use checksums
b960d2779ff57d37e8ec1da93b462125edfa22cccdd885fbefe29a7dbe540132
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

Release files / bottle_suite-0.0.17-py3-none-any.whl

Download URL bottle_suite-0.0.17-py3-none-any.whl
Size 351.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
784b04888f7f7c384ceb018c7c6ff91455bd0bdfba8115ba50dcd0ee588abb73
BLAKE2b-256 checksum
How to use checksums
4498e4ca0cf02e63575690511ad12c7ae6402cbb304dabe0369337ae8dbc344f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.0.17 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page