faker.providers.barcode¶
-
class
faker.providers.barcode.Provider(generator)¶ Bases:
faker.providers.BaseProvider-
ean(length=13)¶ Generate an EAN barcode of the specified
length.The value of
lengthcan only be8or13(default) which will create an EAN-8 or an EAN-13 barcode respectively.Examples: >>> Faker.seed(0) >>> for _ in range(5): ... fake.ean(length=13) ... '6604876475937' '8242194892418' '1578156593879' '7840801609759' '3513933287112'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.ean(length=8) ... '66048763' '47593824' '42194897' '24115780' '15659385'
-
ean13(leading_zero=None)¶ Generate an EAN-13 barcode.
If
leading_digitisTrue, the leftmost digit of the barcode will be set to0. IfFalse, the leftmost digit cannot be0. IfNone(default), the leftmost digit can be any digit.Note that an EAN-13 barcode that starts with a zero can be converted to UPC-A by dropping the leading zero.
This method uses
ean()under the hood with thelengthargument explicitly set to13.Examples: >>> Faker.seed(0) >>> for _ in range(5): ... fake.ean13() ... '6604876475937' '8242194892418' '1578156593879' '7840801609759' '3513933287112'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.ean13(leading_zero=False) ... '9604876475934' '6421948924113' '5815659387786' '4801609753511' '5332871158715'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.ean13(leading_zero=True) ... '0604876475933' '0242194892416' '0578156593870' '0840801609756' '0513933287115'
-
ean8()¶ Generate an EAN-8 barcode.
This method uses
ean()under the hood with thelengthargument explicitly set to8.Examples: >>> Faker.seed(0) >>> for _ in range(5): ... fake.ean8() ... '66048763' '47593824' '42194897' '24115780' '15659385'
-
upc_a(upc_ae_mode=False, base=None, number_system_digit=None)¶ Generate a 12-digit UPC-A barcode.
The value of
upc_ae_modecontrols how barcodes will be generated. IfFalse(default), barcodes are not guaranteed to have a UPC-E equivalent. In this mode, the method usesean13under the hood, and the values ofbaseandnumber_system_digitwill be ignored.If
upc_ae_modeisTrue, the resulting barcodes are guaranteed to have a UPC-E equivalent, and the values ofbaseandnumber_system_digitwill be used to control what is generated.Under this mode,
baseis expected to have a 6-digit string value. If any other value is supplied, a random 6-digit string will be used instead. As fornumber_system_digit, the expected value is a0or a1. If any other value is provided, this method will randomly choose from the two.Important
When
upc_ae_modeis enabled, you might encounter instances where different values ofbase(e.g.'120003'and'120004') produce the same UPC-A barcode. This is normal, and the reason lies within the whole conversion process. To learn more about this and whatbaseandnumber_system_digitactually represent, please refer toupc_e().Examples: >>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_a() ... '604876475933' '242194892416' '578156593870' '840801609756' '513933287115'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_a(upc_ae_mode=True, number_system_digit=0) ... '066048000075' '064700000593' '082421000098' '048100009240' '015781000057'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_a(upc_ae_mode=True, number_system_digit=1) ... '166048000072' '164700000590' '182421000095' '148100009247' '115781000054'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_a(upc_ae_mode=True, base='123456', number_system_digit=0) ... '012345000065' '012345000065' '012345000065' '012345000065' '012345000065'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_a(upc_ae_mode=True, base='120003', number_system_digit=0) ... '012000000003' '012000000003' '012000000003' '012000000003' '012000000003'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_a(upc_ae_mode=True, base='120004', number_system_digit=0) ... '012000000003' '012000000003' '012000000003' '012000000003' '012000000003'
-
upc_e(base=None, number_system_digit=None, safe_mode=True)¶ Generate an 8-digit UPC-E barcode.
UPC-E barcodes can be expressed in 6, 7, or 8-digit formats, but this method uses the 8 digit format, since it is trivial to convert to the other two formats. The first digit (starting from the left) is controlled by
number_system_digit, and it can only be a0or a1. The last digit is the check digit that is inherited from the UPC-E barcode’s UPC-A equivalent. The middle six digits are collectively referred to as thebase(for a lack of a better term).On that note, this method uses
baseandnumber_system_digitto first generate a UPC-A barcode for the check digit, and what happens next depends on the value ofsafe_mode. The argumentsafe_modeexists, because there are some UPC-E values that share the same UPC-A equivalent. For example, any UPC-E barcode of the formabc0000d,abc0003d, andabc0004dshare the same UPC-A valueabc00000000d, but that UPC-A value will only convert toabc0000dbecause of (a) how UPC-E is just a zero-suppressed version of UPC-A and (b) the rules around the conversion.If
safe_modeisTrue(default), this method performs another set of conversions to guarantee that the UPC-E barcodes generated can be converted to UPC-A, and that UPC-A barcode can be converted back to the original UPC-E barcode. Using the example above, even if the bases120003or120004are used, the resulting UPC-E barcode will always use the base120000.If
safe_modeisFalse, then thenumber_system_digit,base, and the computed check digit will just be concatenated together to produce the UPC-E barcode, and attempting to convert the barcode to UPC-A and back again to UPC-E will exhibit the behavior described above.Examples: >>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e() ... '16604872' '04759386' '04219484' '04115786' '15659385'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='123456') ... '11234562' '11234562' '01234565' '11234562' '11234562'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='123456', number_system_digit=0) ... '01234565' '01234565' '01234565' '01234565' '01234565'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='123456', number_system_digit=1) ... '11234562' '11234562' '11234562' '11234562' '11234562'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='120000', number_system_digit=0) ... '01200003' '01200003' '01200003' '01200003' '01200003'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='120003', number_system_digit=0) ... '01200003' '01200003' '01200003' '01200003' '01200003'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='120004', number_system_digit=0) ... '01200003' '01200003' '01200003' '01200003' '01200003'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='120000', number_system_digit=0, safe_mode=False) ... '01200003' '01200003' '01200003' '01200003' '01200003'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='120003', number_system_digit=0, safe_mode=False) ... '01200033' '01200033' '01200033' '01200033' '01200033'
>>> Faker.seed(0) >>> for _ in range(5): ... fake.upc_e(base='120004', number_system_digit=0, safe_mode=False) ... '01200043' '01200043' '01200043' '01200043' '01200043'
-