7 def ean_checksum(eancode):
8 """returns the checksum of an ean string of length 13, returns -1 if the string has the wrong length"""
15 reversevalue = eanvalue[::-1]
16 finalean=reversevalue[1:]
18 for i in range(len(finalean)):
20 oddsum += int(finalean[i])
22 evensum += int(finalean[i])
23 total=(oddsum * 3) + evensum
25 check = int(10 - math.ceil(total % 10.0)) %10
28 def check_ean(eancode):
29 """returns True if eancode is a valid ean13 string, or null"""
32 if len(eancode) <> 13:
38 return ean_checksum(eancode) == int(eancode[-1])
40 def sanitize_ean13(ean13):
41 """Creates and returns a valid ean13 from an invalid one"""
43 return "0000000000000"
44 ean13 = re.sub("[A-Za-z]","0",ean13);
45 ean13 = re.sub("[^0-9]","",ean13);
48 ean13 = ean13 + '0' * (13-len(ean13))
49 return ean13[:-1] + str(ean_checksum(ean13))
52 for arg in sys.argv[1:]:
53 print sanitize_ean13(arg)
55 if __name__ == '__main__':