diff --git a/extractor_service/app/extractor_manager.py b/extractor_service/app/extractor_manager.py index da0de85..debd93e 100644 --- a/extractor_service/app/extractor_manager.py +++ b/extractor_service/app/extractor_manager.py @@ -20,7 +20,7 @@ """ import logging -from fastapi import HTTPException, BackgroundTasks +from fastapi import BackgroundTasks, HTTPException from .dependencies import ExtractorDependencies from .extractors import Extractor, ExtractorFactory diff --git a/extractor_service/app/extractors.py b/extractor_service/app/extractors.py index 4919fd0..f7cd9da 100644 --- a/extractor_service/app/extractors.py +++ b/extractor_service/app/extractors.py @@ -22,20 +22,20 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . """ +import gc +import logging +from abc import ABC, abstractmethod from concurrent.futures import ThreadPoolExecutor from pathlib import Path -from abc import ABC, abstractmethod -import logging from typing import Type -import gc import numpy as np from .dependencies import ExtractorDependencies +from .image_evaluators import ImageEvaluator +from .image_processors import ImageProcessor from .schemas import ExtractorConfig from .video_processors import VideoProcessor -from .image_processors import ImageProcessor -from .image_evaluators import ImageEvaluator logger = logging.getLogger(__name__) diff --git a/extractor_service/app/image_evaluators.py b/extractor_service/app/image_evaluators.py index 1a917a9..1021a99 100644 --- a/extractor_service/app/image_evaluators.py +++ b/extractor_service/app/image_evaluators.py @@ -23,12 +23,12 @@ from abc import ABC, abstractmethod from pathlib import Path -import requests import numpy as np +import requests +import tensorflow as tf from tensorflow import convert_to_tensor from tensorflow.keras import Model from tensorflow.keras.layers import Dense, Dropout -import tensorflow as tf from .schemas import ExtractorConfig diff --git a/extractor_service/app/video_processors.py b/extractor_service/app/video_processors.py index ee48bfa..d7a5655 100644 --- a/extractor_service/app/video_processors.py +++ b/extractor_service/app/video_processors.py @@ -21,9 +21,9 @@ """ import logging from abc import ABC, abstractmethod -from typing import Generator from contextlib import contextmanager from pathlib import Path +from typing import Generator import cv2 import numpy as np diff --git a/extractor_service/main.py b/extractor_service/main.py index a3ec1b6..457e3f4 100644 --- a/extractor_service/main.py +++ b/extractor_service/main.py @@ -28,16 +28,18 @@ import sys import uvicorn -from fastapi import FastAPI, BackgroundTasks, Depends +from fastapi import BackgroundTasks, Depends, FastAPI if os.getenv("DOCKER_ENV"): - from app.schemas import ExtractorConfig, Message, ExtractorStatus + from app.dependencies import (ExtractorDependencies, + get_extractor_dependencies) from app.extractor_manager import ExtractorManager - from app.dependencies import ExtractorDependencies, get_extractor_dependencies + from app.schemas import ExtractorConfig, ExtractorStatus, Message else: - from .app.schemas import ExtractorConfig, Message, ExtractorStatus + from .app.dependencies import (ExtractorDependencies, + get_extractor_dependencies) from .app.extractor_manager import ExtractorManager - from .app.dependencies import ExtractorDependencies, get_extractor_dependencies + from .app.schemas import ExtractorConfig, ExtractorStatus, Message logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s", diff --git a/pyproject.toml b/pyproject.toml index c28c5e5..b0a3aac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "PerfectFrameAI" -version = "2.3.2" +version = "2.3.3" description = "AI tool for finding the most aesthetic frames in a video. 🎞️➜🖼️" authors = ["Bartłomiej Flis "] license = "GPL-3.0 license" diff --git a/service_manager/docker_manager.py b/service_manager/docker_manager.py index 379465c..f18d3fd 100644 --- a/service_manager/docker_manager.py +++ b/service_manager/docker_manager.py @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . """ +import logging import subprocess import sys -import logging from typing import Optional logger = logging.getLogger(__name__) diff --git a/service_manager/service_initializer.py b/service_manager/service_initializer.py index bfd4589..2b1a38b 100644 --- a/service_manager/service_initializer.py +++ b/service_manager/service_initializer.py @@ -21,10 +21,10 @@ import json import logging import time +from http.client import RemoteDisconnected from pathlib import Path from typing import Union -from urllib.request import urlopen, Request -from http.client import RemoteDisconnected +from urllib.request import Request, urlopen logger = logging.getLogger(__name__) diff --git a/start.py b/start.py index 582bb6c..efcc0b1 100644 --- a/start.py +++ b/start.py @@ -18,8 +18,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . """ -import logging import argparse +import logging from config import Config from service_manager.docker_manager import DockerManager diff --git a/tests/extractor_service/common.py b/tests/extractor_service/common.py index 7cf2dd7..b1b2e96 100644 --- a/tests/extractor_service/common.py +++ b/tests/extractor_service/common.py @@ -1,12 +1,12 @@ """Common fixtures for all conftest files.""" import pytest +from extractor_service.app.dependencies import (ExtractorDependencies, + get_evaluator, + get_image_processor, + get_video_processor) from extractor_service.app.extractors import BestFramesExtractor from extractor_service.app.schemas import ExtractorConfig -from extractor_service.app.dependencies import ( - ExtractorDependencies, get_image_processor, - get_video_processor, get_evaluator -) @pytest.fixture(scope="package") diff --git a/tests/extractor_service/e2e/conftest.py b/tests/extractor_service/e2e/conftest.py index 7d51d52..a52409f 100644 --- a/tests/extractor_service/e2e/conftest.py +++ b/tests/extractor_service/e2e/conftest.py @@ -1,12 +1,11 @@ -from fastapi.testclient import TestClient import pytest +from fastapi.testclient import TestClient -from tests.extractor_service.common import config -from tests.common import ( - files_dir, best_frames_dir, top_images_dir, - setup_top_images_extractor_env, setup_best_frames_extractor_env -) from extractor_service.main import app, run_extractor +from tests.common import (best_frames_dir, files_dir, + setup_best_frames_extractor_env, + setup_top_images_extractor_env, top_images_dir) +from tests.extractor_service.common import config @pytest.fixture(scope="package") diff --git a/tests/extractor_service/integration/best_frames_extrator_test.py b/tests/extractor_service/integration/best_frames_extrator_test.py index ae3d2ee..33cc581 100644 --- a/tests/extractor_service/integration/best_frames_extrator_test.py +++ b/tests/extractor_service/integration/best_frames_extrator_test.py @@ -1,4 +1,5 @@ import pytest + from extractor_service.app.extractors import BestFramesExtractor from extractor_service.app.schemas import ExtractorConfig diff --git a/tests/extractor_service/integration/conftest.py b/tests/extractor_service/integration/conftest.py index fc2e724..c0048d7 100644 --- a/tests/extractor_service/integration/conftest.py +++ b/tests/extractor_service/integration/conftest.py @@ -1,8 +1,7 @@ import pytest -from tests.extractor_service.common import extractor, config, dependencies -from tests.common import ( - files_dir, best_frames_dir, top_images_dir, - setup_top_images_extractor_env, setup_best_frames_extractor_env -) from extractor_service.app.extractors import BestFramesExtractor +from tests.common import (best_frames_dir, files_dir, + setup_best_frames_extractor_env, + setup_top_images_extractor_env, top_images_dir) +from tests.extractor_service.common import config, dependencies, extractor diff --git a/tests/extractor_service/unit/conftest.py b/tests/extractor_service/unit/conftest.py index 4cecfdf..1a32383 100644 --- a/tests/extractor_service/unit/conftest.py +++ b/tests/extractor_service/unit/conftest.py @@ -2,5 +2,5 @@ from extractor_service.app.extractors import BestFramesExtractor from extractor_service.app.schemas import ExtractorConfig -from tests.extractor_service.common import extractor, config, dependencies -from tests.common import files_dir, best_frames_dir +from tests.common import best_frames_dir, files_dir +from tests.extractor_service.common import config, dependencies, extractor diff --git a/tests/extractor_service/unit/dependencies_test.py b/tests/extractor_service/unit/dependencies_test.py index 77f3f4b..eb6b206 100644 --- a/tests/extractor_service/unit/dependencies_test.py +++ b/tests/extractor_service/unit/dependencies_test.py @@ -1,10 +1,11 @@ +from extractor_service.app.dependencies import (ExtractorDependencies, + get_evaluator, + get_extractor_dependencies, + get_image_processor, + get_video_processor) +from extractor_service.app.image_evaluators import InceptionResNetNIMA from extractor_service.app.image_processors import OpenCVImage from extractor_service.app.video_processors import OpenCVVideo -from extractor_service.app.image_evaluators import InceptionResNetNIMA -from extractor_service.app.dependencies import ( - get_image_processor, get_video_processor, - get_evaluator, get_extractor_dependencies, ExtractorDependencies -) def test_get_image_processor(): diff --git a/tests/extractor_service/unit/extractor_manager_test.py b/tests/extractor_service/unit/extractor_manager_test.py index d2d0449..0498fd9 100644 --- a/tests/extractor_service/unit/extractor_manager_test.py +++ b/tests/extractor_service/unit/extractor_manager_test.py @@ -1,8 +1,7 @@ -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch import pytest -from fastapi import HTTPException, BackgroundTasks - +from fastapi import BackgroundTasks, HTTPException from extractor_service.app.extractor_manager import ExtractorManager from extractor_service.app.extractors import ExtractorFactory diff --git a/tests/extractor_service/unit/extractor_test.py b/tests/extractor_service/unit/extractor_test.py index ca86994..b7c2fdf 100644 --- a/tests/extractor_service/unit/extractor_test.py +++ b/tests/extractor_service/unit/extractor_test.py @@ -1,16 +1,16 @@ import logging from pathlib import Path -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch import numpy as np import pytest +from extractor_service.app.extractors import (BestFramesExtractor, + ExtractorFactory, + TopImagesExtractor) +from extractor_service.app.image_evaluators import InceptionResNetNIMA from extractor_service.app.image_processors import OpenCVImage from extractor_service.app.video_processors import OpenCVVideo -from extractor_service.app.image_evaluators import InceptionResNetNIMA -from extractor_service.app.extractors import (ExtractorFactory, - BestFramesExtractor, - TopImagesExtractor) def test_extractor_initialization(config, dependencies): diff --git a/tests/extractor_service/unit/image_evaluators_test.py b/tests/extractor_service/unit/image_evaluators_test.py index 81c3f5f..e7e4963 100644 --- a/tests/extractor_service/unit/image_evaluators_test.py +++ b/tests/extractor_service/unit/image_evaluators_test.py @@ -1,10 +1,11 @@ import logging -from unittest.mock import patch, MagicMock, call +from unittest.mock import MagicMock, call, patch import numpy as np import pytest -from extractor_service.app.image_evaluators import InceptionResNetNIMA, _ResNetModel +from extractor_service.app.image_evaluators import (InceptionResNetNIMA, + _ResNetModel) @pytest.fixture diff --git a/tests/extractor_service/unit/image_processors_test.py b/tests/extractor_service/unit/image_processors_test.py index 55a4e2c..b38890a 100644 --- a/tests/extractor_service/unit/image_processors_test.py +++ b/tests/extractor_service/unit/image_processors_test.py @@ -1,7 +1,7 @@ import logging import uuid from pathlib import Path -from unittest.mock import patch, MagicMock, call +from unittest.mock import MagicMock, call, patch import cv2 import numpy as np diff --git a/tests/extractor_service/unit/nima_models_test.py b/tests/extractor_service/unit/nima_models_test.py index 1f25ace..966614b 100644 --- a/tests/extractor_service/unit/nima_models_test.py +++ b/tests/extractor_service/unit/nima_models_test.py @@ -1,6 +1,6 @@ import logging from pathlib import Path -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch import numpy as np import pytest diff --git a/tests/extractor_service/unit/schemas_test.py b/tests/extractor_service/unit/schemas_test.py index f7d6600..be373a0 100644 --- a/tests/extractor_service/unit/schemas_test.py +++ b/tests/extractor_service/unit/schemas_test.py @@ -4,7 +4,8 @@ import pytest from pydantic import ValidationError -from extractor_service.app.schemas import ExtractorConfig, Message, ExtractorStatus +from extractor_service.app.schemas import (ExtractorConfig, ExtractorStatus, + Message) def test_config_default(): diff --git a/tests/extractor_service/unit/top_images_extractor_test.py b/tests/extractor_service/unit/top_images_extractor_test.py index f48f5ea..7a43c47 100644 --- a/tests/extractor_service/unit/top_images_extractor_test.py +++ b/tests/extractor_service/unit/top_images_extractor_test.py @@ -1,5 +1,5 @@ import logging -from unittest.mock import MagicMock, patch, call +from unittest.mock import MagicMock, call, patch import numpy as np import pytest diff --git a/tests/extractor_service/unit/video_processors_test.py b/tests/extractor_service/unit/video_processors_test.py index a7df3ea..f78098f 100644 --- a/tests/extractor_service/unit/video_processors_test.py +++ b/tests/extractor_service/unit/video_processors_test.py @@ -1,6 +1,6 @@ import logging from pathlib import Path -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch import cv2 import pytest diff --git a/tests/service_manager/e2e/best_frames_extractor_test.py b/tests/service_manager/e2e/best_frames_extractor_test.py index fad7f05..81fb79f 100644 --- a/tests/service_manager/e2e/best_frames_extractor_test.py +++ b/tests/service_manager/e2e/best_frames_extractor_test.py @@ -1,7 +1,8 @@ +import os import subprocess import sys + import pytest -import os @pytest.mark.skipif("CI" in os.environ, reason="Test skipped in GitHub Actions.") diff --git a/tests/service_manager/e2e/conftest.py b/tests/service_manager/e2e/conftest.py index 04b2ec8..747c693 100644 --- a/tests/service_manager/e2e/conftest.py +++ b/tests/service_manager/e2e/conftest.py @@ -2,10 +2,9 @@ import pytest -from tests.common import ( - files_dir, best_frames_dir, top_images_dir, - setup_top_images_extractor_env, setup_best_frames_extractor_env -) +from tests.common import (best_frames_dir, files_dir, + setup_best_frames_extractor_env, + setup_top_images_extractor_env, top_images_dir) @pytest.fixture(scope="module") diff --git a/tests/service_manager/e2e/top_images_extractor_test.py b/tests/service_manager/e2e/top_images_extractor_test.py index af515ec..ee91595 100644 --- a/tests/service_manager/e2e/top_images_extractor_test.py +++ b/tests/service_manager/e2e/top_images_extractor_test.py @@ -1,7 +1,8 @@ +import os import subprocess import sys + import pytest -import os @pytest.mark.skipif("CI" in os.environ, reason="Test skipped in GitHub Actions.") diff --git a/tests/service_manager/integration/docker_image_test.py b/tests/service_manager/integration/docker_image_test.py index 5807b09..7d387eb 100644 --- a/tests/service_manager/integration/docker_image_test.py +++ b/tests/service_manager/integration/docker_image_test.py @@ -1,5 +1,5 @@ -import pytest import docker +import pytest from config import Config diff --git a/tests/service_manager/unit/docker_manager_test.py b/tests/service_manager/unit/docker_manager_test.py index e41ed38..dcbe65d 100644 --- a/tests/service_manager/unit/docker_manager_test.py +++ b/tests/service_manager/unit/docker_manager_test.py @@ -1,6 +1,6 @@ import logging import subprocess -from unittest.mock import patch, MagicMock, PropertyMock, call +from unittest.mock import MagicMock, PropertyMock, call, patch import pytest diff --git a/tests/service_manager/unit/service_initializer_test.py b/tests/service_manager/unit/service_initializer_test.py index 18afca4..e6099ad 100644 --- a/tests/service_manager/unit/service_initializer_test.py +++ b/tests/service_manager/unit/service_initializer_test.py @@ -6,7 +6,7 @@ from http.client import RemoteDisconnected from pathlib import Path from unittest import mock -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch import pytest