From 17f6c2bac7b40dccdb8893bdd61ae2b561c16481 Mon Sep 17 00:00:00 2001 From: 283375 Date: Fri, 3 Nov 2023 00:50:45 +0800 Subject: [PATCH] chore: code linting --- pyproject.toml | 11 +++++++++++ src/arcaea_offline_ocr/b30/shared.py | 2 +- src/arcaea_offline_ocr/device/ocr.py | 5 +++-- src/arcaea_offline_ocr/device/rois/masker/auto.py | 2 ++ src/arcaea_offline_ocr/ocr.py | 4 ++-- src/arcaea_offline_ocr/phash_db.py | 13 +++++++------ src/arcaea_offline_ocr/utils.py | 2 +- 7 files changed, 27 insertions(+), 12 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3e3220f..1a76a58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,3 +25,14 @@ src_paths = ["src/arcaea_offline_ocr"] [tool.pyright] ignore = ["**/__debug*.*"] + +[tool.pylint.main] +# extension-pkg-allow-list = ["cv2"] +generated-members = ["cv2.*"] + +[tool.pylint.logging] +disable = [ + "missing-module-docstring", + "missing-class-docstring", + "missing-function-docstring" +] diff --git a/src/arcaea_offline_ocr/b30/shared.py b/src/arcaea_offline_ocr/b30/shared.py index d76fea2..87e1afc 100644 --- a/src/arcaea_offline_ocr/b30/shared.py +++ b/src/arcaea_offline_ocr/b30/shared.py @@ -1,5 +1,5 @@ from datetime import datetime -from typing import Optional, Union +from typing import Optional import attrs diff --git a/src/arcaea_offline_ocr/device/ocr.py b/src/arcaea_offline_ocr/device/ocr.py index d0cbf88..f4c637c 100644 --- a/src/arcaea_offline_ocr/device/ocr.py +++ b/src/arcaea_offline_ocr/device/ocr.py @@ -67,8 +67,9 @@ class DeviceOcr: roi = self.masker.score(self.extractor.score) contours, _ = cv2.findContours(roi, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) for contour in contours: - x, y, w, h = cv2.boundingRect(contour) - if h < roi.shape[0] * 0.6: + if ( + cv2.boundingRect(contour)[3] < roi.shape[0] * 0.6 + ): # h < score_component_h * 0.6 roi = cv2.fillPoly(roi, [contour], [0]) return ocr_digits_by_contour_knn(roi, self.knn_model) diff --git a/src/arcaea_offline_ocr/device/rois/masker/auto.py b/src/arcaea_offline_ocr/device/rois/masker/auto.py index d6527ac..29cb4ab 100644 --- a/src/arcaea_offline_ocr/device/rois/masker/auto.py +++ b/src/arcaea_offline_ocr/device/rois/masker/auto.py @@ -6,6 +6,8 @@ from .common import DeviceRoisMasker class DeviceRoisMaskerAuto(DeviceRoisMasker): + # pylint: disable=abstract-method + @staticmethod def mask_bgr_in_hsv(roi_bgr: Mat, hsv_lower: Mat, hsv_upper: Mat): return cv2.inRange( diff --git a/src/arcaea_offline_ocr/ocr.py b/src/arcaea_offline_ocr/ocr.py index 44ca73a..fa30635 100644 --- a/src/arcaea_offline_ocr/ocr.py +++ b/src/arcaea_offline_ocr/ocr.py @@ -36,7 +36,7 @@ class FixRects: if rect in consumed_rects: continue - x, y, w, h = rect + x, _, w, h = rect # grab those small rects if not img_height * 0.1 <= h <= img_height * 0.6: continue @@ -46,7 +46,7 @@ class FixRects: for other_rect in rects: if rect == other_rect: continue - ox, oy, ow, oh = other_rect + ox, _, ow, _ = other_rect if abs(x - ox) < tolerance and abs((x + w) - (ox + ow)) < tolerance: group.append(other_rect) diff --git a/src/arcaea_offline_ocr/phash_db.py b/src/arcaea_offline_ocr/phash_db.py index dba7c04..040b9d7 100644 --- a/src/arcaea_offline_ocr/phash_db.py +++ b/src/arcaea_offline_ocr/phash_db.py @@ -12,7 +12,8 @@ def phash_opencv(img_gray, hash_size=8, highfreq_factor=4): """ Perceptual Hash computation. - Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html + Implementation follows + http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html Adapted from `imagehash.phash`, pure opencv implementation @@ -69,14 +70,14 @@ class ImagePhashDatabase: self.partner_icon_ids: List[str] = [] self.partner_icon_hashes = [] - for id, hash in zip(self.ids, self.hashes): - id_splitted = id.split("||") + for _id, _hash in zip(self.ids, self.hashes): + id_splitted = _id.split("||") if len(id_splitted) > 1 and id_splitted[0] == "partner_icon": self.partner_icon_ids.append(id_splitted[1]) - self.partner_icon_hashes.append(hash) + self.partner_icon_hashes.append(_hash) else: - self.jacket_ids.append(id) - self.jacket_hashes.append(hash) + self.jacket_ids.append(_id) + self.jacket_hashes.append(_hash) def calculate_phash(self, img_gray: Mat): return phash_opencv( diff --git a/src/arcaea_offline_ocr/utils.py b/src/arcaea_offline_ocr/utils.py index 9fa9390..a6238c6 100644 --- a/src/arcaea_offline_ocr/utils.py +++ b/src/arcaea_offline_ocr/utils.py @@ -42,5 +42,5 @@ def apply_factor(item: T, factor: float) -> T: def apply_factor(item, factor: float): if isinstance(item, (int, float)): return item * factor - elif isinstance(item, Iterable): + if isinstance(item, Iterable): return item.__class__([i * factor for i in item])