text: # Copyright 2018 Agile Geeks
  
  # Permission is hereby granted, free of charge, to any person obtaining a copy of this software
  # and associated documentation files (the "Software"), to deal in the Software without restriction,
  # including without limitation the rights to use, copy, modify, merge, publish, distribute,
  # sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
  # is furnished to do so, subject to the following conditions:
  
  # The above copyright notice and this permission notice shall be included in all copies or substantial
  # portions of the Software.
  
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
  # LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
  # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  
  from __future__ import (
      unicode_literals,
      print_function,
      division
  )
  import re
  from .generic import GenericValidator
  
  
  class Validator(GenericValidator):
      """
      For rules see /docs/VIES-VAT Validation Routines-v15.0.doc
      """
  
      def __init__(self):
          self.regexp = re.compile(r'^\d{8}$')
  
      def validate(self, vat_number):
          if super(Validator, self).validate(vat_number) is False:
              return False
  
          vat_number = str(vat_number)
          checksum = int(vat_number[6:])
          checkval = int(vat_number[:6]) % 89
          return checksum == checkval
  
  