Git Product home page Git Product logo

vutils-validator's Introduction

Coverage Status CodeQL

vutils-validator: Data Validation Utilities

This package provides a set of tools that helps with validation of input data.

Installation

To get the package on your system, type

$ pip install vutils-validator

How to Use

Please, read the following subsections to get more info about particular use case.

Basic Validations

Module vutils.validator.basic provides a set of functions for validation of simple input data forms, like email addresses:

  • verify_not_empty(value) fails if value is empty.
  • verify_matches(value, regex, message="") fails if value does not match regular expression regex. Since many regular expressions describe entities that have a name (identifier, number, email address, etc.) the default error message can be overridden by message argument.
  • verify_email(value) fails if value is not an email address (currently described by simple ^\S+@\S+\.[A-Za-z]+$ regular expression).

The value passed to all validation functions can be either str or a ValueHolder (from vutils.validator.value) object. A ValueHolder object can be used to store additional information about value, like its name and origin. The synopsis of ValueHolder's constructor is __init__(self, value, name="The value", location=None), where value, name, and location are value, its name, and the location of its origin, respectively. location is a Location (from vutils.validator.value) object that holds path, line, and column of the value/token origin. ValueHolder serves to provide more detail about value in error messages issued by validation functions by raising ValidationError (from vutils.validator.errors) when the validation fails, example:

from vutils.validator.basic import verify_email
from vutils.validator.errors import ValidationError
from vutils.validator.value import ValueHolder


def get_input(name):
    return ValueHolder(input(f"Enter {name}: "), name)


try:
    verify_email(get_input("email"))
except ValidationError as exc:
    print(exc)

On ill-formed input, the example prints email must be an email address!, since get_input names a value as email.

Schema Validation

Module vutils.validator.schema provides function validate(data, schema) for data validation against JSON schema schema. Function returns None in case of valid data or list of jsonschema.exceptions.{Validation,Schema}Error in case of invalid data or schema.

vutils-validator's People

Contributors

i386x avatar lgtm-migrator avatar

Watchers

 avatar

Forkers

lgtm-migrator

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.