Skip to content

Commit 695d099

Browse files
authored
refactor: 🛠 remove redundant logging imports and centralize logger configuration (#1214)
1 parent cd4f143 commit 695d099

32 files changed

Lines changed: 57 additions & 80 deletions

‎.github/workflows/mmdet.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ jobs:
106106
- name: Run MMDet tests
107107
run: |
108108
source .venv/bin/activate
109-
pytest tests/test_mmdetectionmodel.py -n auto
109+
pytest tests/test_mmdetection_model.py -n auto
110110
# Run MMDet-related tests from test_predict.py
111111
pytest tests/test_predict.py::test_get_prediction_mmdet -n auto
112112
pytest tests/test_predict.py::test_get_sliced_prediction_mmdet -n auto

‎sahi/annotation.py‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
# Code written by Fatih C Akyon, 2020.
33

44
import copy
5-
import logging
65
from dataclasses import dataclass
76
from typing import Dict, List, Optional, Tuple, Union
87

@@ -16,8 +15,6 @@
1615
)
1716
from sahi.utils.shapely import ShapelyAnnotation
1817

19-
logger = logging.getLogger(__name__)
20-
2118

2219
@dataclass(frozen=True)
2320
class BoundingBox:

‎sahi/logger.py‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import logging
2+
import os
3+
4+
5+
class SahiLoggerFormatter(logging.Formatter):
6+
grey = "\x1b[38;20m"
7+
yellow = "\x1b[33;20m"
8+
red = "\x1b[31;20m"
9+
bold_red = "\x1b[31;1m"
10+
reset = "\x1b[0m"
11+
format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s (%(filename)s:%(lineno)d)"
12+
13+
FORMATS = {
14+
logging.DEBUG: grey + format + reset,
15+
logging.INFO: grey + format + reset,
16+
logging.WARNING: yellow + format + reset,
17+
logging.ERROR: red + format + reset,
18+
logging.CRITICAL: bold_red + format + reset,
19+
}
20+
21+
def format(self, record):
22+
log_fmt = self.FORMATS.get(record.levelno)
23+
formatter = logging.Formatter(log_fmt)
24+
return formatter.format(record)
25+
26+
27+
logger = logging.getLogger("sahi")
28+
if os.environ.get("SAHI_DEBUG"):
29+
logger.setLevel(logging.DEBUG)
30+
console_handler = logging.StreamHandler()
31+
console_handler.setLevel(logging.DEBUG)
32+
else:
33+
logger.setLevel(logging.INFO)
34+
console_handler = logging.StreamHandler()
35+
console_handler.setLevel(logging.INFO)
36+
console_handler.setFormatter(SahiLoggerFormatter())
37+
logger.addHandler(console_handler)

‎sahi/models/base.py‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
# OBSS SAHI Tool
22
# Code written by Fatih C Akyon, 2020.
33

4-
import logging
54
from typing import Any, Dict, List, Optional
65

76
import numpy as np
87

8+
from sahi.logger import logger
99
from sahi.prediction import ObjectPrediction
1010
from sahi.utils.torch import empty_cuda_cache, has_torch, select_device
1111

12-
logger = logging.getLogger(__name__)
13-
1412

1513
class DetectionModel:
1614
def __init__(

‎sahi/models/detectron2.py‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
# OBSS SAHI Tool
22
# Code written by Fatih C Akyon, 2020.
33

4-
import logging
54
from typing import List, Optional
65

76
import numpy as np
87

8+
from sahi.logger import logger
99
from sahi.models.base import DetectionModel
1010
from sahi.prediction import ObjectPrediction
1111
from sahi.utils.cv import get_bbox_from_bool_mask, get_coco_segmentation_from_bool_mask
1212
from sahi.utils.import_utils import check_requirements
1313

14-
logger = logging.getLogger(__name__)
15-
1614

1715
class Detectron2DetectionModel(DetectionModel):
1816
def check_dependencies(self):

‎sahi/models/huggingface.py‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# OBSS SAHI Tool
22
# Code written by Fatih C Akyon and Devrim Cavusoglu, 2022.
33

4-
import logging
54
import os
65
from typing import Any, Dict, List, Optional, Tuple, Union
76

@@ -13,8 +12,6 @@
1312
from sahi.utils.compatibility import fix_full_shape_list, fix_shift_amount_list
1413
from sahi.utils.import_utils import check_requirements, ensure_package_minimum_version
1514

16-
logger = logging.getLogger(__name__)
17-
1815

1916
class HuggingfaceDetectionModel(DetectionModel):
2017
def __init__(

‎sahi/models/mmdet.py‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
# OBSS SAHI Tool
22
# Code written by Fatih C Akyon, 2020.
33

4-
import logging
54
from typing import Any, Dict, List, Optional, Union
65

76
import numpy as np
87

8+
from sahi.logger import logger
99
from sahi.models.base import DetectionModel
1010
from sahi.prediction import ObjectPrediction
1111
from sahi.utils.compatibility import fix_full_shape_list, fix_shift_amount_list
1212
from sahi.utils.cv import get_bbox_from_bool_mask, get_coco_segmentation_from_bool_mask
1313
from sahi.utils.import_utils import check_requirements
1414

15-
logger = logging.getLogger(__name__)
16-
17-
1815
try:
1916
check_requirements(["torch", "mmdet", "mmcv", "mmengine"])
2017

‎sahi/models/roboflow.py‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
from typing import Any, Dict, List, Optional
32

43
import numpy as np
@@ -8,8 +7,6 @@
87
from sahi.utils.compatibility import fix_full_shape_list, fix_shift_amount_list
98
from sahi.utils.import_utils import check_requirements
109

11-
logger = logging.getLogger(__name__)
12-
1310

1411
class RoboflowDetectionModel(DetectionModel):
1512
def __init__(

‎sahi/models/rtdetr.py‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
# OBSS SAHI Tool
22
# Code written by AnNT, 2023.
33

4-
import logging
54

65
from sahi.models.ultralytics import UltralyticsDetectionModel
76
from sahi.utils.import_utils import check_requirements
87

9-
logger = logging.getLogger(__name__)
10-
118

129
class RTDetrDetectionModel(UltralyticsDetectionModel):
1310
def check_dependencies(self) -> None:

‎sahi/models/torchvision.py‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
# OBSS SAHI Tool
22
# Code written by Fatih C Akyon and Kadir Nar, 2021.
33

4-
import logging
54
from typing import Any, List, Optional
65

76
import numpy as np
87

8+
from sahi.logger import logger
99
from sahi.models.base import DetectionModel
1010
from sahi.prediction import ObjectPrediction
1111
from sahi.utils.cv import get_coco_segmentation_from_bool_mask
1212
from sahi.utils.import_utils import check_requirements
1313

14-
logger = logging.getLogger(__name__)
15-
1614

1715
class TorchVisionDetectionModel(DetectionModel):
1816
def check_dependencies(self) -> None:

0 commit comments

Comments
 (0)