diff --git a/CHANGELOG.md b/CHANGELOG.md index be3df557b..16628dad3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ and this project adheres to - ♻️️️(backend) use a dedicated auth scheme for LiveKit token auth - ♻️(all) stop relying on cookies for the lobby flow - ♿️(frontend) show a visible focus outline on menu items #1797 +- ⬆️(backend) upgrade pylint to 4.1.3 ### Fixed diff --git a/renovate.json b/renovate.json index b23cc2e6f..90201c66e 100644 --- a/renovate.json +++ b/renovate.json @@ -24,12 +24,6 @@ "matchManagers": ["pep621"], "matchPackageNames": ["redis"] }, - { - "groupName": "allowed pylint versions", - "matchManagers": ["pep621"], - "matchPackageNames": ["pylint"], - "allowedVersions": "<4.0.0" - }, { "groupName": "allowed django versions", "matchManagers": ["pep621"], diff --git a/src/backend/.pylintrc b/src/backend/.pylintrc index 9807de7de..4e8d35a58 100644 --- a/src/backend/.pylintrc +++ b/src/backend/.pylintrc @@ -31,10 +31,6 @@ persistent=yes # Specify a configuration file. #rcfile= -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages -suggestion-mode=yes - # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no diff --git a/src/backend/core/fields.py b/src/backend/core/fields.py index 4c165397f..91088f4fa 100644 --- a/src/backend/core/fields.py +++ b/src/backend/core/fields.py @@ -50,4 +50,4 @@ class SecretField(models.CharField): setattr(model_instance, self.attname, hashed_secret) return hashed_secret - return super().pre_save(model_instance, add) + return super().pre_save(model_instance, add) # pylint: disable=no-member diff --git a/src/backend/core/utils.py b/src/backend/core/utils.py index 8e2b2bef1..434328e8e 100644 --- a/src/backend/core/utils.py +++ b/src/backend/core/utils.py @@ -333,7 +333,8 @@ def detect_mimetype(file_buffer: bytes, filename: str | None = None) -> str: str: The detected MIME type Notes: - Originally from https://github.com/suitenumerique/drive/blob/564822d31f071c6dfacd112ef4b7146c73077cd9/src/backend/core/api/utils.py#L166 # pylint:disable=line-too-long + Originally from + https://github.com/suitenumerique/drive/blob/564822d31f071c6dfacd112ef4b7146c73077cd9/src/backend/core/api/utils.py#L166 """ # Initialize magic detector mime_detector = magic.Magic(mime=True) diff --git a/src/backend/pyproject.toml b/src/backend/pyproject.toml index 37534e4e7..478c85e43 100644 --- a/src/backend/pyproject.toml +++ b/src/backend/pyproject.toml @@ -82,7 +82,7 @@ dev = [ "ipython==9.16.1", "pyfakefs==6.2.0", "pylint-django==2.8.0", - "pylint<4.0.0", + "pylint==4.1.3", "pytest-cov==7.1.0", "pytest-django==4.14.0", "pytest==9.1.1", diff --git a/src/backend/uv.lock b/src/backend/uv.lock index 7bf20717f..0dcde88a3 100644 --- a/src/backend/uv.lock +++ b/src/backend/uv.lock @@ -136,11 +136,11 @@ wheels = [ [[package]] name = "astroid" -version = "3.3.11" +version = "4.3.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/74/dfb75f9ccd592bbedb175d4a32fc643cf569d7c218508bfbd6ea7ef9c091/astroid-3.3.11.tar.gz", hash = "sha256:1e5a5011af2920c7c67a53f65d536d65bfa7116feeaf2354d8b94f29573bb0ce", size = 400439, upload-time = "2025-07-13T18:04:23.177Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/87/5732fa68bf100a095cfcbd108f919220d995db99e1a7502b8119a869fd62/astroid-4.3.4.tar.gz", hash = "sha256:d515a105722b72098bbe82d430d65e635f742b6cbac3bdfaf8b7c188b87c5e39", size = 444627, upload-time = "2026-10-08T09:36:44.122Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/af/0f/3b8fdc946b4d9cc8cc1e8af42c4e409468c84441b933d037e101b3d72d86/astroid-3.3.11-py3-none-any.whl", hash = "sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec", size = 275612, upload-time = "2025-07-13T18:04:21.07Z" }, + { url = "https://files.pythonhosted.org/packages/16/d4/f23c0ac6e6de33ba5686cb21c672c95e0c2d3d4c9351f16d3b5fed818652/astroid-4.3.4-py3-none-any.whl", hash = "sha256:2bcd0d02648a443a4b818c952c3550091989daefac3c12d3b83b2289482e0818", size = 288310, upload-time = "2026-10-08T09:36:42.284Z" }, ] [[package]] @@ -1416,7 +1416,7 @@ dev = [ { name = "ipdb", specifier = "==0.13.13" }, { name = "ipython", specifier = "==9.16.1" }, { name = "pyfakefs", specifier = "==6.2.0" }, - { name = "pylint", specifier = "<4.0.0" }, + { name = "pylint", specifier = "==4.1.3" }, { name = "pylint-django", specifier = "==2.8.0" }, { name = "pytest", specifier = "==9.1.1" }, { name = "pytest-cov", specifier = "==7.1.0" }, @@ -2032,7 +2032,7 @@ wheels = [ [[package]] name = "pylint" -version = "3.3.9" +version = "4.1.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "astroid" }, @@ -2043,9 +2043,9 @@ dependencies = [ { name = "platformdirs" }, { name = "tomlkit" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/9d/81c84a312d1fa8133b0db0c76148542a98349298a01747ab122f9314b04e/pylint-3.3.9.tar.gz", hash = "sha256:d312737d7b25ccf6b01cc4ac629b5dcd14a0fcf3ec392735ac70f137a9d5f83a", size = 1525946, upload-time = "2025-10-05T18:41:43.786Z" } +sdist = { url = "https://files.pythonhosted.org/packages/38/c9/0bde4152a05a7686b431ce216fe3f3698b0c0d94c20bfa256dd935b608f6/pylint-4.1.3.tar.gz", hash = "sha256:9928603068edfa0d1a3c167f174b099d4b97c3db75d32d0fcdd029770b4713a9", size = 1756180, upload-time = "2026-10-11T07:49:10.69Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/a7/69460c4a6af7575449e615144aa2205b89408dc2969b87bc3df2f262ad0b/pylint-3.3.9-py3-none-any.whl", hash = "sha256:01f9b0462c7730f94786c283f3e52a1fbdf0494bbe0971a78d7277ef46a751e7", size = 523465, upload-time = "2025-10-05T18:41:41.766Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ba/62b18e2e157d05f976bd490b349b55d8850c2a454a5c313c91af9d2e0baf/pylint-4.1.3-py3-none-any.whl", hash = "sha256:a85357cae24f33ad8d86c8f3daaa92c600ae4012b54a57299cee76000e9364cf", size = 588959, upload-time = "2026-10-11T07:49:08.272Z" }, ] [[package]]