Skip to main content

No project description provided

Project description

Falibrary

GitHub PyPI - Python Version

Falcon add-on for API specification and validation.

Provide OpenAPI document and validation for flask service.

Mainly built for Machine Learning Model services.

If you're using Flask, check my another Python library Flaskerk.

Quick Start

install with pip install falibrary (Python 3.6+)

import falcon
from wsgiref import simple_server
from pydantic import BaseModel, Schema
from random import random

from falibrary import Falibrary

app = falcon.API()
api = Falibrary(
    app,
    title='Demo Service',
    version='0.1.2',
)

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

class Classification():
    @api.validate(query=Query, data=Data, resp=Response, x=[falcon.HTTP_403])
    def on_post(self, req, resp, source, target):
        print(f'{source} => {target}')
        print(req.context.query)
        print(req.context.data)
        if random() < 0.5:
            raise falcon.HTTPForbidden("Bad luck. You're fobidden.")
        return Response(label=int(10 * random()), score=random())

app.add_route('/api/{source}/{target}', Classification())

if __name__ == '__main__':
    httpd = simple_server.make_server('localhost', 8000, app)
    httpd.serve_forever()

Try it with http POST ':8000/api/zh/en?text=hello' uid=0b01001001 limit=5 vip=true.

Open the docs in http://127.0.0.1:8000/apidoc .

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

falibrary-0.1.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

falibrary-0.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file falibrary-0.1.0.tar.gz.

File metadata

  • Download URL: falibrary-0.1.0.tar.gz
  • Upload date:
  • Size: 5.6 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 falibrary-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1a8939af8face100808d5f230951bb9d1b2e8f0a15bac91c1a02b3fafbd11fc8
MD5 75ce7aa881ff063bfe398872cff954a6
BLAKE2b-256 ef9d68ef664beb9f392bde97deaf889c81e50e954dfc34ba1d1413b17de0d894

See more details on using hashes here.

File details

Details for the file falibrary-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: falibrary-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 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 falibrary-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8052001dc91e23eb3fcd317307810cdff6dba62b44268757d68edade40feed95
MD5 6a56031793477935b66c3bc829547e3a
BLAKE2b-256 d6428b10d817bc9b013acbaaa97769148c6b7cb677b0b3d0a190a1c4851d83dd

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