Skip to main content

flask-wrappers

Decorators to facilitate flask enpoints implementation

import flask_wrappers as wrappers

Decorators

@catch

Decorator to catch exceptions and return a meaningful traceback

@wrappers.catch
def my_endpoint():
    raise ValueError()

json_request

Decorator to pass the decoded json body of the request as a dict to the endpoint method.

@wrappers.json_request
def my_endpoint(body):
    return body.get("property_1")

json_request_required:

Decorator to pass the decoded json body of the request as a dict to the endpoint method. Validate that the json body contains at least the required properties.

@wrappers.json_request_required("str:name", "str:job", "int:age", "float:cash")
def my_endpoint(body):
    return body["name"] # safe

querystring_request

Decorator to pass the querystring dict to the endpoint method.

@wrappers.querystring_request
def my_endpoint(querystring):
    return querystring.get("property_1")

headers_request

Decorator to pass the headers dict to the endpoint method.

@wrappers.headers_request
def my_endpoint(headers):
    return headers.get("property_1")

cookies_request

Decorator to pass the cookies dict to the endpoint method.

@wrappers.cookies_request
def my_endpoint(cookies):
    return cookies.get("property_1")

body_request

Decorator to pass the raw body to the endpoint method.

@wrappers.body_request
def my_endpoint(body):
    return body.get("property_1")

json_response

Decorator to return the appropriate json response object from anything decodable to json.

@wrappers.json_response
def my_endpoint(body):
    l = [10, 8, 5]
    return {'name':  'Test', 'grades': l}, 200

RouteFactory

Class to generate routes for http methods and paths from a flask app or blueprint.

from flask import Blueprint, Flask
import flask_wrappers as wrappers

# create a flask app
app = Flask(__name__)
# or create a blueprint
## app = Blueprint("blueprint_name", __name__)

# create a route_factory from the app
route_factory = wrappers.RouteFactory(app)

options(route, **options)

Create an endpoint for the route and method OPTIONS

@route_factory.options("/names")
def my_endpoint():
    # logic here

get(route, **options)

Create an endpoint for the route and method GET

@route_factory.get("/names")
@wrappers.json_response
def my_endpoint():
    return ["Anna", "Alice", "Shila"], 200

post(route, **options)

Create an endpoint for the route and method POST

@route_factory.post("/names")
@wrappers.json_request
@wrappers.json_response
def my_endpoint(body):
    # logic here 
    return "ok", 200

put(route, **options)

Create an endpoint for the route and method PUT

@route_factory.put("/names")
@wrappers.json_request
@wrappers.json_response
def my_endpoint(body):
    # logic here 
    return "ok", 200

delete(route, **options)

Create an endpoint for the route and method DELETE

@route_factory.post("/names/<name>")
@wrappers.json_response
def my_endpoint(name):
    # logic here 
    return "ok", 200

Release files for flask-wrappers 1.0.2

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

Source distribution (sdist)

Source distribution for flask-wrappers 1.0.2
File Size Uploaded
flask_wrappers-1.0.2.tar.gz 4.4 kB Details

Release files / flask_wrappers-1.0.2.tar.gz

Download URL flask_wrappers-1.0.2.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f57eb525e7b9418c24413fbbc961a71369f36c28961ac91e5d77051d8ef3c12a
BLAKE2b-256 checksum
How to use checksums
e06383533f1efd69ca2c2a1bb3fe74705770683098f752d7b48020ae261ab304
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

Release history Release notifications | RSS feed

This release

1.0.2 This release

1 release file

v1.0.1

1 release file

v1.0

1 release file

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