old_contents: # coding=utf-8
  
  from __future__ import unicode_literals
  from .. import BaseProvider
  
  
  class Provider(BaseProvider):
  
      def ean(self, length=13):
          code = [self.random_digit() for i in range(length - 1)]
  
          if length not in (8, 13):
              length = 13
  
          if length == 8:
              weights = [3,1,3,1,3,1,3]
          elif length == 13:
              weights = [1,3,1,3,1,3,1,3,1,3,1,3]
  
          weighted_sum = sum([x*y for x,y in zip(code,weights)])
          check_digit = (10 - weighted_sum % 10) % 10
          code.append(check_digit)
  
          return ''.join(str(x) for x in code)
  
      def ean8(self):
          return self.ean(8)
  
      def ean13(self):
          return self.ean(13)
  
  
new_contents: # coding=utf-8
  
  from __future__ import unicode_literals
  from .. import BaseProvider
  
  
  class Provider(BaseProvider):
  
      def ean(self, length=13):
          code = [self.random_digit() for i in range(length - 1)]
  
          if length not in (8, 13):
              raise AssertionError("length can only be 8 or 13")
  
          if length == 8:
              weights = [3,1,3,1,3,1,3]
          elif length == 13:
              weights = [1,3,1,3,1,3,1,3,1,3,1,3]
  
          weighted_sum = sum([x*y for x,y in zip(code,weights)])
          check_digit = (10 - weighted_sum % 10) % 10
          code.append(check_digit)
  
          return ''.join(str(x) for x in code)
  
      def ean8(self):
          return self.ean(8)
  
      def ean13(self):
          return self.ean(13)
  
  
subject: Update __init__.py