Skip to content

Commit b35f5b3

Browse files
authored
Enforce absolute imports with ruff (#6576)
## Summary This PR migrates all relative imports to absolute imports, and adds a ruff check to enforce this going forward. The justification for this change is here: #6575 ## QA Instructions Smoke test all common workflows. Most of the relative -> absolute conversions could be completed automatically, so the risk is relatively low. ## Merge Plan As with any far-reaching change like this, it is likely to cause some merge conflicts with some in-flight branches. Unfortunately, there's no way around this, but let me know if you can think of in-flight work that will be significantly disrupted by this. ## Checklist - [x] _The PR has a short but descriptive title, suitable for a changelog_ - [x] _Tests added / updated (if applicable)_ N/A - [x] _Documentation added / updated (if applicable)_ N/A
2 parents 7bbd793 + 1d44909 commit b35f5b3

File tree

98 files changed

+310
-363
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+310
-363
lines changed

invokeai/app/api/dependencies.py

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,39 @@
44

55
import torch
66

7+
from invokeai.app.services.board_image_records.board_image_records_sqlite import SqliteBoardImageRecordStorage
8+
from invokeai.app.services.board_images.board_images_default import BoardImagesService
9+
from invokeai.app.services.board_records.board_records_sqlite import SqliteBoardRecordStorage
10+
from invokeai.app.services.boards.boards_default import BoardService
11+
from invokeai.app.services.bulk_download.bulk_download_default import BulkDownloadService
12+
from invokeai.app.services.config.config_default import InvokeAIAppConfig
13+
from invokeai.app.services.download.download_default import DownloadQueueService
14+
from invokeai.app.services.events.events_fastapievents import FastAPIEventService
15+
from invokeai.app.services.image_files.image_files_disk import DiskImageFileStorage
16+
from invokeai.app.services.image_records.image_records_sqlite import SqliteImageRecordStorage
17+
from invokeai.app.services.images.images_default import ImageService
18+
from invokeai.app.services.invocation_cache.invocation_cache_memory import MemoryInvocationCache
19+
from invokeai.app.services.invocation_services import InvocationServices
20+
from invokeai.app.services.invocation_stats.invocation_stats_default import InvocationStatsService
21+
from invokeai.app.services.invoker import Invoker
22+
from invokeai.app.services.model_images.model_images_default import ModelImageFileStorageDisk
23+
from invokeai.app.services.model_manager.model_manager_default import ModelManagerService
24+
from invokeai.app.services.model_records.model_records_sql import ModelRecordServiceSQL
25+
from invokeai.app.services.names.names_default import SimpleNameService
726
from invokeai.app.services.object_serializer.object_serializer_disk import ObjectSerializerDisk
827
from invokeai.app.services.object_serializer.object_serializer_forward_cache import ObjectSerializerForwardCache
28+
from invokeai.app.services.session_processor.session_processor_default import (
29+
DefaultSessionProcessor,
30+
DefaultSessionRunner,
31+
)
32+
from invokeai.app.services.session_queue.session_queue_sqlite import SqliteSessionQueue
933
from invokeai.app.services.shared.sqlite.sqlite_util import init_db
34+
from invokeai.app.services.urls.urls_default import LocalUrlService
35+
from invokeai.app.services.workflow_records.workflow_records_sqlite import SqliteWorkflowRecordsStorage
1036
from invokeai.backend.stable_diffusion.diffusion.conditioning_data import ConditioningFieldData
1137
from invokeai.backend.util.logging import InvokeAILogger
1238
from invokeai.version.invokeai_version import __version__
1339

14-
from ..services.board_image_records.board_image_records_sqlite import SqliteBoardImageRecordStorage
15-
from ..services.board_images.board_images_default import BoardImagesService
16-
from ..services.board_records.board_records_sqlite import SqliteBoardRecordStorage
17-
from ..services.boards.boards_default import BoardService
18-
from ..services.bulk_download.bulk_download_default import BulkDownloadService
19-
from ..services.config import InvokeAIAppConfig
20-
from ..services.download import DownloadQueueService
21-
from ..services.events.events_fastapievents import FastAPIEventService
22-
from ..services.image_files.image_files_disk import DiskImageFileStorage
23-
from ..services.image_records.image_records_sqlite import SqliteImageRecordStorage
24-
from ..services.images.images_default import ImageService
25-
from ..services.invocation_cache.invocation_cache_memory import MemoryInvocationCache
26-
from ..services.invocation_services import InvocationServices
27-
from ..services.invocation_stats.invocation_stats_default import InvocationStatsService
28-
from ..services.invoker import Invoker
29-
from ..services.model_images.model_images_default import ModelImageFileStorageDisk
30-
from ..services.model_manager.model_manager_default import ModelManagerService
31-
from ..services.model_records import ModelRecordServiceSQL
32-
from ..services.names.names_default import SimpleNameService
33-
from ..services.session_processor.session_processor_default import DefaultSessionProcessor, DefaultSessionRunner
34-
from ..services.session_queue.session_queue_sqlite import SqliteSessionQueue
35-
from ..services.urls.urls_default import LocalUrlService
36-
from ..services.workflow_records.workflow_records_sqlite import SqliteWorkflowRecordsStorage
37-
3840

3941
# TODO: is there a better way to achieve this?
4042
def check_internet() -> bool:

invokeai/app/api/routers/app_info.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@
1010
from fastapi.routing import APIRouter
1111
from pydantic import BaseModel, Field
1212

13+
from invokeai.app.api.dependencies import ApiDependencies
1314
from invokeai.app.invocations.upscale import ESRGAN_MODELS
1415
from invokeai.app.services.invocation_cache.invocation_cache_common import InvocationCacheStatus
1516
from invokeai.backend.image_util.infill_methods.patchmatch import PatchMatch
1617
from invokeai.backend.util.logging import logging
1718
from invokeai.version import __version__
1819

19-
from ..dependencies import ApiDependencies
20-
2120

2221
class LogLevel(int, Enum):
2322
NotSet = logging.NOTSET

invokeai/app/api/routers/board_images.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from fastapi.routing import APIRouter
33
from pydantic import BaseModel, Field
44

5-
from ..dependencies import ApiDependencies
5+
from invokeai.app.api.dependencies import ApiDependencies
66

77
board_images_router = APIRouter(prefix="/v1/board_images", tags=["boards"])
88

invokeai/app/api/routers/boards.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
from fastapi.routing import APIRouter
55
from pydantic import BaseModel, Field
66

7+
from invokeai.app.api.dependencies import ApiDependencies
78
from invokeai.app.services.board_records.board_records_common import BoardChanges
89
from invokeai.app.services.boards.boards_common import BoardDTO
910
from invokeai.app.services.shared.pagination import OffsetPaginatedResults
1011

11-
from ..dependencies import ApiDependencies
12-
1312
boards_router = APIRouter(prefix="/v1/boards", tags=["boards"])
1413

1514

invokeai/app/api/routers/download_queue.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@
88
from pydantic.networks import AnyHttpUrl
99
from starlette.exceptions import HTTPException
1010

11+
from invokeai.app.api.dependencies import ApiDependencies
1112
from invokeai.app.services.download import (
1213
DownloadJob,
1314
UnknownJobIDException,
1415
)
1516

16-
from ..dependencies import ApiDependencies
17-
1817
download_queue_router = APIRouter(prefix="/v1/download_queue", tags=["download_queue"])
1918

2019

invokeai/app/api/routers/images.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from PIL import Image
99
from pydantic import BaseModel, Field, JsonValue
1010

11+
from invokeai.app.api.dependencies import ApiDependencies
1112
from invokeai.app.invocations.fields import MetadataField
1213
from invokeai.app.services.image_records.image_records_common import (
1314
ImageCategory,
@@ -18,8 +19,6 @@
1819
from invokeai.app.services.shared.pagination import OffsetPaginatedResults
1920
from invokeai.app.services.shared.sqlite.sqlite_common import SQLiteDirection
2021

21-
from ..dependencies import ApiDependencies
22-
2322
images_router = APIRouter(prefix="/v1/images", tags=["images"])
2423

2524

invokeai/app/api/routers/model_manager.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from starlette.exceptions import HTTPException
1717
from typing_extensions import Annotated
1818

19+
from invokeai.app.api.dependencies import ApiDependencies
1920
from invokeai.app.services.model_images.model_images_common import ModelImageFileNotFoundException
2021
from invokeai.app.services.model_install.model_install_common import ModelInstallJob
2122
from invokeai.app.services.model_records import (
@@ -35,8 +36,6 @@
3536
from invokeai.backend.model_manager.search import ModelSearch
3637
from invokeai.backend.model_manager.starter_models import STARTER_MODELS, StarterModel, StarterModelWithoutDependencies
3738

38-
from ..dependencies import ApiDependencies
39-
4039
model_manager_router = APIRouter(prefix="/v2/models", tags=["model_manager"])
4140

4241
# images are immutable; set a high max-age

invokeai/app/api/routers/session_queue.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from fastapi.routing import APIRouter
55
from pydantic import BaseModel
66

7+
from invokeai.app.api.dependencies import ApiDependencies
78
from invokeai.app.services.session_processor.session_processor_common import SessionProcessorStatus
89
from invokeai.app.services.session_queue.session_queue_common import (
910
QUEUE_ITEM_STATUS,
@@ -19,8 +20,6 @@
1920
)
2021
from invokeai.app.services.shared.pagination import CursorPaginatedResults
2122

22-
from ..dependencies import ApiDependencies
23-
2423
session_queue_router = APIRouter(prefix="/v1/queue", tags=["queue"])
2524

2625

invokeai/app/api_app.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,9 @@
2020
# noinspection PyUnresolvedReferences
2121
import invokeai.backend.util.hotfixes # noqa: F401 (monkeypatching on import)
2222
import invokeai.frontend.web as web_dir
23+
from invokeai.app.api.dependencies import ApiDependencies
2324
from invokeai.app.api.no_cache_staticfiles import NoCacheStaticFiles
24-
from invokeai.app.services.config.config_default import get_config
25-
from invokeai.app.util.custom_openapi import get_openapi_func
26-
from invokeai.backend.util.devices import TorchDevice
27-
28-
from ..backend.util.logging import InvokeAILogger
29-
from .api.dependencies import ApiDependencies
30-
from .api.routers import (
25+
from invokeai.app.api.routers import (
3126
app_info,
3227
board_images,
3328
boards,
@@ -38,7 +33,11 @@
3833
utilities,
3934
workflows,
4035
)
41-
from .api.sockets import SocketIO
36+
from invokeai.app.api.sockets import SocketIO
37+
from invokeai.app.services.config.config_default import get_config
38+
from invokeai.app.util.custom_openapi import get_openapi_func
39+
from invokeai.backend.util.devices import TorchDevice
40+
from invokeai.backend.util.logging import InvokeAILogger
4241

4342
app_config = get_config()
4443

invokeai/app/invocations/baseinvocation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
from invokeai.backend.util.logging import InvokeAILogger
4141

4242
if TYPE_CHECKING:
43-
from ..services.invocation_services import InvocationServices
43+
from invokeai.app.services.invocation_services import InvocationServices
4444

4545
logger = InvokeAILogger.get_logger()
4646

0 commit comments

Comments
 (0)