44 lines
1,018 B
Python
44 lines
1,018 B
Python
from schwifty import IBAN, BIC
|
|
import datetime
|
|
from validator_collection import validators, errors
|
|
|
|
|
|
def valid_iban(field, value, error):
|
|
try:
|
|
IBAN(value)
|
|
return True
|
|
except ValueError:
|
|
error(field, 'not a valid IBAN')
|
|
|
|
|
|
def valid_bic(field, value, error):
|
|
try:
|
|
BIC(value)
|
|
return True
|
|
except ValueError:
|
|
error(field, 'not a valid BIC')
|
|
|
|
|
|
def iso_date(field, value, error):
|
|
try:
|
|
datetime.datetime.strptime(value, "%Y-%m-%d")
|
|
return True
|
|
except ValueError:
|
|
error(field, 'not a valid ISO 8601 date')
|
|
|
|
|
|
def valid_money_amount(field, value, error):
|
|
try:
|
|
# value is string, check formatting by parsing as float
|
|
float(value)
|
|
return True
|
|
except (ValueError, TypeError):
|
|
error(field, 'not a valid money value')
|
|
|
|
|
|
def valid_email(field, value, error):
|
|
try:
|
|
validators.email(value)
|
|
return True
|
|
except errors.InvalidEmailError:
|
|
error(field, 'not a valid email')
|