From be35738997d40e0f7b2fbed75fe15a915be82244 Mon Sep 17 00:00:00 2001 From: Deeman Date: Fri, 13 Feb 2026 16:00:37 +0100 Subject: [PATCH] fix ruff lint errors across all source files Auto-fixed import sorting (I001) and unused imports (F401) via ruff --fix. Manually fixed unused variable month_ago (F841) and lambda assignment (E731). Co-Authored-By: Claude Opus 4.6 --- padelnomics/src/padelnomics/admin/routes.py | 8 +++----- padelnomics/src/padelnomics/app.py | 11 ++++++----- padelnomics/src/padelnomics/auth/routes.py | 6 +++--- padelnomics/src/padelnomics/billing/routes.py | 11 ++--------- padelnomics/src/padelnomics/core.py | 15 ++++++++------- padelnomics/src/padelnomics/dashboard/routes.py | 4 ++-- padelnomics/src/padelnomics/leads/routes.py | 4 ++-- padelnomics/src/padelnomics/migrations/migrate.py | 4 ++-- padelnomics/src/padelnomics/planner/calculator.py | 4 +++- padelnomics/src/padelnomics/planner/routes.py | 4 ++-- padelnomics/src/padelnomics/public/routes.py | 2 +- padelnomics/src/padelnomics/worker.py | 3 +-- 12 files changed, 35 insertions(+), 41 deletions(-) diff --git a/padelnomics/src/padelnomics/admin/routes.py b/padelnomics/src/padelnomics/admin/routes.py index 67afad9..ad2783f 100644 --- a/padelnomics/src/padelnomics/admin/routes.py +++ b/padelnomics/src/padelnomics/admin/routes.py @@ -2,13 +2,13 @@ Admin domain: password-protected admin panel for managing users, tasks, etc. """ import secrets -from functools import wraps from datetime import datetime, timedelta +from functools import wraps from pathlib import Path -from quart import Blueprint, render_template, request, redirect, url_for, flash, session, g +from quart import Blueprint, flash, redirect, render_template, request, session, url_for -from ..core import config, fetch_one, fetch_all, execute, csrf_protect +from ..core import config, csrf_protect, execute, fetch_all, fetch_one # Blueprint with its own template folder bp = Blueprint( @@ -42,8 +42,6 @@ async def get_dashboard_stats() -> dict: now = datetime.utcnow() today = now.date().isoformat() week_ago = (now - timedelta(days=7)).isoformat() - month_ago = (now - timedelta(days=30)).isoformat() - users_total = await fetch_one("SELECT COUNT(*) as count FROM users WHERE deleted_at IS NULL") users_today = await fetch_one( "SELECT COUNT(*) as count FROM users WHERE created_at >= ? AND deleted_at IS NULL", diff --git a/padelnomics/src/padelnomics/app.py b/padelnomics/src/padelnomics/app.py index 6fde9f3..3947f84 100644 --- a/padelnomics/src/padelnomics/app.py +++ b/padelnomics/src/padelnomics/app.py @@ -1,10 +1,11 @@ """ Padelnomics - Application factory and entry point. """ -from quart import Quart, g, session from pathlib import Path -from .core import config, init_db, close_db, get_csrf_token, setup_request_id +from quart import Quart, g, session + +from .core import close_db, config, get_csrf_token, init_db, setup_request_id def create_app() -> Quart: @@ -76,13 +77,13 @@ def create_app() -> Quart: return {"status": "unhealthy", "db": str(e)}, 500 # Register blueprints + from .admin.routes import bp as admin_bp from .auth.routes import bp as auth_bp from .billing.routes import bp as billing_bp from .dashboard.routes import bp as dashboard_bp - from .public.routes import bp as public_bp - from .planner.routes import bp as planner_bp from .leads.routes import bp as leads_bp - from .admin.routes import bp as admin_bp + from .planner.routes import bp as planner_bp + from .public.routes import bp as public_bp app.register_blueprint(public_bp) app.register_blueprint(auth_bp) diff --git a/padelnomics/src/padelnomics/auth/routes.py b/padelnomics/src/padelnomics/auth/routes.py index bb0eebd..c1d8501 100644 --- a/padelnomics/src/padelnomics/auth/routes.py +++ b/padelnomics/src/padelnomics/auth/routes.py @@ -2,13 +2,13 @@ Auth domain: magic link authentication, user management, decorators. """ import secrets -from functools import wraps from datetime import datetime, timedelta +from functools import wraps from pathlib import Path -from quart import Blueprint, render_template, request, redirect, url_for, session, flash, g +from quart import Blueprint, flash, g, redirect, render_template, request, session, url_for -from ..core import config, fetch_one, fetch_all, execute, csrf_protect +from ..core import config, csrf_protect, execute, fetch_one # Blueprint with its own template folder bp = Blueprint( diff --git a/padelnomics/src/padelnomics/billing/routes.py b/padelnomics/src/padelnomics/billing/routes.py index f4e3581..ef5b227 100644 --- a/padelnomics/src/padelnomics/billing/routes.py +++ b/padelnomics/src/padelnomics/billing/routes.py @@ -8,18 +8,11 @@ from datetime import datetime from functools import wraps from pathlib import Path -from quart import Blueprint, render_template, request, redirect, url_for, flash, g, jsonify, session - import httpx - - -from ..core import config, fetch_one, fetch_all, execute - -from ..core import verify_hmac_signature +from quart import Blueprint, flash, g, jsonify, redirect, render_template, request, session, url_for from ..auth.routes import login_required - - +from ..core import config, execute, fetch_one, verify_hmac_signature # Blueprint with its own template folder bp = Blueprint( diff --git a/padelnomics/src/padelnomics/core.py b/padelnomics/src/padelnomics/core.py index 8bbb803..d80585c 100644 --- a/padelnomics/src/padelnomics/core.py +++ b/padelnomics/src/padelnomics/core.py @@ -1,18 +1,19 @@ """ Core infrastructure: database, config, email, and shared utilities. """ -import os -import secrets import hashlib import hmac +import os +import secrets +from contextvars import ContextVar +from datetime import datetime, timedelta +from functools import wraps +from pathlib import Path + import aiosqlite import httpx -from pathlib import Path -from functools import wraps -from datetime import datetime, timedelta -from contextvars import ContextVar -from quart import request, session, g from dotenv import load_dotenv +from quart import g, request, session load_dotenv() diff --git a/padelnomics/src/padelnomics/dashboard/routes.py b/padelnomics/src/padelnomics/dashboard/routes.py index 93b713f..4a87884 100644 --- a/padelnomics/src/padelnomics/dashboard/routes.py +++ b/padelnomics/src/padelnomics/dashboard/routes.py @@ -4,10 +4,10 @@ Dashboard domain: user dashboard and settings. from datetime import datetime from pathlib import Path -from quart import Blueprint, render_template, request, redirect, url_for, flash, g +from quart import Blueprint, flash, g, redirect, render_template, request, url_for -from ..core import fetch_one, csrf_protect, soft_delete from ..auth.routes import login_required, update_user +from ..core import csrf_protect, fetch_one, soft_delete bp = Blueprint( "dashboard", diff --git a/padelnomics/src/padelnomics/leads/routes.py b/padelnomics/src/padelnomics/leads/routes.py index f1c9153..d966dca 100644 --- a/padelnomics/src/padelnomics/leads/routes.py +++ b/padelnomics/src/padelnomics/leads/routes.py @@ -4,10 +4,10 @@ Leads domain: capture interest in court suppliers and financing. from datetime import datetime from pathlib import Path -from quart import Blueprint, render_template, request, flash, redirect, url_for, g +from quart import Blueprint, flash, g, redirect, render_template, request, url_for -from ..core import config, execute, fetch_one, csrf_protect, send_email from ..auth.routes import login_required +from ..core import config, csrf_protect, execute, fetch_one, send_email bp = Blueprint( "leads", diff --git a/padelnomics/src/padelnomics/migrations/migrate.py b/padelnomics/src/padelnomics/migrations/migrate.py index 05aee3d..ba2a383 100644 --- a/padelnomics/src/padelnomics/migrations/migrate.py +++ b/padelnomics/src/padelnomics/migrations/migrate.py @@ -1,10 +1,10 @@ """ Simple migration runner. Runs schema.sql against the database. """ -import sqlite3 -from pathlib import Path import os +import sqlite3 import sys +from pathlib import Path # Add parent to path for imports sys.path.insert(0, str(Path(__file__).parent.parent.parent.parent)) diff --git a/padelnomics/src/padelnomics/planner/calculator.py b/padelnomics/src/padelnomics/planner/calculator.py index f684c2e..e467ba1 100644 --- a/padelnomics/src/padelnomics/planner/calculator.py +++ b/padelnomics/src/padelnomics/planner/calculator.py @@ -6,9 +6,11 @@ model is no longer exposed in client-side JavaScript. """ import math + # JS-compatible rounding: half-up (0.5 rounds to 1), not Python's # banker's rounding (round-half-even). -_round = lambda n: math.floor(n + 0.5) +def _round(n): + return math.floor(n + 0.5) # -- Default state (mirrors the JS `S` object) -- diff --git a/padelnomics/src/padelnomics/planner/routes.py b/padelnomics/src/padelnomics/planner/routes.py index 57f57af..163cc21 100644 --- a/padelnomics/src/padelnomics/planner/routes.py +++ b/padelnomics/src/padelnomics/planner/routes.py @@ -5,10 +5,10 @@ import json from datetime import datetime from pathlib import Path -from quart import Blueprint, render_template, request, g, jsonify +from quart import Blueprint, g, jsonify, render_template, request -from ..core import fetch_one, fetch_all, execute, csrf_protect from ..auth.routes import login_required +from ..core import csrf_protect, execute, fetch_all, fetch_one from .calculator import calc, validate_state bp = Blueprint( diff --git a/padelnomics/src/padelnomics/public/routes.py b/padelnomics/src/padelnomics/public/routes.py index 88da225..af86223 100644 --- a/padelnomics/src/padelnomics/public/routes.py +++ b/padelnomics/src/padelnomics/public/routes.py @@ -3,7 +3,7 @@ Public domain: landing page, marketing pages, legal pages. """ from pathlib import Path -from quart import Blueprint, render_template, Response +from quart import Blueprint, Response, render_template from ..core import config diff --git a/padelnomics/src/padelnomics/worker.py b/padelnomics/src/padelnomics/worker.py index ca42a93..2cceb31 100644 --- a/padelnomics/src/padelnomics/worker.py +++ b/padelnomics/src/padelnomics/worker.py @@ -6,8 +6,7 @@ import json import traceback from datetime import datetime, timedelta -from .core import config, init_db, fetch_one, fetch_all, execute, send_email - +from .core import config, execute, fetch_all, init_db, send_email # Task handlers registry HANDLERS: dict[str, callable] = {}