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
length
can only be8
or13
(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_digit
isTrue
, 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 thelength
argument 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 thelength
argument 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_mode
controls how barcodes will be generated. IfFalse
(default), barcodes are not guaranteed to have a UPC-E equivalent. In this mode, the method usesean13
under the hood, and the values ofbase
andnumber_system_digit
will be ignored.If
upc_ae_mode
isTrue
, the resulting barcodes are guaranteed to have a UPC-E equivalent, and the values ofbase
andnumber_system_digit
will be used to control what is generated.Under this mode,
base
is 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 a0
or a1
. If any other value is provided, this method will randomly choose from the two.Important
When
upc_ae_mode
is 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 whatbase
andnumber_system_digit
actually 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 a0
or 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
base
andnumber_system_digit
to first generate a UPC-A barcode for the check digit, and what happens next depends on the value ofsafe_mode
. The argumentsafe_mode
exists, because there are some UPC-E values that share the same UPC-A equivalent. For example, any UPC-E barcode of the formabc0000d
,abc0003d
, andabc0004d
share the same UPC-A valueabc00000000d
, but that UPC-A value will only convert toabc0000d
because of (a) how UPC-E is just a zero-suppressed version of UPC-A and (b) the rules around the conversion.If
safe_mode
isTrue
(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 bases120003
or120004
are used, the resulting UPC-E barcode will always use the base120000
.If
safe_mode
isFalse
, 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'
-