Orator Validator provides the best Model implement validation for Orator
Project description
This is a orator plugin that you can use to validate your model when the user is creating a new item or updating one on the database is easy to use and cleans the code a lot
Installation
You can install the plugin by using pip
$ pip install orator-validator
How to use it
Setup
this is an example of how to implement on your orator model
from orator import Model
from orator_validator import Validator
class User(Model, Validator):
__connection__ = 'local'
__fillable__ = [
'name', 'email', 'password', 'phone_number'
]
__guarded__ = ['id', 'password']
class UserValidation(object):
'''Here goes the validations that you need'''
User.observe(UserValidation())
Functions available
Validate saving function
the validate function accepts this params
require: boolean when True checks if they send the value
data_type: object Verifies if the value is specific data type
regex: string pass a regex to verified
date_str: string witch you want to check the format of the date example ‘%H:%M’
Example
def saving(self, user):
user.validate('name', require=True, data_type=str)
user.validate(
'email', regex="(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"
)
user.validate(
'password', regex="^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{6,}$"
)
user.errors()
Validate update function
the validate_update accepts this params
guarded: boolean if True value cannot be updated
data_tpe: needs to send specific data type
regex: regex to validate the value
date_str: string to validate a date format
function_callback: callback function if the value was send
args: arguments for the function callbacks
Example
def updating(self, user):
user.validate_update('email', guarded=True)
user.validate_update(
'password', function_callback=self.__validate_new_password, user=user
)
user.errors()
def __validate_new_password(self, user):
'''
Validate that the new password is diferent than the old one
'''
User.find(user.id)
if user.password == User.find(user.id).password:
raise Exception("Can't update password with old one")
Process function
the process function accepts
exist: function uses as a callback if the value was send
not_exist: function uses as a callback if the value was not send
args: arguments for the function callbacks
Example
def saving(self, user):
user.process('phone_number', exist=self.__process_phone)
user.errors()
def __process_phone(self, user):
'''
This function process the phone if the user send one
'''
if user.phone[0] != "+":
user.phone = "+1 {}".format(user.phone)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orator_validator-0.4.1.tar.gz.
File metadata
- Download URL: orator_validator-0.4.1.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a23b6832976f412919480c1222b8f40aec78b38decbb6458366802cbf4652cfb
|
|
| MD5 |
d307a5c662db52a468d55f7264ee64ff
|
|
| BLAKE2b-256 |
80049172ae408842989a16ed7ed04dfdfd09c53ea342383380a689dcf410a10d
|
File details
Details for the file orator_validator-0.4.1-py3-none-any.whl.
File metadata
- Download URL: orator_validator-0.4.1-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d09801f2d3f5552c60c8dbfc68d3bd4c01350906848aab0da55122cfd3b91f8
|
|
| MD5 |
50650d9fba84b70b1aaa5581188c0309
|
|
| BLAKE2b-256 |
556dbcd21475dae7314042e10ddcfff7e9e9aa9ec795224146957820518510e7
|