diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b09964393c0940399aec1d55ef200d511f345526..a130caf9fb49c86e340ce5ea1c508f8f289809d7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -118,8 +118,19 @@ code_style: - meta_build script: - python3 -V - - cd src - - tox run -e flake8 + - tox run + allow_failure: true + rules: + - when: always + +ruff: + image: $CI_REGISTRY_IMAGE/build_image:latest + stage: test + needs: + - meta_build + script: + - python3 -V + - tox run -e ruff allow_failure: true rules: - when: always diff --git a/.ruff.extended.toml b/.ruff.extended.toml index 0ff3a93c50e5b5ac50517c123078ebe7f9ca212a..7efb7902787b34f314321e620ad3446f67068a00 100644 --- a/.ruff.extended.toml +++ b/.ruff.extended.toml @@ -1,27 +1 @@ -extend = ".ruff.toml" - -extend-select = [ - "A", - "ARG", - "B", - "COM", - "DJ", - "EM", - "ERA", - "FBT", - "FIX", - "I", - "INP", - "N", - "PL", - "Q", - "RET", - "RSE", - "RUF", - "SIM", - "TD", - "TRY", - "UP","BLE","S", -] - -ignore = ["TID252", "TD002", "RUF012", "RUF100", "PLR091", "PLR2004"] +extend = "src/.ruff.extended.toml" diff --git a/.ruff.toml b/.ruff.toml index a9f205c7bbfcfeb0c34304d50d21c865729fd245..4107db6a5d511a4abea6e85ac50f41e4ecd3d17c 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -1,62 +1 @@ -line-length = 160 -extend-exclude = ["venv", ".tox", "migrations"] - -extend-select = [ - "C4", - "DTZ", - "E", - "F", - "G", - "I002", - "INT", - "ISC", - "PGH", - "PIE", - "PTH", - "RUF", - "T20", - "TID", - "W", - "T10", - ] -ignore = ["ISC001", "TID252", "TD002", "RUF012", "RUF100", "PLR091", "PLR2004"] - -[format] -# Use single quotes for non-triple-quoted strings. -quote-style = "single" - -[flake8-quotes] -inline-quotes = "single" - -[flake8-unused-arguments] -ignore-variadic-names = true - -[isort] -section-order = [ - "future", - "standard-library", - "third-party", - "django", - "first-party", - "hub", - "local-apps", - "local-folder", -] -[isort.sections] -# Group all Django imports into a separate section. -"hub" = ["hub", "core"] -"local-apps" = ["backoffice", "api", "plainui"] -"django" = [ - "django-cors-headers", - "django-cors-middleware", - "django-debug-toolbar", - "django-environ", - "django-modeltranslation", - "django-oauth-toolkit", - "django-ratelimit", - "django-redis", - "django-storages", - "django-widget-tweaks", - "django_bootstrap5", - "djangorestframework", -] +extend = "src/.ruff.toml" diff --git a/src/.ruff.extended.toml b/src/.ruff.extended.toml new file mode 100644 index 0000000000000000000000000000000000000000..0ff3a93c50e5b5ac50517c123078ebe7f9ca212a --- /dev/null +++ b/src/.ruff.extended.toml @@ -0,0 +1,27 @@ +extend = ".ruff.toml" + +extend-select = [ + "A", + "ARG", + "B", + "COM", + "DJ", + "EM", + "ERA", + "FBT", + "FIX", + "I", + "INP", + "N", + "PL", + "Q", + "RET", + "RSE", + "RUF", + "SIM", + "TD", + "TRY", + "UP","BLE","S", +] + +ignore = ["TID252", "TD002", "RUF012", "RUF100", "PLR091", "PLR2004"] diff --git a/src/.ruff.toml b/src/.ruff.toml new file mode 100644 index 0000000000000000000000000000000000000000..a9f205c7bbfcfeb0c34304d50d21c865729fd245 --- /dev/null +++ b/src/.ruff.toml @@ -0,0 +1,62 @@ +line-length = 160 +extend-exclude = ["venv", ".tox", "migrations"] + +extend-select = [ + "C4", + "DTZ", + "E", + "F", + "G", + "I002", + "INT", + "ISC", + "PGH", + "PIE", + "PTH", + "RUF", + "T20", + "TID", + "W", + "T10", + ] +ignore = ["ISC001", "TID252", "TD002", "RUF012", "RUF100", "PLR091", "PLR2004"] + +[format] +# Use single quotes for non-triple-quoted strings. +quote-style = "single" + +[flake8-quotes] +inline-quotes = "single" + +[flake8-unused-arguments] +ignore-variadic-names = true + +[isort] +section-order = [ + "future", + "standard-library", + "third-party", + "django", + "first-party", + "hub", + "local-apps", + "local-folder", +] +[isort.sections] +# Group all Django imports into a separate section. +"hub" = ["hub", "core"] +"local-apps" = ["backoffice", "api", "plainui"] +"django" = [ + "django-cors-headers", + "django-cors-middleware", + "django-debug-toolbar", + "django-environ", + "django-modeltranslation", + "django-oauth-toolkit", + "django-ratelimit", + "django-redis", + "django-storages", + "django-widget-tweaks", + "django_bootstrap5", + "djangorestframework", +] diff --git a/src/core/management/commands/.ruff.toml b/src/core/management/commands/.ruff.toml index 8a74e9f65849c2a5109392bf06581de1b2fec10a..d576aff099915ca16b499857f2106ea67aca697c 100644 --- a/src/core/management/commands/.ruff.toml +++ b/src/core/management/commands/.ruff.toml @@ -1,3 +1,3 @@ -extend = "../../../../.ruff.toml" +extend = "../../../.ruff.toml" ignore = ["T201"] diff --git a/src/hub/settings/.ruff.toml b/src/hub/settings/.ruff.toml index d576aff099915ca16b499857f2106ea67aca697c..5afc49c4b77d5bf7129815917deedcaa9d83450f 100644 --- a/src/hub/settings/.ruff.toml +++ b/src/hub/settings/.ruff.toml @@ -1,3 +1,3 @@ -extend = "../../../.ruff.toml" +extend = "../../.ruff.toml" ignore = ["T201"] diff --git a/src/requirements-dev.txt b/src/requirements-dev.txt index f21b50bc8de3cbc015bbb1b3b1cdba437e74874b..165f410a5c071d683023ab232088a934ca3a850a 100644 --- a/src/requirements-dev.txt +++ b/src/requirements-dev.txt @@ -1,4 +1,5 @@ -flake8 ~= 6.1.0 -tox ~= 4.11.3 coverage ~= 7.3.2 debugpy ~= 1.8.0 +flake8 ~= 6.1.0 +ruff ~= 0.1.5 +tox ~= 4.11.3 diff --git a/src/tox.ini b/src/tox.ini index a9c809dee5b8ebd4817d614e0a57485690678247..4569170cdf438e6f4829a80682f10e4d02dbb734 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -1,7 +1,7 @@ [tox] requires = tox>=4 -env_list = flake8, migrations, django-test +env_list = flake8, ruff, migrations, django-test [hub] setenv= @@ -28,6 +28,14 @@ allowlist_externals= commands = flake8 . +[testenv:ruff] +skip_install = true +sitepackages = true +allowlist_externals= + ruff +commands = + ruff . + [testenv:app_version] system_site_packages = true setenv = diff --git a/tox.ini b/tox.ini index 2a74b9995bcf1cc03a8eb5e16a083919f12ae307..e8b78b0b3e5bad75805e1201f5b7f65370a03eaf 100644 --- a/tox.ini +++ b/tox.ini @@ -1,3 +1,16 @@ +[tox] +requires = + tox>=4 +env_list = ruff + +[testenv:ruff] +skip_install = true +sitepackages = true +allowlist_externals= + ruff +commands = + ruff . + [flake8] max-line-length = 160 per-file-ignores =