pyvalidate

Python method's parameter validation library, as a pythonic decorator
Download

pyvalidate Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Freeware
  • Price:
  • FREE
  • Publisher Name:
  • Vahid Mardani
  • Publisher web site:
  • http://pylover.dobisel.com/

pyvalidate Tags


pyvalidate Description

pyvalidate is a Python module that validates input parameters of a callable using this arguments:param: arg_types: list of types, Required argument's types & counts in orderparam: deny_match list of string ,regex pattern, if any argument matches with the pattern, exception raisesparam: requires: list of fields to check for mandatoryparam: deny: string ,regex pattern, if any parameter matches with the pattern, exception raisesparam: deny_except: string ,regex pattern for excluding fields from denyparam: types: dict of key:name and value:type to check for types, if mismatch it will be raises exceptionparam: values: dict of key:name and value:regex pattern to check the values, & fire exception if mismatchparam: ignore: string ,regex pattern of parameters to filterparam: defaults: dict of key:name and value:default_valueExceptions:raise: MandatoryException: if any param in requires does not providedraise: ArgumentException: if arguments are invalid , short or mismatch type.raise: DenialException: if found param in deny listraise: ParameterTypeException: if parameter types invalidraise: ParameterValueException: if values are not in correct formatExample:from pyvalidate import validate, ValidationException@validate(arg_types=, deny_match=, requires=, deny='query', deny_except='query2', types={'phone':str, 'address':str, 'age':int}, values={'phone':'^\d*$'}, ignore='age', defaults={'address':'nothing'})def add_person(serial, firstname, lastname, phone=None, address=None, age=None, **kw): print 'adding person "%s:%s %s:%s" with serial: %s:%s phone: %s:%s address: %s:%s age:%s:%s' % (firstname, type(firstname), lastname, type(lastname), serial, type(serial), phone, type(phone), address, type(address), age, type(age))def test(*args, **kwargs): try: add_person(*args, **kwargs) except ValidationException as ex: print ex.messagedef main(): test(12, "Vahid", "Mardani", phone="09122451075", address="Tehran") test("12", "Vahid", "Mardani", phone='+9122451075', address="Tehran") test("12", "Vahid", "Mardani", phone='1') test("12", "Vahid", "Mardani", phone='tiktik') test("12", "xxx", "Mardani", phone='') test("12", "", "Mardani",) test("12", "", "Mardani", phone='1', query='123') test("12", "", "Mardani", phone='1', query2='123') test("12", "", "Mardani", phone='1', age='123')if __name__ == '__main__': main()Product's homepage


pyvalidate Related Software