From 6d94aa1f9f8daec8ef322258ec04b0c1676f3419 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sat, 12 Sep 2026 03:20:50 +0300 Subject: [PATCH] =?UTF-8?q?:rotating=5Flight:=20fix(lint):=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=8F=D0=B4=D0=BE=D0=BA=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=20=D0=BF=D0=BE=20=D0=BA=D0=BE=D0=BD=D1=84?= =?UTF-8?q?=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D0=BA=D0=BE=D1=80=D0=BD=D1=8F=20=D1=80=D0=B5=D0=BF=D0=BE?= =?UTF-8?q?=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проверка ruff в контейнере шла из /app/apps/backend, где корневого pyproject.toml нет, — правило I (сортировка импортов) там просто не применялось, и CI поймал то, что локальный прогон пропустил. Правки чисто механические: порядок импортов и пустые строки, оставшиеся от удалённых констант. Co-Authored-By: Claude Opus 5 --- apps/backend/chatballs/ai/provider/routing.py | 2 +- apps/backend/chatballs/calls/event_handlers.py | 2 +- apps/backend/chatballs/conversations/services.py | 5 ----- apps/backend/chatballs/identity/demo_seed/orchestrator.py | 2 +- apps/backend/chatballs/integrations/outbound.py | 4 ++-- apps/backend/chatballs/integrations/tests.py | 2 +- apps/backend/chatballs/notifications/binding.py | 2 +- 7 files changed, 7 insertions(+), 12 deletions(-) diff --git a/apps/backend/chatballs/ai/provider/routing.py b/apps/backend/chatballs/ai/provider/routing.py index dfb633e..544b37f 100644 --- a/apps/backend/chatballs/ai/provider/routing.py +++ b/apps/backend/chatballs/ai/provider/routing.py @@ -21,11 +21,11 @@ at runtime and overrides `AIAgent.model`. from __future__ import annotations -from chatballs.i18n import t from chatballs.ai.provider.base import LLMProvider, ProviderError from chatballs.ai.provider.custom import CustomProvider from chatballs.ai.provider.demo import DemoProvider from chatballs.ai.provider.openrouter import OpenRouterProvider +from chatballs.i18n import t from chatballs.integrations.models import Integration, IntegrationProvider diff --git a/apps/backend/chatballs/calls/event_handlers.py b/apps/backend/chatballs/calls/event_handlers.py index 216ce27..bb68718 100644 --- a/apps/backend/chatballs/calls/event_handlers.py +++ b/apps/backend/chatballs/calls/event_handlers.py @@ -14,8 +14,8 @@ from chatballs.calls.models import CallInvite, CallSession, CallStatus, InviteDe from chatballs.calls.services import CALL_INVITE_SEND from chatballs.calls.tokens import issue_invite_token from chatballs.conversations import transports -from chatballs.i18n import customer_language, t from chatballs.events.handlers import register +from chatballs.i18n import customer_language, t from chatballs.identity.instance_settings import public_base_url from chatballs.tenancy.context import TenantContext diff --git a/apps/backend/chatballs/conversations/services.py b/apps/backend/chatballs/conversations/services.py index 982c6fd..7276888 100644 --- a/apps/backend/chatballs/conversations/services.py +++ b/apps/backend/chatballs/conversations/services.py @@ -19,11 +19,6 @@ from chatballs.integrations.models import IntegrationProvider from chatballs.tenancy.context import TenantContext - - - - - class ClaimError(Exception): pass diff --git a/apps/backend/chatballs/identity/demo_seed/orchestrator.py b/apps/backend/chatballs/identity/demo_seed/orchestrator.py index 958cb4e..f695050 100644 --- a/apps/backend/chatballs/identity/demo_seed/orchestrator.py +++ b/apps/backend/chatballs/identity/demo_seed/orchestrator.py @@ -8,6 +8,7 @@ foundation → channels/ai → support → conversations → operations. from __future__ import annotations +from chatballs.i18n import customer_language from chatballs.identity.demo_seed.loaders import ( channels_ai as channels_ai_loader, ) @@ -23,7 +24,6 @@ from chatballs.identity.demo_seed.loaders import ( from chatballs.identity.demo_seed.loaders import ( support as support_loader, ) -from chatballs.i18n import customer_language from chatballs.identity.demo_seed.refs import DemoRefs from chatballs.tenancy.context import TenantContext diff --git a/apps/backend/chatballs/integrations/outbound.py b/apps/backend/chatballs/integrations/outbound.py index 5c535fc..b827416 100644 --- a/apps/backend/chatballs/integrations/outbound.py +++ b/apps/backend/chatballs/integrations/outbound.py @@ -18,12 +18,12 @@ OpenAI-совместимый сервер или собственный Bot API from __future__ import annotations -from chatballs.i18n import t - import ipaddress import socket from urllib.parse import urlsplit +from chatballs.i18n import t + HTTP_SCHEMES = frozenset({"http", "https"}) PROXY_SCHEMES = frozenset({"http", "https", "socks5", "socks5h"}) diff --git a/apps/backend/chatballs/integrations/tests.py b/apps/backend/chatballs/integrations/tests.py index 5f9739e..21d8ac5 100644 --- a/apps/backend/chatballs/integrations/tests.py +++ b/apps/backend/chatballs/integrations/tests.py @@ -5,9 +5,9 @@ from unittest import mock from django.core.exceptions import ValidationError from django.test import TestCase +from chatballs.i18n import tn from chatballs.identity.bootstrap import bootstrap_owner from chatballs.identity.models import Organization -from chatballs.i18n import tn from chatballs.integrations import checks from chatballs.integrations.models import ( Integration, diff --git a/apps/backend/chatballs/notifications/binding.py b/apps/backend/chatballs/notifications/binding.py index 012d3cf..9b3e33a 100644 --- a/apps/backend/chatballs/notifications/binding.py +++ b/apps/backend/chatballs/notifications/binding.py @@ -16,8 +16,8 @@ from django.utils import timezone from chatballs.conversations import transports from chatballs.conversations.transports.base import InboundMessage -from chatballs.integrations.models import Integration, IntegrationKind, IntegrationProvider from chatballs.i18n import customer_language, first_chosen, normalize_language, t +from chatballs.integrations.models import Integration, IntegrationKind, IntegrationProvider from chatballs.notifications.models import MessengerBinding, MessengerBindingCode logger = logging.getLogger(__name__)