rest, restful validator aiohttp
Project description
Example
import asyncio
from aiohttp import web
from aiovalidator import (
validator_factory,
middleware_exception,
IntegerField
)
async def foo_validator(value):
await asyncio.sleep(1)
return value
def foo_default(value):
async def default():
return value
return default
class Hello(web.View):
class Field:
field1 = IntegerField()
field2 = IntegerField(required=False, methods={'GET'},
verbose_name='Field method get')
field3 = IntegerField(validator=foo_validator, )
field4 = IntegerField(default=foo_default)
@asyncio.coroutine
def get(self):
fields = self.request['fields']
print(fields)
return web.json_response()
app = web.Application(middlewares=[validator_factory(), middleware_exception])
app.router.add_get('/{user_id}/', Hello)
web.run_app(app, port=8000)
My fields example
import phonenumbers
from aiovalidator import StrField, abort
class PhoneField(StrField):
def get_value(self, value):
value = super().get_value(value)
try:
value = phonenumbers.parse(value, 'RU')
region = phonenumbers.region_code_for_number(value)
regions = phonenumbers.COUNTRY_CODE_TO_REGION_CODE[7]
if not phonenumbers.is_valid_number(value):
abort(status=400,
text='Field {} not format phone'.format(self.name))
if region not in regions:
abort(status=400,
text='Field {} not format phone'.format(self.name))
value = phonenumbers.format_number(
value, phonenumbers.PhoneNumberFormat.E164
)[1:]
return value
except phonenumbers.NumberParseException:
abort(status=400, text='Field {} not valid'.format(self.name))
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
aiovalidator-0.0.2.tar.gz
(4.9 kB
view details)
File details
Details for the file aiovalidator-0.0.2.tar.gz.
File metadata
- Download URL: aiovalidator-0.0.2.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a5819437382e3aae7cd315ae45e37737a08046c818c6ac780e87a55c18cda8a
|
|
| MD5 |
3a24c662764ae8d309db048a33cb9368
|
|
| BLAKE2b-256 |
0a6f74071f15da8d2d2a6e2e4c2a411821f953aed86c73cadeec1483ddde3d18
|