Skip to content

baverman/covador

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

131 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

covador

travis coverage pyver

Validation library for processing http endpoint arguments.

from flask import Flask

from covador import split, opt
from covador.flask import query_string

app = Flask(__name__)

@app.route('/')
@query_string(foo=opt(split(int), []))
def csv_argument(foo):
    return repr(foo)

# GET /?foo=1,2,3 -> [1, 2, 3]

if __name__ == '__main__':
    app.run()
  • Support for flask(0.x, 1.0.x, 1.1.x), django(1.x, 2.x), aiohttp(2.x, 3.x), tornado(3.x, 4.x, 5.x, 6.x) and sanic(0.x, 18.x, 19.x).
  • Simple creating of custom query_string/form/params/json_body/args wrappers.
  • Multi dict support via item multi param.
  • Multi dict keys support via item src param.
  • Simple interface for custom validators/processors it's just a callable.
  • Maps, typed Maps, Lists, Tuples, Enums.
  • Validation chains: opt(default=[]) | split(separator=' ') | List(int) | (lambda it: it[:10]) or more concise opt(split(int, separator=' '), []) | operator.itemgetter(slice(10)) — an optional argument of space separated integers and we need top 10 items from it and it is empty by default.
  • Literal schema: schema(foo=[{'boo': int}]), validates {'foo': [{'boo': 10}, {'boo': 20}]}.
  • Bytes/unicode aware.

About

Python data validation with web in-mind

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors