Skip to content

Commit 7a6052e

Browse files
committed
trying ruff
Signed-off-by: emdneto <[email protected]> remove unecessary lint stuff Signed-off-by: emdneto <[email protected]> update pyproject.toml and pre-commit to auto fix lint Signed-off-by: emdneto <[email protected]> add parameter --show-fixes to pre-commit Signed-off-by: emdneto <[email protected]> some fixes to generate.sh in semconv Signed-off-by: emdneto <[email protected]>
1 parent 2bcbbcc commit 7a6052e

File tree

10 files changed

+81
-181
lines changed

10 files changed

+81
-181
lines changed

.flake8

Lines changed: 0 additions & 35 deletions
This file was deleted.

.github/workflows/misc_0.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,3 +228,21 @@ jobs:
228228

229229
- name: Check workflows are up to date
230230
run: git diff --exit-code || (echo 'Generated workflows are out of date, run "tox -e generate-workflows" and commit the changes in this PR.' && exit 1)
231+
232+
ruff:
233+
name: ruff
234+
runs-on: ubuntu-latest
235+
steps:
236+
- name: Checkout repo @ SHA - ${{ github.sha }}
237+
uses: actions/checkout@v4
238+
239+
- name: Set up Python 3.10
240+
uses: actions/setup-python@v5
241+
with:
242+
python-version: "3.10"
243+
244+
- name: Install tox
245+
run: pip install tox
246+
247+
- name: Run tests
248+
run: tox -e ruff

.isort.cfg

Lines changed: 0 additions & 19 deletions
This file was deleted.

.pre-commit-config.yaml

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
repos:
2-
- repo: https://github.com/psf/black-pre-commit-mirror
3-
rev: 24.3.0
4-
hooks:
5-
- id: black
6-
language_version: python3.12
7-
- repo: https://github.com/pycqa/isort
8-
rev: 5.12.0
9-
hooks:
10-
- id: isort
11-
- repo: https://github.com/pycqa/flake8
12-
rev: '6.1.0'
13-
hooks:
14-
- id: flake8
2+
- repo: https://github.com/astral-sh/ruff-pre-commit
3+
# Ruff version.
4+
rev: v0.6.9
5+
hooks:
6+
# Run the linter.
7+
- id: ruff
8+
args: ["--fix", "--show-fixes"]
9+
# Run the formatter.
10+
- id: ruff-format

CONTRIBUTING.md

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,15 @@ You can run `tox` with the following arguments:
5858
Python version
5959
- `tox -e spellcheck` to run a spellcheck on all the code
6060
- `tox -e lint-some-package` to run lint checks on `some-package`
61+
- `tox -e ruff` to run ruff linter and formatter checks against the entire codebase
6162

62-
`black` and `isort` are executed when `tox -e lint` is run. The reported errors can be tedious to fix manually.
63-
An easier way to do so is:
64-
65-
1. Run `.tox/lint/bin/black .`
66-
2. Run `.tox/lint/bin/isort .`
67-
68-
Or you can call formatting and linting in one command by [pre-commit](https://pre-commit.com/):
63+
`ruff check` and `ruff format` are executed when `tox -e ruff` is run. We strongly recommend you to configure [pre-commit](https://pre-commit.com/) locally to run `ruff` automatically before each commit by installing it as git hooks. You just need to [install pre-commit](https://pre-commit.com/#install) in your environment:
6964

7065
```console
71-
$ pre-commit
66+
$ pip install pre-commit -c dev-requirements.txt
7267
```
7368

74-
You can also configure it to run lint tools automatically before committing with:
69+
and run this command inside the git repository:
7570

7671
```console
7772
$ pre-commit install

dev-requirements.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
pylint==3.2.1
2-
flake8==6.1.0
3-
isort==5.12.0
4-
black==24.3.0
52
httpretty==1.1.4
63
mypy==1.9.0
74
sphinx==7.1.2
@@ -20,3 +17,4 @@ psutil==5.9.6
2017
GitPython==3.1.41
2118
pre-commit==3.7.0; python_version >= '3.9'
2219
pre-commit==3.5.0; python_version < '3.9'
20+
ruff==0.6.9

lint-requirements.txt

Lines changed: 0 additions & 15 deletions
This file was deleted.

pyproject.toml

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,3 @@
1-
[tool.black]
2-
line-length = 79
3-
exclude = '''
4-
(
5-
/( # generated files
6-
.tox|
7-
venv|
8-
venv.*|
9-
.venv.*|
10-
target.*|
11-
.*/build/lib/.*|
12-
exporter/opentelemetry-exporter-zipkin-proto-http/src/opentelemetry/exporter/zipkin/proto/http/v2/gen|
13-
opentelemetry-proto/src/opentelemetry/proto/.*/.*|
14-
scripts
15-
)/
16-
)
17-
'''
181
[tool.pytest.ini_options]
192
addopts = "-rs -v"
203
log_cli = true
@@ -27,3 +10,42 @@ include = [
2710
"opentelemetry-sdk/src",
2811
"opentelemetry-semantic-conventions/src",
2912
]
13+
14+
[tool.ruff]
15+
# https://docs.astral.sh/ruff/configuration/
16+
target-version = "py38"
17+
line-length = 79
18+
extend-exclude = [
19+
"*_pb2*.py*",
20+
]
21+
output-format = "concise"
22+
23+
[tool.ruff.lint]
24+
# https://docs.astral.sh/ruff/linter/#rule-selection
25+
# pylint: https://github.com/astral-sh/ruff/issues/970
26+
select = [
27+
"I", # isort
28+
"F", # pyflakes
29+
"E", # pycodestyle errors
30+
"W", # pycodestyle warnings
31+
"PLC", # pylint convention
32+
"PLE", # pylint error
33+
"Q", # flake8-quotes
34+
]
35+
36+
ignore = [
37+
"E501", # line-too-long
38+
]
39+
40+
[tool.ruff.lint.per-file-ignores]
41+
"docs/**/*.*" = ["PLE"]
42+
43+
[tool.ruff.lint.isort]
44+
known-third-party = [
45+
"psutil",
46+
"pytest",
47+
"redis",
48+
"redis_opentracing",
49+
"opencensus",
50+
]
51+
known-first-party = ["opentelemetry", "opentelemetry_example_app"]

scripts/semconv/generate.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,4 @@ mkdir -p ${ROOT_DIR}/opentelemetry-semantic-conventions/src/opentelemetry/semcon
5858
generate "./" "./${INCUBATING_DIR}/" "any"
5959

6060
cd "$ROOT_DIR"
61-
${ROOT_DIR}/.tox/lint/bin/black --config pyproject.toml ${ROOT_DIR}/opentelemetry-semantic-conventions/src/opentelemetry/semconv
62-
${ROOT_DIR}/.tox/lint/bin/isort ${ROOT_DIR}/opentelemetry-semantic-conventions/src/opentelemetry/semconv
61+
tox -e ruff

tox.ini

Lines changed: 9 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ envlist =
111111
public-symbols-check
112112
shellcheck
113113
generate-workflows
114+
ruff
114115

115116
[testenv]
116117
deps =
@@ -199,120 +200,63 @@ commands_pre =
199200

200201
commands =
201202
test-opentelemetry-api: pytest {toxinidir}/opentelemetry-api/tests {posargs}
202-
lint-opentelemetry-api: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/opentelemetry-api
203-
lint-opentelemetry-api: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/opentelemetry-api
204-
lint-opentelemetry-api: flake8 --config {toxinidir}/.flake8 {toxinidir}/opentelemetry-api
205203
lint-opentelemetry-api: pylint {toxinidir}/opentelemetry-api
206204

207205
test-opentelemetry-sdk: pytest {toxinidir}/opentelemetry-sdk/tests {posargs}
208-
lint-opentelemetry-sdk: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/opentelemetry-sdk
209-
lint-opentelemetry-sdk: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/opentelemetry-sdk
210-
lint-opentelemetry-sdk: flake8 --config {toxinidir}/.flake8 {toxinidir}/opentelemetry-sdk
211206
lint-opentelemetry-sdk: pylint {toxinidir}/opentelemetry-sdk
212207
benchmark-opentelemetry-sdk: pytest {toxinidir}/opentelemetry-sdk/benchmarks --benchmark-json={toxinidir}/opentelemetry-sdk/sdk-benchmark.json {posargs}
213208

214209
test-opentelemetry-proto: pytest {toxinidir}/opentelemetry-proto/tests {posargs}
215-
lint-opentelemetry-proto: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/opentelemetry-proto
216-
lint-opentelemetry-proto: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/opentelemetry-proto
217-
lint-opentelemetry-proto: flake8 --config {toxinidir}/.flake8 {toxinidir}/opentelemetry-proto
218210
lint-opentelemetry-proto: pylint {toxinidir}/opentelemetry-proto
219211

220212
test-opentelemetry-semantic-conventions: pytest {toxinidir}/opentelemetry-semantic-conventions/tests {posargs}
221-
lint-opentelemetry-semantic-conventions: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/opentelemetry-semantic-conventions
222-
lint-opentelemetry-semantic-conventions: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/opentelemetry-semantic-conventions
223-
lint-opentelemetry-semantic-conventions: flake8 --config {toxinidir}/.flake8 {toxinidir}/opentelemetry-semantic-conventions
224213
lint-opentelemetry-semantic-conventions: pylint {toxinidir}/opentelemetry-semantic-conventions
225214

226215
test-opentelemetry-getting-started: pytest {toxinidir}/docs/getting_started/tests {posargs}
227-
lint-opentelemetry-getting-started: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/docs/getting_started
228-
lint-opentelemetry-getting-started: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/docs/getting_started
229-
lint-opentelemetry-getting-started: flake8 --config {toxinidir}/.flake8 {toxinidir}/docs/getting_started
230216
lint-opentelemetry-getting-started: pylint {toxinidir}/docs/getting_started
231217

232218
test-opentelemetry-opentracing-shim: pytest {toxinidir}/shim/opentelemetry-opentracing-shim/tests {posargs}
233-
lint-opentelemetry-opentracing-shim: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/shim/opentelemetry-opentracing-shim
234-
lint-opentelemetry-opentracing-shim: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/shim/opentelemetry-opentracing-shim
235-
lint-opentelemetry-opentracing-shim: flake8 --config {toxinidir}/.flake8 {toxinidir}/shim/opentelemetry-opentracing-shim
236219
lint-opentelemetry-opentracing-shim: sh -c "cd shim && pylint --rcfile ../.pylintrc {toxinidir}/shim/opentelemetry-opentracing-shim"
237220

238221
test-opentelemetry-opencensus-shim: pytest {toxinidir}/shim/opentelemetry-opencensus-shim/tests {posargs}
239-
lint-opentelemetry-opencensus-shim: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/shim/opentelemetry-opencensus-shim
240-
lint-opentelemetry-opencensus-shim: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/shim/opentelemetry-opencensus-shim
241-
lint-opentelemetry-opencensus-shim: flake8 --config {toxinidir}/.flake8 {toxinidir}/shim/opentelemetry-opencensus-shim
242222
lint-opentelemetry-opencensus-shim: sh -c "cd shim && pylint --rcfile ../.pylintrc {toxinidir}/shim/opentelemetry-opencensus-shim"
243223

244224
test-opentelemetry-exporter-opencensus: pytest {toxinidir}/exporter/opentelemetry-exporter-opencensus/tests {posargs}
245-
lint-opentelemetry-exporter-opencensus: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-opencensus
246-
lint-opentelemetry-exporter-opencensus: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-opencensus
247-
lint-opentelemetry-exporter-opencensus: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-opencensus
248225
lint-opentelemetry-exporter-opencensus: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-opencensus"
249226

250227
test-opentelemetry-exporter-otlp-proto-common: pytest {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common/tests {posargs}
251-
lint-opentelemetry-exporter-otlp-proto-common: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common
252-
lint-opentelemetry-exporter-otlp-proto-common: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common
253-
lint-opentelemetry-exporter-otlp-proto-common: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common
254228
lint-opentelemetry-exporter-otlp-proto-common: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-common"
255229

256230
test-opentelemetry-exporter-otlp-combined: pytest {toxinidir}/exporter/opentelemetry-exporter-otlp/tests {posargs}
257-
lint-opentelemetry-exporter-otlp-combined: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-otlp
258-
lint-opentelemetry-exporter-otlp-combined: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-otlp
259-
lint-opentelemetry-exporter-otlp-combined: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-otlp
260231
lint-opentelemetry-exporter-otlp-combined: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-otlp"
261232

262233
test-opentelemetry-exporter-otlp-proto-grpc: pytest {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc/tests {posargs}
263-
lint-opentelemetry-exporter-otlp-proto-grpc: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc
264-
lint-opentelemetry-exporter-otlp-proto-grpc: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc
265-
lint-opentelemetry-exporter-otlp-proto-grpc: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc
266234
lint-opentelemetry-exporter-otlp-proto-grpc: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc"
267235
benchmark-opentelemetry-exporter-otlp-proto-grpc: pytest {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-grpc/benchmarks --benchmark-json=exporter-otlp-proto-grpc-benchmark.json {posargs}
268236

269237
test-opentelemetry-exporter-otlp-proto-http: pytest {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-http/tests {posargs}
270-
lint-opentelemetry-exporter-otlp-proto-http: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-http
271-
lint-opentelemetry-exporter-otlp-proto-http: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-http
272-
lint-opentelemetry-exporter-otlp-proto-http: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-http
273238
lint-opentelemetry-exporter-otlp-proto-http: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-otlp-proto-http"
274239

275240
test-opentelemetry-exporter-prometheus: pytest {toxinidir}/exporter/opentelemetry-exporter-prometheus/tests {posargs}
276-
lint-opentelemetry-exporter-prometheus: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-prometheus
277-
lint-opentelemetry-exporter-prometheus: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-prometheus
278-
lint-opentelemetry-exporter-prometheus: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-prometheus
279241
lint-opentelemetry-exporter-prometheus: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-prometheus"
280242

281243
test-opentelemetry-exporter-zipkin-combined: pytest {toxinidir}/exporter/opentelemetry-exporter-zipkin/tests {posargs}
282-
lint-opentelemetry-exporter-zipkin-combined: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-zipkin
283-
lint-opentelemetry-exporter-zipkin-combined: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-zipkin
284-
lint-opentelemetry-exporter-zipkin-combined: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-zipkin
285244
lint-opentelemetry-exporter-zipkin-combined: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-zipkin"
286245

287246
test-opentelemetry-exporter-zipkin-proto-http: pytest {toxinidir}/exporter/opentelemetry-exporter-zipkin-proto-http/tests {posargs}
288-
lint-opentelemetry-exporter-zipkin-proto-http: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-zipkin-proto-http
289-
lint-opentelemetry-exporter-zipkin-proto-http: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-zipkin-proto-http
290-
lint-opentelemetry-exporter-zipkin-proto-http: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-zipkin-proto-http
291247
lint-opentelemetry-exporter-zipkin-proto-http: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-zipkin-proto-http"
292248

293249
test-opentelemetry-exporter-zipkin-json: pytest {toxinidir}/exporter/opentelemetry-exporter-zipkin-json/tests {posargs}
294-
lint-opentelemetry-exporter-zipkin-json: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/exporter/opentelemetry-exporter-zipkin-json
295-
lint-opentelemetry-exporter-zipkin-json: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/exporter/opentelemetry-exporter-zipkin-json
296-
lint-opentelemetry-exporter-zipkin-json: flake8 --config {toxinidir}/.flake8 {toxinidir}/exporter/opentelemetry-exporter-zipkin-json
297250
lint-opentelemetry-exporter-zipkin-json: sh -c "cd exporter && pylint --rcfile ../.pylintrc {toxinidir}/exporter/opentelemetry-exporter-zipkin-json"
298251

299252
test-opentelemetry-propagator-b3: pytest {toxinidir}/propagator/opentelemetry-propagator-b3/tests {posargs}
300-
lint-opentelemetry-propagator-b3: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/propagator/opentelemetry-propagator-b3
301-
lint-opentelemetry-propagator-b3: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/propagator/opentelemetry-propagator-b3
302-
lint-opentelemetry-propagator-b3: flake8 --config {toxinidir}/.flake8 {toxinidir}/propagator/opentelemetry-propagator-b3
303253
lint-opentelemetry-propagator-b3: sh -c "cd propagator && pylint --rcfile ../.pylintrc {toxinidir}/propagator/opentelemetry-propagator-b3"
304254
benchmark-opentelemetry-propagator-b3: pytest {toxinidir}/propagator/opentelemetry-propagator-b3/benchmarks --benchmark-json=propagator-b3-benchmark.json {posargs}
305255

306256
test-opentelemetry-propagator-jaeger: pytest {toxinidir}/propagator/opentelemetry-propagator-jaeger/tests {posargs}
307-
lint-opentelemetry-propagator-jaeger: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/propagator/opentelemetry-propagator-jaeger
308-
lint-opentelemetry-propagator-jaeger: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/propagator/opentelemetry-propagator-jaeger
309-
lint-opentelemetry-propagator-jaeger: flake8 --config {toxinidir}/.flake8 {toxinidir}/propagator/opentelemetry-propagator-jaeger
310257
lint-opentelemetry-propagator-jaeger: sh -c "cd propagator && pylint --rcfile ../.pylintrc {toxinidir}/propagator/opentelemetry-propagator-jaeger"
311258

312259
test-opentelemetry-test-utils: pytest {toxinidir}/tests/opentelemetry-test-utils/tests {posargs}
313-
lint-opentelemetry-test-utils: black --diff --check --config {toxinidir}/pyproject.toml {toxinidir}/tests/opentelemetry-test-utils
314-
lint-opentelemetry-test-utils: isort --diff --check-only --settings-path {toxinidir}/.isort.cfg {toxinidir}/tests/opentelemetry-test-utils
315-
lint-opentelemetry-test-utils: flake8 --config {toxinidir}/.flake8 {toxinidir}/tests/opentelemetry-test-utils
316260
lint-opentelemetry-test-utils: sh -c "cd tests && pylint --rcfile ../.pylintrc {toxinidir}/tests/opentelemetry-test-utils"
317261

318262
coverage: {toxinidir}/scripts/coverage.sh
@@ -329,17 +273,6 @@ commands =
329273
; implicit Any due to unfollowed import would result).
330274
mypyinstalled: mypy --install-types --non-interactive --namespace-packages opentelemetry-api/tests/mypysmoke.py --strict
331275

332-
[testenv:lint]
333-
basepython: python3
334-
recreate = True
335-
deps =
336-
-r dev-requirements.txt
337-
338-
commands =
339-
black --config {toxinidir}/pyproject.toml {toxinidir} --diff --check
340-
isort --settings-path {toxinidir}/.isort.cfg {toxinidir} --diff --check-only
341-
flake8 --config {toxinidir}/.flake8 {toxinidir}
342-
343276
[testenv:spellcheck]
344277
basepython: python3
345278
recreate = True
@@ -461,3 +394,11 @@ commands_pre =
461394
commands =
462395
pyright --version
463396
pyright
397+
398+
[testenv:ruff]
399+
basepython: python3
400+
deps =
401+
-c {toxinidir}/dev-requirements.txt
402+
pre-commit
403+
commands =
404+
pre-commit run --color=always --all-files {posargs}

0 commit comments

Comments
 (0)