Skip to main content

Python3 Validation in another way

Project description

SmileValidation

smilevalidator

Python3 Validation in another way

I hurt enough for validating those form's elements. Time to bring a new technique type. It's gonna solve like this way:

Validator class

That's core class of the tool. It contains the validation element after added element into collect and it will valid the element by called isValid()

from Validator import Validator

# validition instance
v	= Validator()

## integer validation
# add element with  
v.addElement(
    elementName= 'computer-quantity'
    , elementValue= 2
    , rule= TypeSchema().getInteger(
			require= True
			, max= 5
			, min= 1
			, negative= False
		)
)

## start validating
# true if every element is correct
if v.isValid():
    print(f'Everything is fine')
else:
    print(f'Error: {v.getError()}')

Rule class

It is the collection of what we wanna validate to those element objects. What Rule will help validation class is, make it all reusable.

Example:

# sample
class Rule:

    def getQuantityOne(self) -> dict:
        """

        :return:
        """
        return TypeSchema().getInteger(
                require= True
                , max= 5
                , min= 1
                , negative= False
        )

getQualityOne will replace previous one.

# sample with two elements
from Validator import Validator
frin Rule import Rule

# validition instance
v	= Validator()

## integer validation
# add element with  
v.addElement(
    elementName= 'computer-quantity'
    , elementValue= 2
    , rule= Rule().getQuantityOne()
)

v.addElement(
    elementName= 'tv-quantity'
    , elementValue= 4
    , rule= Rule().getQuantityOne()
)

## start validating
# true if every element is correct
if v.isValid():
    print(f'Everything is fine')
else:
    print(f'Error: {v.getError()}')

Comparison

For reality form validation, it does not just need validation with the value, they need also the comparison such as confirm password form. So does it? It should build for this purpose via addMatchedElement method and addNotMatchedElement. Both will validation matched value and not matched value.

v.addMatchedElement(
    elementName1= 'm1'
    , elementValue1='hello'
    , elementName2='m2'
    , elementValue2='hello2'
)

v.addNotMatchedElement(
    elementName1= 'm2'
    , elementValue1='hello'
    , elementName2='m1'
    , elementValue2='hello2'
)

Then the isValid() method will execute these too.

Full example:

# sample with two elements
from Validator import Validator
frin Rule import Rule

# validition instance
v	= Validator()

## integer validation
# add element with  
v.addElement(
    elementName= 'computer-quantity'
    , elementValue= 2
    , rule= Rule().getQuantityOne()
)

v.addElement(
    elementName= 'tv-quantity'
    , elementValue= 4
    , rule= Rule().getQuantityOne()
)

v.addMatchedElement(
    elementName1= 'm1'
    , elementValue1='hello'
    , elementName2='m2'
    , elementValue2='hello2'
)

v.addNotMatchedElement(
    elementName1= 'm2'
    , elementValue1='hello'
    , elementName2='m1'
    , elementValue2='hello2'
)

## start validating
# true if every element is correct
if v.isValid():
    print(f'Everything is fine')
else:
    print(f'Error: {v.getError()}')

It is available on PyPi store via https://pypi.org/project/SmileValidation/
To Support my work, please donate me via Buy me a PizzaBuy me a Coffee

My unique slogan is:

a little developer in the big world \o/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SmileValidation-1.1.2.tar.gz (9.7 kB view hashes)

Uploaded Source

Built Distribution

SmileValidation-1.1.2-py3-none-any.whl (20.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page