Skip to content

Commit

Permalink
Merge pull request #1177 from serengil/feat-task-0804-singleton-logger
Browse files Browse the repository at this point in the history
singleton logger and docstrings
  • Loading branch information
serengil committed Apr 8, 2024
2 parents fb4da39 + 3299303 commit 10b2e18
Show file tree
Hide file tree
Showing 39 changed files with 159 additions and 92 deletions.
18 changes: 9 additions & 9 deletions deepface/DeepFace.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

# package dependencies
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.commons import logger as log
from deepface.modules import (
modeling,
representation,
Expand All @@ -29,7 +29,7 @@
)
from deepface import __version__

logger = Logger(module="DeepFace")
logger = log.get_singletonish_logger()

# -----------------------------------
# configurations for dependencies
Expand Down Expand Up @@ -88,7 +88,7 @@ def verify(
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
'euclidean', 'euclidean_l2' (default is cosine).
Expand Down Expand Up @@ -168,7 +168,7 @@ def analyze(
Set to False to avoid the exception for low-resolution images (default is True).
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
'euclidean', 'euclidean_l2' (default is cosine).
Expand Down Expand Up @@ -272,7 +272,7 @@ def find(
Set to False to avoid the exception for low-resolution images (default is True).
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
align (boolean): Perform alignment based on the eye positions (default is True).
Expand Down Expand Up @@ -348,7 +348,7 @@ def represent(
(default is True).
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
align (boolean): Perform alignment based on the eye positions (default is True).
Expand Down Expand Up @@ -406,7 +406,7 @@ def stream(
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
'euclidean', 'euclidean_l2' (default is cosine).
Expand Down Expand Up @@ -454,7 +454,7 @@ def extract_faces(
as a string, numpy array (BGR), or base64 encoded images.
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
enforce_detection (boolean): If no face is detected in an image, raise an exception.
Set to False to avoid the exception for low-resolution images (default is True).
Expand Down Expand Up @@ -520,7 +520,7 @@ def detectFace(
added to resize the image (default is (224, 224)).
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
enforce_detection (boolean): If no face is detected in an image, raise an exception.
Set to False to avoid the exception for low-resolution images (default is True).
Expand Down
4 changes: 2 additions & 2 deletions deepface/api/src/modules/core/routes.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from flask import Blueprint, request
from deepface.api.src.modules.core import service
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="api/src/routes.py")
logger = log.get_singletonish_logger()

blueprint = Blueprint("routes", __name__)

Expand Down
5 changes: 3 additions & 2 deletions deepface/basemodels/ArcFace.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import os
import gdown
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition

logger = Logger(module="basemodels.ArcFace")
from deepface.commons import logger as log

logger = log.get_singletonish_logger()

# pylint: disable=unsubscriptable-object

Expand Down
4 changes: 2 additions & 2 deletions deepface/basemodels/DeepID.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import os
import gdown
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
from deepface.commons import logger as log

logger = Logger(module="basemodels.DeepID")
logger = log.get_singletonish_logger()

tf_version = package_utils.get_tf_major_version()

Expand Down
4 changes: 2 additions & 2 deletions deepface/basemodels/Dlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
import gdown
import numpy as np
from deepface.commons import folder_utils
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
from deepface.commons import logger as log

logger = Logger(module="basemodels.DlibResNet")
logger = log.get_singletonish_logger()

# pylint: disable=too-few-public-methods

Expand Down
4 changes: 2 additions & 2 deletions deepface/basemodels/Facenet.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import os
import gdown
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
from deepface.commons import logger as log

logger = Logger(module="basemodels.Facenet")
logger = log.get_singletonish_logger()

# --------------------------------
# dependency configuration
Expand Down
4 changes: 2 additions & 2 deletions deepface/basemodels/FbDeepFace.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
import zipfile
import gdown
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
from deepface.commons import logger as log

logger = Logger(module="basemodels.FbDeepFace")
logger = log.get_singletonish_logger()

# --------------------------------
# dependency configuration
Expand Down
4 changes: 2 additions & 2 deletions deepface/basemodels/GhostFaceNet.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
# project dependencies
from deepface.commons import package_utils, folder_utils
from deepface.models.FacialRecognition import FacialRecognition
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="basemodels.GhostFaceNet")
logger = log.get_singletonish_logger()

tf_major = package_utils.get_tf_major_version()
if tf_major == 1:
Expand Down
4 changes: 2 additions & 2 deletions deepface/basemodels/OpenFace.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
import gdown
import tensorflow as tf
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
from deepface.commons import logger as log

logger = Logger(module="basemodels.OpenFace")
logger = log.get_singletonish_logger()

tf_version = package_utils.get_tf_major_version()
if tf_version == 1:
Expand Down
7 changes: 5 additions & 2 deletions deepface/basemodels/SFace.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
# built-in dependencies
import os
from typing import Any, List

# 3rd party dependencies
import numpy as np
import cv2 as cv
import gdown

# project dependencies
from deepface.commons import folder_utils
from deepface.commons.logger import Logger
from deepface.models.FacialRecognition import FacialRecognition
from deepface.commons import logger as log

logger = Logger(module="basemodels.SFace")
logger = log.get_singletonish_logger()

# pylint: disable=line-too-long, too-few-public-methods

Expand Down
4 changes: 2 additions & 2 deletions deepface/basemodels/VGGFace.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
from deepface.commons import package_utils, folder_utils
from deepface.modules import verification
from deepface.models.FacialRecognition import FacialRecognition
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="basemodels.VGGFace")
logger = log.get_singletonish_logger()

# ---------------------------------------

Expand Down
4 changes: 2 additions & 2 deletions deepface/commons/folder_utils.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import os
from pathlib import Path
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="deepface/commons/folder_utils.py")
logger = log.get_singletonish_logger()


def initialize_folder() -> None:
Expand Down
13 changes: 13 additions & 0 deletions deepface/commons/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,16 @@ def critical(self, message):

def dump_log(self, message):
print(f"{str(datetime.now())[2:-7]} - {message}")


def get_singletonish_logger():
# singleton design pattern
global model_obj

if not "model_obj" in globals():
model_obj = {}

if "logger" not in model_obj.keys():
model_obj["logger"] = Logger(module="Singleton")

return model_obj["logger"]
4 changes: 2 additions & 2 deletions deepface/commons/package_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
import tensorflow as tf

# package dependencies
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="commons.package_utils")
logger = log.get_singletonish_logger()


def get_tf_major_version() -> int:
Expand Down
4 changes: 2 additions & 2 deletions deepface/detectors/DetectorWrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
Yolo,
YuNet,
)
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="deepface/detectors/DetectorWrapper.py")
logger = log.get_singletonish_logger()


