| 72 | |
| 73 | |
| 74 | class QRCode(Generic[GenericImage]): |
| 75 | modules: ModulesType |
| 76 | _version: Optional[int] = None |
| 77 | |
| 78 | def __init__( |
| 79 | self, |
| 80 | version=None, |
| 81 | error_correction=constants.ERROR_CORRECT_M, |
| 82 | box_size=10, |
| 83 | border=4, |
| 84 | image_factory: Optional[type[GenericImage]] = None, |
| 85 | mask_pattern=None, |
| 86 | ): |
| 87 | _check_box_size(box_size) |
| 88 | _check_border(border) |
| 89 | self.version = version |
| 90 | self.error_correction = int(error_correction) |
| 91 | self.box_size = int(box_size) |
| 92 | # Spec says border should be at least four boxes wide, but allow for |
| 93 | # any (e.g. for producing printable QR codes). |
| 94 | self.border = int(border) |
| 95 | self.mask_pattern = mask_pattern |
| 96 | self.image_factory = image_factory |
| 97 | if image_factory is not None: |
| 98 | assert issubclass(image_factory, BaseImage) |
| 99 | self.clear() |
| 100 | |
| 101 | @property |
| 102 | def version(self) -> int: |
| 103 | if self._version is None: |
| 104 | self.best_fit() |
| 105 | return cast(int, self._version) |
| 106 | |
| 107 | @version.setter |
| 108 | def version(self, value) -> None: |
| 109 | if value is not None: |
| 110 | value = int(value) |
| 111 | util.check_version(value) |
| 112 | self._version = value |
| 113 | |
| 114 | @property |
| 115 | def mask_pattern(self): |
| 116 | return self._mask_pattern |
| 117 | |
| 118 | @mask_pattern.setter |
| 119 | def mask_pattern(self, pattern): |
| 120 | _check_mask_pattern(pattern) |
| 121 | self._mask_pattern = pattern |
| 122 | |
| 123 | def clear(self): |
| 124 | """ |
| 125 | Reset the internal data. |
| 126 | """ |
| 127 | self.modules = [[]] |
| 128 | self.modules_count = 0 |
| 129 | self.data_cache = None |
| 130 | self.data_list = [] |
| 131 |
no outgoing calls
no test coverage detected