Skip to main content

No project description provided

Project description

Flaskerk

Build Status GitHub PyPI - Python Version

Provide OpenAPI document and validation for flask service.

Mainly built for Machine Learning Model services.

Features

  • JSON data(request&response) validation with pydantic
  • support HTTP exceptions (default&customized)
  • OpenAPI spec
  • Redoc UI
  • Swagger UI
  • support flask url path validation
  • support header validation
  • support cookie validation

Quick Start

install with pip install flaskerk (Python 3.6+)

from flask import Flask, request
from pydantic import BaseModel, Schema
from random import random
from flaskerk import Flaskerk, HTTPException

app = Flask(__name__)
api = Flaskerk(app)

class Query(BaseModel):
    text: str

class Response(BaseModel):
    label: int
    score: float = Schema(
        ...,
        gt=0,
        lt=1,
    )

class Data(BaseModel):
    uid: str
    limit: int
    vip: bool

e403 = HTTPException(code=403, msg='lucky for you')

@app.route('/api/predict/<string(length=2):source>/<string(length=2):target>', methods=['POST'])
@api.validate(query=Query, data=Data, resp=Response, x=[e403])
def predict(source, target):
    print(f'=> from {source} to {target}')  # path
    print(f'Data: {request.json_data}')  # Data
    print(f'Query: {request.query}')  # Query
    if random() < 0.5:
        e403.abort()
    return Response(label=int(10 * random()), score=random())

if __name__ == '__main__':
    app.run()

try it with http POST ':5000/api/predict/zh/en?text=hello' uid=0b01001001 limit=5 vip=true

Open the docs in http://127.0.0.1:5000/docs .

For more examples, check examples.

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

flaskerk-0.3.7.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

flaskerk-0.3.7-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file flaskerk-0.3.7.tar.gz.

File metadata

  • Download URL: flaskerk-0.3.7.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for flaskerk-0.3.7.tar.gz
Algorithm Hash digest
SHA256 a9cc83192dc036a883ce6520318b3de98f25b0f8ec84e1a942da04c4d81232c7
MD5 2584b1bb52580f52d8c20448fd45c5ca
BLAKE2b-256 4a16ce7f7225f2fad3a3dee3173e5bcb80af0c2dab8fb4fcafb4d1e39e6f6314

See more details on using hashes here.

File details

Details for the file flaskerk-0.3.7-py3-none-any.whl.

File metadata

  • Download URL: flaskerk-0.3.7-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for flaskerk-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8fdf0f8388d1fff1d8da5a7d53a3152c56f3cedc6b68f72b95a1846b46486fc8
MD5 dba435a15e1ac5c4cea6edcac665b68c
BLAKE2b-256 806e366bcf24fe11bec7fb3a5ed805313c7f3581e5da9cf9a80bdd6a43d332b2

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