Skip to main content

aiovalidator

https://travis-ci.org/vir-mir/aiovalidator.svg?branch=master https://codecov.io/gh/vir-mir/aiovalidator/branch/master/graph/badge.svg

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))

Metadata

Release files for aiovalidator 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiovalidator 0.0.2
File Size Uploaded
aiovalidator-0.0.2.tar.gz 4.9 kB Details

Release files / aiovalidator-0.0.2.tar.gz

Download URL aiovalidator-0.0.2.tar.gz
Size 4.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6a5819437382e3aae7cd315ae45e37737a08046c818c6ac780e87a55c18cda8a
BLAKE2b-256 checksum
How to use checksums
0a6f74071f15da8d2d2a6e2e4c2a411821f953aed86c73cadeec1483ddde3d18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.2 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page