File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -37,15 +37,23 @@ class EuropeanArticleNumber13(Barcode):
3737
3838 digits = 12
3939
40- def __init__ (self , ean , writer = None ):
40+ def __init__ (self , ean , writer = None , ** kwargs ):
41+ no_checksum = False
42+ if "no_checksum" in kwargs .keys ():
43+ no_checksum = kwargs ["no_checksum" ]
4144 ean = ean [:self .digits ]
4245 if not ean .isdigit ():
4346 raise IllegalCharacterError ('EAN code can only contain numbers.' )
4447 if len (ean ) != self .digits :
4548 raise NumberOfDigitsError ('EAN must have {0} digits, not '
4649 '{1}.' .format (self .digits , len (ean )))
4750 self .ean = ean
48- self .ean = '{0}{1}' .format (ean , self .calculate_checksum ())
51+ # If no checksum
52+ if no_checksum :
53+ # Add a thirteen char if given in parameter, otherwise pad with zero
54+ self .ean = '{0}{1}' .format (ean , ean [self .digits ] if len (ean ) > self .digits else 0 )
55+ else :
56+ self .ean = '{0}{1}' .format (ean , self .calculate_checksum ())
4957 self .writer = writer or Barcode .default_writer ()
5058
5159 def __unicode__ (self ):
You can’t perform that action at this time.
0 commit comments