flask_validator/constraints/financial.py
""" Financial Validators - ValidateCreditCard- ValidateCurrency- ValidateIBAN""" import reimport sysfrom moneyed import get_currency, CurrencyDoesNotExistfrom schwifty import IBAN, BICfrom flask_validator import Validator class ValidateCreditCard(Validator): """ Validate Credit Card Number Check if the new value is a valid credit card number. Allowed formats: - XXXXYYYYWWWWZZZ - "XXXXYYYYWWWWZZZ" - "XXXX YYYY WWWW ZZZ" - "XXXX-YYYY-WWWW-ZZZ" Args: field: SQLAlchemy column to validate allow_null: (bool) Allow null values throw_exception: (bool) Throw a ValidateError if the validation fails """ def check_value(self, value): n = re.sub(r'[\s-]', '', str(value)) r = [int(ch) for ch in str(n)][::-1]Missing whitespace after ','
Line too long (83 > 79 characters) return (sum(r[0::2]) + sum(sum(divmod(d*2,10)) for d in r[1::2])) % 10 == 0 class ValidateCurrency(Validator): """ Validate Currency Check if the new value is a valid Currency Validation provided by: https://github.com/limist/py-moneyed Args: field: SQLAlchemy column to validate allow_null: (bool) Allow null values throw_exception: (bool) Throw a ValidateError if the validation fails """ def check_value(self, value): value = str(value) try: get_currency(value.upper()) return True except CurrencyDoesNotExist: return False class ValidateIBAN(Validator): """ Validate IBAN Check if the new value is a valid IBAN Args: field: SQLAlchemy column to validate allow_null: (bool) Allow null values throw_exception: (bool) Throw a ValidateError if the validation fails """ def check_value(self, value): try: value = IBAN(value) return True except ValueError: return False Expected 2 blank lines, found 1class ValidateBIC(Validator): """ Validate BIC (Bank Identifier Code) Check if the new value is a valid Bank Identifier Code Args: field: SQLAlchemy column to validate allow_null: (bool) Allow null values throw_exception: (bool) Throw a ValidateError if the validation fails """ def check_value(self, value): try: value = BIC(str(value)) return True except ValueError:No newline at end of file return False