def build_model(detector_backend: str) -> Any:
Expand Down
4 changes: 2 additions & 2 deletions deepface/detectors/Dlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import numpy as np
from deepface.commons import folder_utils
from deepface.models.Detector import Detector, FacialAreaRegion
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="detectors.DlibWrapper")
logger = log.get_singletonish_logger()


class DlibClient(Detector):
Expand Down
4 changes: 2 additions & 2 deletions deepface/detectors/Ssd.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
from deepface.detectors import OpenCv
from deepface.commons import folder_utils
from deepface.models.Detector import Detector, FacialAreaRegion
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="detectors.SsdWrapper")
logger = log.get_singletonish_logger()

# pylint: disable=line-too-long, c-extension-no-member

Expand Down
4 changes: 2 additions & 2 deletions deepface/detectors/Yolo.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import gdown
from deepface.models.Detector import Detector, FacialAreaRegion
from deepface.commons import folder_utils
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger()
logger = log.get_singletonish_logger()

# Model's weights paths
PATH = "/.deepface/weights/yolov8n-face.pt"
Expand Down
9 changes: 7 additions & 2 deletions deepface/detectors/YuNet.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
# built-in dependencies
import os
from typing import Any, List

# 3rd party dependencies
import cv2
import numpy as np
import gdown

# project dependencies
from deepface.commons import folder_utils
from deepface.models.Detector import Detector, FacialAreaRegion
from deepface.commons.logger import Logger
from deepface.commons import logger as log

logger = Logger(module="detectors.YunetWrapper")
logger = log.get_singletonish_logger()


class YuNetClient(Detector):
Expand Down
4 changes: 2 additions & 2 deletions deepface/extendedmodels/Age.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import numpy as np
from deepface.basemodels import VGGFace
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.Demography import Demography
from deepface.commons import logger as log

logger = Logger(module="extendedmodels.Age")
logger = log.get_singletonish_logger()

# ----------------------------------------
# dependency configurations
Expand Down
9 changes: 7 additions & 2 deletions deepface/extendedmodels/Emotion.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
# built-in dependencies
import os

# 3rd party dependencies
import gdown
import numpy as np
import cv2

# project dependencies
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.Demography import Demography
from deepface.commons import logger as log

logger = Logger(module="extendedmodels.Emotion")
logger = log.get_singletonish_logger()

# -------------------------------------------
# pylint: disable=line-too-long
Expand Down
9 changes: 7 additions & 2 deletions deepface/extendedmodels/Gender.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
# built-in dependencies
import os

# 3rd party dependencies
import gdown
import numpy as np

# project dependencies
from deepface.basemodels import VGGFace
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.Demography import Demography
from deepface.commons import logger as log

logger = Logger(module="extendedmodels.Gender")
logger = log.get_singletonish_logger()

# -------------------------------------
# pylint: disable=line-too-long
Expand Down
9 changes: 7 additions & 2 deletions deepface/extendedmodels/Race.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
# built-in dependencies
import os

# 3rd party dependencies
import gdown
import numpy as np

# project dependencies
from deepface.basemodels import VGGFace
from deepface.commons import package_utils, folder_utils
from deepface.commons.logger import Logger
from deepface.models.Demography import Demography
from deepface.commons import logger as log

logger = Logger(module="extendedmodels.Race")
logger = log.get_singletonish_logger()

# --------------------------
# pylint: disable=line-too-long
Expand Down
Loading

0 comments on commit 10b2e18

Please sign in to comment.