Boost Error Correction Level

If the user does not provide any --version or version keyword parameter for segno.make(), Segno uses the minimal possible (Micro) QR Code symbol with a maximal error correction level. The QR Code version dominates, meaning that Segno will never choose a better error correction level if this choice requires a higher (Micro) QR Code version.

If the user provides the --error (or error keyword for segno.make()), the error correction level is treated as minimal error correction level.

To prevent any error correction level enhancement, Segno provides the --no-error-boost option and boost_error=False option for segno.make().

It’s recommended to keep the error level correction boosting, because a better error correction level improves the probability that the QR Code can be read by average QR Code decoders under all circumstances.

Examples

Keeping the default (boost error level on):

>>> import segno
>>> qr = segno.make('The Long and Winding Road')
>>> qr.designator
'2-M'

Segno returns a 2-M QR Code (version 2, error correction level “M”).

2-M QR Code encoding 'The Long and Winding Road'

If the user does not allow any enhancement of the error correction level, Segno returns a 2-L QR Code (version 2, error correction level “L”) which does not optimally exploit the possible error corrections:

>>> import segno
>>> qr = segno.make('The Long and Winding Road', boost_error=False)
>>> qr.designator
'2-L'
2-L QR Code encoding 'The Long and Winding Road'

As shown, both QR codes use the same version (and are therefore have the same size). However, the first QR code uses a better error correction level (15% vs. 7%) and should be easier to read.