Lines Matching refs:QrCode
32 class QrCode:
41 - High level: Take the payload data and call QrCode.encode_text() or QrCode.encode_binary().
42 - Mid level: Custom-make the list of segments and call QrCode.encode_segments().
45 supply the appropriate version number, and call the QrCode() constructor.
51 def encode_text(text: str, ecl: QrCode.Ecc) -> QrCode:
58 return QrCode.encode_segments(segs, ecl)
62 def encode_binary(data: Union[bytes,Sequence[int]], ecl: QrCode.Ecc) -> QrCode:
67 return QrCode.encode_segments([QrSegment.make_bytes(data)], ecl)
73 def encode_segments(segs: Sequence[QrSegment], ecl: QrCode.Ecc, minversion: int = 1, maxversion: int = 40, mask: int = -1, boostecl: bool = True) -> QrCode:
84 if not (QrCode.MIN_VERSION <= minversion <= maxversion <= QrCode.MAX_VERSION) or not (-1 <= mask <= 7):
89 datacapacitybits: int = QrCode._get_num_data_codewords(version, ecl) * 8 # Number of data bits available
101 for newecl in (QrCode.Ecc.MEDIUM, QrCode.Ecc.QUARTILE, QrCode.Ecc.HIGH): # From low to high
102 if boostecl and (datausedbits <= QrCode._get_num_data_codewords(version, newecl) * 8):
114 datacapacitybits = QrCode._get_num_data_codewords(version, ecl) * 8
132 return QrCode(version, ecl, datacodewords, mask)
146 _errcorlvl: QrCode.Ecc
163 def __init__(self, version: int, errcorlvl: QrCode.Ecc, datacodewords: Union[bytes,Sequence[int]], msk: int) -> None:
170 if not (QrCode.MIN_VERSION <= version <= QrCode.MAX_VERSION):
217 def get_error_correction_level(self) -> QrCode.Ecc:
343 assert len(data) == QrCode._get_num_data_codewords(version, self._errcorlvl)
346 numblocks: int = QrCode._NUM_ERROR_CORRECTION_BLOCKS[self._errcorlvl.ordinal][version]
347 blockecclen: int = QrCode._ECC_CODEWORDS_PER_BLOCK [self._errcorlvl.ordinal][version]
348 rawcodewords: int = QrCode._get_num_raw_data_modules(version) // 8
354 rsdiv: bytes = QrCode._reed_solomon_compute_divisor(blockecclen)
359 ecc: bytes = QrCode._reed_solomon_compute_remainder(dat, rsdiv)
379 assert len(data) == QrCode._get_num_raw_data_modules(self._version) // 8
407 masker: Callable[[int,int],int] = QrCode._MASK_PATTERNS[mask]
429 result += QrCode._PENALTY_N1
435 result += self._finder_penalty_count_patterns(runhistory) * QrCode._PENALTY_N3
438 result += self._finder_penalty_terminate_and_count(runcolor, runx, runhistory) * QrCode._PENALTY_N3
448 result += QrCode._PENALTY_N1
454 result += self._finder_penalty_count_patterns(runhistory) * QrCode._PENALTY_N3
457 result += self._finder_penalty_terminate_and_count(runcolor, runy, runhistory) * QrCode._PENALTY_N3
463 result += QrCode._PENALTY_N2
471 result += k * QrCode._PENALTY_N4
498 if not (QrCode.MIN_VERSION <= ver <= QrCode.MAX_VERSION):
511 def _get_num_data_codewords(ver: int, ecl: QrCode.Ecc) -> int:
515 return QrCode._get_num_raw_data_modules(ver) // 8 \
516 - QrCode._ECC_CODEWORDS_PER_BLOCK [ecl.ordinal][ver] \
517 * QrCode._NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver]
537 result[j] = QrCode._reed_solomon_multiply(result[j], root)
540 root = QrCode._reed_solomon_multiply(root, 0x02)
552 result[i] ^= QrCode._reed_solomon_multiply(coef, factor)
649 LOW : QrCode.Ecc
650 MEDIUM : QrCode.Ecc
651 QUARTILE: QrCode.Ecc
652 HIGH : QrCode.Ecc
903 it if it was less than QrCode.MAX_VERSION. (This advice does not apply to the other
904 factory functions because they search all versions up to QrCode.MAX_VERSION.)