From 633b51664e439c9d620f54c1547a59179c8992cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Clgen=20Sar=C4=B1kavak?= Date: Sun, 8 Jun 2025 22:35:52 +0300 Subject: [PATCH 1/2] Move ruff config to its own file --- pyproject.toml | 7 ------- ruff.toml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 ruff.toml diff --git a/pyproject.toml b/pyproject.toml index 5667b631..87542106 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,10 +4,3 @@ build-backend = "setuptools.build_meta" [tool.pytest.ini_options] addopts = " --ignore django_prometheus/tests/end2end" - -[tool.ruff] -line-length = 120 -target-version = "py39" - -[tool.ruff.lint] -select = ["B", "C4", "E", "F", "I", "T10", "YTT", "W"] diff --git a/ruff.toml b/ruff.toml new file mode 100644 index 00000000..9722c0b8 --- /dev/null +++ b/ruff.toml @@ -0,0 +1,30 @@ +line-length = 120 +target-version = "py39" + +[lint] +select = [ + # https://docs.astral.sh/ruff/rules/#flake8-bugbear-b + # https://github.com/PyCQA/flake8-bugbear + "B", + # https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4 + # https://github.com/adamchainz/flake8-comprehensions + "C4", + # https://docs.astral.sh/ruff/rules/#error-e + # https://github.com/PyCQA/pycodestyle + "E", + # https://docs.astral.sh/ruff/rules/#pyflakes-f + # https://github.com/PyCQA/pyflakes + "F", + # https://docs.astral.sh/ruff/rules/#isort-i + # https://pycqa.github.io/isort/ + "I", + # https://docs.astral.sh/ruff/rules/#flake8-debugger-t10 + # https://github.com/jbkahn/flake8-debugger + "T10", + # https://docs.astral.sh/ruff/rules/#flake8-2020-ytt + # https://github.com/asottile-archive/flake8-2020 + "YTT", + # https://docs.astral.sh/ruff/rules/#warning-w + # https://github.com/PyCQA/pycodestyle + "W", +] From 13cf2305dc6e12259a6e402c896043d913e5949e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Clgen=20Sar=C4=B1kavak?= Date: Sun, 8 Jun 2025 22:44:12 +0300 Subject: [PATCH 2/2] Add pyupgrade to ruff config --- django_prometheus/exports.py | 2 +- django_prometheus/tests/end2end/testapp/test_middleware.py | 4 ++-- django_prometheus/tests/end2end/testapp/test_migrations.py | 2 +- django_prometheus/tests/end2end/testapp/test_models.py | 2 +- django_prometheus/testutils.py | 2 +- ruff.toml | 3 +++ 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/django_prometheus/exports.py b/django_prometheus/exports.py index 79f3b3f7..1e525f87 100644 --- a/django_prometheus/exports.py +++ b/django_prometheus/exports.py @@ -91,7 +91,7 @@ def SetupPrometheusEndpointOnPortRange(port_range, addr=""): thread = PrometheusEndpointServer(httpd) thread.daemon = True thread.start() - logger.info("Exporting Prometheus /metrics/ on port %s" % port) + logger.info(f"Exporting Prometheus /metrics/ on port {port}") return port # Stop trying ports at this point logger.warning("Cannot export Prometheus /metrics/ - no available ports in supplied range") return None diff --git a/django_prometheus/tests/end2end/testapp/test_middleware.py b/django_prometheus/tests/end2end/testapp/test_middleware.py index ecaa57ea..58c250c5 100644 --- a/django_prometheus/tests/end2end/testapp/test_middleware.py +++ b/django_prometheus/tests/end2end/testapp/test_middleware.py @@ -14,14 +14,14 @@ def M(metric_name): This is just intended to help keep the lines shorter in test cases. """ - return "django_http_%s" % metric_name + return f"django_http_{metric_name}" def T(metric_name): """Makes a full metric name from a short metric name like M(metric_name) This method adds a '_total' postfix for metrics.""" - return "%s_total" % M(metric_name) + return f"{M(metric_name)}_total" class TestMiddlewareMetrics: diff --git a/django_prometheus/tests/end2end/testapp/test_migrations.py b/django_prometheus/tests/end2end/testapp/test_migrations.py index 6f5f1217..a15795eb 100644 --- a/django_prometheus/tests/end2end/testapp/test_migrations.py +++ b/django_prometheus/tests/end2end/testapp/test_migrations.py @@ -12,7 +12,7 @@ def M(metric_name): This is just intended to help keep the lines shorter in test cases. """ - return "django_migrations_%s" % metric_name + return f"django_migrations_{metric_name}" @pytest.mark.django_db() diff --git a/django_prometheus/tests/end2end/testapp/test_models.py b/django_prometheus/tests/end2end/testapp/test_models.py index 9c3b3f1f..c15cff27 100644 --- a/django_prometheus/tests/end2end/testapp/test_models.py +++ b/django_prometheus/tests/end2end/testapp/test_models.py @@ -10,7 +10,7 @@ def M(metric_name): This is just intended to help keep the lines shorter in test cases. """ - return "django_model_%s" % metric_name + return f"django_model_{metric_name}" @pytest.mark.django_db() diff --git a/django_prometheus/testutils.py b/django_prometheus/testutils.py index 6529b606..d158a2ce 100644 --- a/django_prometheus/testutils.py +++ b/django_prometheus/testutils.py @@ -189,7 +189,7 @@ def format_labels(labels): Out: '{method="GET",port="80"}' """ - return "{%s}" % ",".join([f'{k}="{v}"' for k, v in labels.items()]) + return "{{{}}}".format(",".join([f'{k}="{v}"' for k, v in labels.items()])) def format_vector(vector): diff --git a/ruff.toml b/ruff.toml index 9722c0b8..987f07ba 100644 --- a/ruff.toml +++ b/ruff.toml @@ -21,6 +21,9 @@ select = [ # https://docs.astral.sh/ruff/rules/#flake8-debugger-t10 # https://github.com/jbkahn/flake8-debugger "T10", + # https://docs.astral.sh/ruff/rules/#pyupgrade-up + # https://github.com/asottile/pyupgrade + "UP", # https://docs.astral.sh/ruff/rules/#flake8-2020-ytt # https://github.com/asottile-archive/flake8-2020 "YTT",