fix(lint): pin ruff version, add pre-commit hook, fix all lint errors
Some checks failed
Some checks failed
- Pin ruff==0.8.4 in requirements-dev.txt (was >=0.8.4, CI got newer version with different import sorting rules) - Add ruff to .pre-commit-config.yaml with --fix to auto-sort imports on commit (prevents PyCharm import reordering from reaching CI) - Fix I001 import sorting in 6 files - Fix F401 unused import (sqlalchemy.Numeric in subscription.py) - Fix noqa false positive in validate_architecture.py comment Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,15 +29,9 @@ repos:
|
||||
- id: check-merge-conflict
|
||||
- id: debug-statements
|
||||
|
||||
# Python formatting (optional - uncomment if you want)
|
||||
# - repo: https://github.com/psf/black
|
||||
# rev: 23.12.1
|
||||
# hooks:
|
||||
# - id: black
|
||||
# language_version: python3
|
||||
|
||||
# Python import sorting (optional)
|
||||
# - repo: https://github.com/pycqa/isort
|
||||
# rev: 5.13.2
|
||||
# hooks:
|
||||
# - id: isort
|
||||
# Ruff - linting and import sorting (replaces black + isort)
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: v0.8.4
|
||||
hooks:
|
||||
- id: ruff
|
||||
args: [--fix, --exit-non-zero-on-fix]
|
||||
|
||||
@@ -21,7 +21,10 @@ from sqlalchemy.orm import Session
|
||||
from app.modules.catalog.models import Product # IMPORT-002
|
||||
from app.modules.customers.models.customer import Customer # IMPORT-002
|
||||
from app.modules.inventory.models import Inventory # IMPORT-002
|
||||
from app.modules.marketplace.models import MarketplaceImportJob, MarketplaceProduct # IMPORT-002
|
||||
from app.modules.marketplace.models import ( # IMPORT-002
|
||||
MarketplaceImportJob,
|
||||
MarketplaceProduct,
|
||||
)
|
||||
from app.modules.orders.models import Order # IMPORT-002
|
||||
from app.modules.tenancy.exceptions import (
|
||||
AdminOperationException,
|
||||
|
||||
@@ -22,7 +22,6 @@ from sqlalchemy import (
|
||||
ForeignKey,
|
||||
Index,
|
||||
Integer,
|
||||
Numeric,
|
||||
String,
|
||||
Text,
|
||||
)
|
||||
|
||||
@@ -21,8 +21,6 @@ from app.modules.billing.schemas.billing import (
|
||||
CancelRequest,
|
||||
CancelResponse,
|
||||
CategoryListResponse,
|
||||
ChangeTierRequest as BillingChangeTierRequest,
|
||||
ChangeTierResponse as BillingChangeTierResponse,
|
||||
# Checkout & Portal schemas
|
||||
CheckoutRequest,
|
||||
CheckoutResponse,
|
||||
@@ -56,12 +54,18 @@ from app.modules.billing.schemas.billing import (
|
||||
SubscriptionTierListResponse,
|
||||
SubscriptionTierResponse,
|
||||
SubscriptionTierUpdate,
|
||||
TierListResponse,
|
||||
TierResponse,
|
||||
# Subscription Tier Admin schemas
|
||||
TierFeatureLimitEntry,
|
||||
TierListResponse,
|
||||
TierResponse,
|
||||
UpcomingInvoiceResponse,
|
||||
)
|
||||
from app.modules.billing.schemas.billing import (
|
||||
ChangeTierRequest as BillingChangeTierRequest,
|
||||
)
|
||||
from app.modules.billing.schemas.billing import (
|
||||
ChangeTierResponse as BillingChangeTierResponse,
|
||||
)
|
||||
from app.modules.billing.schemas.subscription import (
|
||||
ChangeTierRequest,
|
||||
ChangeTierResponse,
|
||||
|
||||
@@ -32,7 +32,10 @@ from app.modules.messaging.exceptions import (
|
||||
ConversationClosedException,
|
||||
ConversationNotFoundException,
|
||||
)
|
||||
from app.modules.messaging.models.message import ConversationType, ParticipantType # API-007
|
||||
from app.modules.messaging.models.message import ( # API-007
|
||||
ConversationType,
|
||||
ParticipantType,
|
||||
)
|
||||
from app.modules.messaging.schemas import (
|
||||
ConversationDetailResponse,
|
||||
ConversationListResponse,
|
||||
|
||||
@@ -5,10 +5,9 @@ Monitoring module database models.
|
||||
Provides monitoring-related models including capacity snapshots.
|
||||
"""
|
||||
|
||||
from app.modules.monitoring.models.capacity_snapshot import CapacitySnapshot
|
||||
|
||||
# Admin notification and logging models
|
||||
from app.modules.messaging.models import AdminNotification
|
||||
from app.modules.monitoring.models.capacity_snapshot import CapacitySnapshot
|
||||
from app.modules.tenancy.models import PlatformAlert
|
||||
|
||||
__all__ = [
|
||||
|
||||
@@ -9,14 +9,14 @@ from app.modules.monitoring.services.admin_audit_service import (
|
||||
AdminAuditService,
|
||||
admin_audit_service,
|
||||
)
|
||||
from app.modules.monitoring.services.capacity_forecast_service import (
|
||||
CapacityForecastService,
|
||||
capacity_forecast_service,
|
||||
)
|
||||
from app.modules.monitoring.services.background_tasks_service import (
|
||||
BackgroundTasksService,
|
||||
background_tasks_service,
|
||||
)
|
||||
from app.modules.monitoring.services.capacity_forecast_service import (
|
||||
CapacityForecastService,
|
||||
capacity_forecast_service,
|
||||
)
|
||||
from app.modules.monitoring.services.log_service import (
|
||||
LogService,
|
||||
log_service,
|
||||
|
||||
2
main.py
2
main.py
@@ -26,11 +26,11 @@ from fastapi import Depends, FastAPI, HTTPException, Request, Response
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import FileResponse, HTMLResponse, RedirectResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware
|
||||
from sentry_sdk.integrations.fastapi import FastApiIntegration
|
||||
from sentry_sdk.integrations.sqlalchemy import SqlalchemyIntegration
|
||||
from sqlalchemy import text
|
||||
from sqlalchemy.orm import Session
|
||||
from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware
|
||||
|
||||
from app.api.main import api_router
|
||||
from app.core.config import settings
|
||||
|
||||
@@ -5,7 +5,7 @@ alembic>=1.14.0
|
||||
# Linting and formatting tools
|
||||
black>=24.10.0
|
||||
isort>=5.13.2
|
||||
ruff>=0.8.4 # Modern alternative to flake8, faster and Python 3.13 compatible
|
||||
ruff==0.8.4 # Pinned — must match pre-commit hook and local version
|
||||
mypy>=1.13.0
|
||||
|
||||
# Optional: More advanced linting (if you prefer flake8 over ruff)
|
||||
|
||||
@@ -4663,7 +4663,7 @@ class ArchitectureValidator:
|
||||
if imported_module == module_name:
|
||||
continue
|
||||
|
||||
# Skip suppression comments (# IMPORT-002 or # noqa: import-002)
|
||||
# Skip suppression comments (# IMPORT-002)
|
||||
if "import-002" in line.lower():
|
||||
continue
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ from main import app
|
||||
from tests.integration.middleware.middleware_test_routes import (
|
||||
admin_router,
|
||||
api_router,
|
||||
storefront_router,
|
||||
store_router,
|
||||
storefront_router,
|
||||
)
|
||||
from tests.integration.middleware.middleware_test_routes import (
|
||||
router as test_router,
|
||||
|
||||
Reference in New Issue
Block a user