fix(lint): auto-fix ruff violations and tune lint rules
- Auto-fixed 4,496 lint issues (import sorting, modern syntax, etc.) - Added ignore rules for patterns intentional in this codebase: E402 (late imports), E712 (SQLAlchemy filters), B904 (raise from), SIM108/SIM105/SIM117 (readability preferences) - Added per-file ignores for tests and scripts - Excluded broken scripts/rename_terminology.py (has curly quotes) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -25,7 +25,7 @@ def __getattr__(name: str):
|
||||
from app.modules.customers.definition import customers_module
|
||||
|
||||
return customers_module
|
||||
elif name == "get_customers_module_with_routers":
|
||||
if name == "get_customers_module_with_routers":
|
||||
from app.modules.customers.definition import get_customers_module_with_routers
|
||||
|
||||
return get_customers_module_with_routers
|
||||
|
||||
@@ -31,14 +31,18 @@ def _get_store_router():
|
||||
|
||||
def _get_metrics_provider():
|
||||
"""Lazy import of metrics provider to avoid circular imports."""
|
||||
from app.modules.customers.services.customer_metrics import customer_metrics_provider
|
||||
from app.modules.customers.services.customer_metrics import (
|
||||
customer_metrics_provider,
|
||||
)
|
||||
|
||||
return customer_metrics_provider
|
||||
|
||||
|
||||
def _get_feature_provider():
|
||||
"""Lazy import of feature provider to avoid circular imports."""
|
||||
from app.modules.customers.services.customer_features import customer_feature_provider
|
||||
from app.modules.customers.services.customer_features import (
|
||||
customer_feature_provider,
|
||||
)
|
||||
|
||||
return customer_feature_provider
|
||||
|
||||
|
||||
@@ -4,9 +4,10 @@ Revision ID: customers_001
|
||||
Revises: catalog_001
|
||||
Create Date: 2026-02-07
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
from alembic import op
|
||||
|
||||
revision = "customers_001"
|
||||
down_revision = "catalog_001"
|
||||
branch_labels = None
|
||||
|
||||
@@ -22,7 +22,7 @@ def __getattr__(name: str):
|
||||
if name == "admin_router":
|
||||
from app.modules.customers.routes.admin import admin_router
|
||||
return admin_router
|
||||
elif name == "store_router":
|
||||
if name == "store_router":
|
||||
from app.modules.customers.routes.store import store_router
|
||||
return store_router
|
||||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
||||
|
||||
@@ -19,7 +19,7 @@ def __getattr__(name: str):
|
||||
if name == "admin_router":
|
||||
from app.modules.customers.routes.api.admin import admin_router
|
||||
return admin_router
|
||||
elif name == "store_router":
|
||||
if name == "store_router":
|
||||
from app.modules.customers.routes.api.store import store_router
|
||||
return store_router
|
||||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
||||
|
||||
@@ -10,15 +10,15 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from app.api.deps import get_current_admin_api, require_module_access
|
||||
from app.core.database import get_db
|
||||
from app.modules.customers.services import admin_customer_service
|
||||
from app.modules.enums import FrontendType
|
||||
from models.schema.auth import UserContext
|
||||
from app.modules.customers.schemas import (
|
||||
CustomerDetailResponse,
|
||||
CustomerListResponse,
|
||||
CustomerMessageResponse,
|
||||
CustomerStatisticsResponse,
|
||||
)
|
||||
from app.modules.customers.services import admin_customer_service
|
||||
from app.modules.enums import FrontendType
|
||||
from models.schema.auth import UserContext
|
||||
|
||||
# Create module-aware router
|
||||
admin_router = APIRouter(
|
||||
|
||||
@@ -13,9 +13,6 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from app.api.deps import get_current_store_api, require_module_access
|
||||
from app.core.database import get_db
|
||||
from app.modules.customers.services import customer_service
|
||||
from app.modules.enums import FrontendType
|
||||
from models.schema.auth import UserContext
|
||||
from app.modules.customers.schemas import (
|
||||
CustomerDetailResponse,
|
||||
CustomerMessageResponse,
|
||||
@@ -23,6 +20,9 @@ from app.modules.customers.schemas import (
|
||||
CustomerUpdate,
|
||||
StoreCustomerListResponse,
|
||||
)
|
||||
from app.modules.customers.services import customer_service
|
||||
from app.modules.enums import FrontendType
|
||||
from models.schema.auth import UserContext
|
||||
|
||||
# Create module-aware router
|
||||
store_router = APIRouter(
|
||||
|
||||
@@ -24,31 +24,35 @@ from app.api.deps import get_current_customer_api
|
||||
from app.core.database import get_db
|
||||
from app.core.environment import should_use_secure_cookies
|
||||
from app.exceptions import ValidationException
|
||||
from app.modules.tenancy.exceptions import StoreNotFoundException
|
||||
from app.modules.customers.schemas import CustomerContext
|
||||
from app.modules.customers.services import (
|
||||
customer_address_service,
|
||||
customer_service,
|
||||
from app.modules.core.services.auth_service import (
|
||||
AuthService, # noqa: MOD-004 - Core auth service
|
||||
)
|
||||
from app.modules.core.services.auth_service import AuthService # noqa: MOD-004 - Core auth service
|
||||
from app.modules.messaging.services.email_service import EmailService # noqa: MOD-004 - Core email service
|
||||
from app.modules.customers.models import PasswordResetToken
|
||||
from models.schema.auth import (
|
||||
LogoutResponse,
|
||||
PasswordResetRequestResponse,
|
||||
PasswordResetResponse,
|
||||
UserLogin,
|
||||
)
|
||||
from app.modules.customers.schemas import (
|
||||
CustomerAddressCreate,
|
||||
CustomerAddressListResponse,
|
||||
CustomerAddressResponse,
|
||||
CustomerAddressUpdate,
|
||||
CustomerContext,
|
||||
CustomerPasswordChange,
|
||||
CustomerRegister,
|
||||
CustomerResponse,
|
||||
CustomerUpdate,
|
||||
)
|
||||
from app.modules.customers.services import (
|
||||
customer_address_service,
|
||||
customer_service,
|
||||
)
|
||||
from app.modules.messaging.services.email_service import (
|
||||
EmailService, # noqa: MOD-004 - Core email service
|
||||
)
|
||||
from app.modules.tenancy.exceptions import StoreNotFoundException
|
||||
from models.schema.auth import (
|
||||
LogoutResponse,
|
||||
PasswordResetRequestResponse,
|
||||
PasswordResetResponse,
|
||||
UserLogin,
|
||||
)
|
||||
|
||||
router = APIRouter()
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -12,9 +12,9 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from app.api.deps import get_db, require_menu_access
|
||||
from app.modules.core.utils.page_context import get_admin_context
|
||||
from app.templates_config import templates
|
||||
from app.modules.enums import FrontendType
|
||||
from app.modules.tenancy.models import User
|
||||
from app.templates_config import templates
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from app.api.deps import get_current_store_from_cookie_or_header, get_db
|
||||
from app.modules.core.utils.page_context import get_store_context
|
||||
from app.templates_config import templates
|
||||
from app.modules.tenancy.models import User
|
||||
from app.templates_config import templates
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -15,31 +15,31 @@ Usage:
|
||||
|
||||
from app.modules.customers.schemas.context import CustomerContext
|
||||
from app.modules.customers.schemas.customer import (
|
||||
# Registration & Authentication
|
||||
CustomerRegister,
|
||||
CustomerUpdate,
|
||||
CustomerPasswordChange,
|
||||
# Customer Response
|
||||
CustomerResponse,
|
||||
CustomerListResponse,
|
||||
# Address
|
||||
CustomerAddressCreate,
|
||||
CustomerAddressUpdate,
|
||||
CustomerAddressResponse,
|
||||
CustomerAddressListResponse,
|
||||
# Preferences
|
||||
CustomerPreferencesUpdate,
|
||||
# Store Management
|
||||
CustomerMessageResponse,
|
||||
StoreCustomerListResponse,
|
||||
CustomerDetailResponse,
|
||||
CustomerOrderInfo,
|
||||
CustomerOrdersResponse,
|
||||
CustomerStatisticsResponse,
|
||||
AdminCustomerDetailResponse,
|
||||
# Admin Management
|
||||
AdminCustomerItem,
|
||||
AdminCustomerListResponse,
|
||||
AdminCustomerDetailResponse,
|
||||
# Address
|
||||
CustomerAddressCreate,
|
||||
CustomerAddressListResponse,
|
||||
CustomerAddressResponse,
|
||||
CustomerAddressUpdate,
|
||||
CustomerDetailResponse,
|
||||
CustomerListResponse,
|
||||
# Store Management
|
||||
CustomerMessageResponse,
|
||||
CustomerOrderInfo,
|
||||
CustomerOrdersResponse,
|
||||
CustomerPasswordChange,
|
||||
# Preferences
|
||||
CustomerPreferencesUpdate,
|
||||
# Registration & Authentication
|
||||
CustomerRegister,
|
||||
# Customer Response
|
||||
CustomerResponse,
|
||||
CustomerStatisticsResponse,
|
||||
CustomerUpdate,
|
||||
StoreCustomerListResponse,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
|
||||
@@ -14,7 +14,6 @@ from decimal import Decimal
|
||||
|
||||
from pydantic import BaseModel, EmailStr, Field, field_validator
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Customer Registration & Authentication
|
||||
# ============================================================================
|
||||
@@ -339,4 +338,3 @@ class AdminCustomerListResponse(BaseModel):
|
||||
class AdminCustomerDetailResponse(AdminCustomerItem):
|
||||
"""Detailed customer response for admin."""
|
||||
|
||||
pass
|
||||
|
||||
@@ -12,17 +12,17 @@ Usage:
|
||||
)
|
||||
"""
|
||||
|
||||
from app.modules.customers.services.customer_service import (
|
||||
customer_service,
|
||||
CustomerService,
|
||||
)
|
||||
from app.modules.customers.services.admin_customer_service import (
|
||||
admin_customer_service,
|
||||
AdminCustomerService,
|
||||
admin_customer_service,
|
||||
)
|
||||
from app.modules.customers.services.customer_address_service import (
|
||||
customer_address_service,
|
||||
CustomerAddressService,
|
||||
customer_address_service,
|
||||
)
|
||||
from app.modules.customers.services.customer_service import (
|
||||
CustomerService,
|
||||
customer_service,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
|
||||
@@ -13,7 +13,6 @@ from typing import TYPE_CHECKING
|
||||
|
||||
from app.modules.contracts.features import (
|
||||
FeatureDeclaration,
|
||||
FeatureProviderProtocol,
|
||||
FeatureScope,
|
||||
FeatureType,
|
||||
FeatureUsage,
|
||||
|
||||
@@ -16,9 +16,8 @@ from sqlalchemy import func
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.modules.contracts.metrics import (
|
||||
MetricValue,
|
||||
MetricsContext,
|
||||
MetricsProviderProtocol,
|
||||
MetricValue,
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
|
||||
@@ -13,6 +13,7 @@ from typing import Any
|
||||
from sqlalchemy import and_
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.modules.core.services.auth_service import AuthService
|
||||
from app.modules.customers.exceptions import (
|
||||
CustomerNotActiveException,
|
||||
CustomerNotFoundException,
|
||||
@@ -22,10 +23,12 @@ from app.modules.customers.exceptions import (
|
||||
InvalidPasswordResetTokenException,
|
||||
PasswordTooShortException,
|
||||
)
|
||||
from app.modules.tenancy.exceptions import StoreNotActiveException, StoreNotFoundException
|
||||
from app.modules.core.services.auth_service import AuthService
|
||||
from app.modules.customers.models import Customer, PasswordResetToken
|
||||
from app.modules.customers.schemas import CustomerRegister, CustomerUpdate
|
||||
from app.modules.tenancy.exceptions import (
|
||||
StoreNotActiveException,
|
||||
StoreNotFoundException,
|
||||
)
|
||||
from app.modules.tenancy.models import Store
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -8,8 +8,8 @@ from decimal import Decimal
|
||||
import pytest
|
||||
|
||||
from app.modules.customers.exceptions import CustomerNotFoundException
|
||||
from app.modules.customers.services.admin_customer_service import AdminCustomerService
|
||||
from app.modules.customers.models.customer import Customer
|
||||
from app.modules.customers.services.admin_customer_service import AdminCustomerService
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
@@ -5,10 +5,15 @@ Unit tests for CustomerAddressService.
|
||||
|
||||
import pytest
|
||||
|
||||
from app.modules.customers.exceptions import AddressLimitExceededException, AddressNotFoundException
|
||||
from app.modules.customers.services.customer_address_service import CustomerAddressService
|
||||
from app.modules.customers.exceptions import (
|
||||
AddressLimitExceededException,
|
||||
AddressNotFoundException,
|
||||
)
|
||||
from app.modules.customers.models.customer import CustomerAddress
|
||||
from app.modules.customers.schemas import CustomerAddressCreate, CustomerAddressUpdate
|
||||
from app.modules.customers.services.customer_address_service import (
|
||||
CustomerAddressService,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
Reference in New Issue
Block a user