Python data validation with web in-mind
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file covador-0.10.2.tar.gz
.
File metadata
- Download URL: covador-0.10.2.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31103723586e5e9edf171ae7b882567246efa66405a61f7b07bab571f7462458 |
|
MD5 | 743e5134c8f3644441bbf8dfc304bf20 |
|
BLAKE2b-256 | c942c25cfb7e2f053a97741f4bbc5c7d5503e97043fd36626f88e7817a14d471 |