Skip to content

Commit 1286fe5

Browse files
authored
Apply more ruff linting rules (#314)
1 parent 1abae00 commit 1286fe5

File tree

11 files changed

+97
-35
lines changed

11 files changed

+97
-35
lines changed

pyproject.toml

Lines changed: 71 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,81 @@ include = ["scheduler"]
7777
[tool.ruff]
7878
line-length = 120
7979
exclude = [
80+
'__pycache__',
81+
'.github',
82+
'.venv',
8083
'scheduler/migrations',
8184
'testproject',
82-
'.venv',
83-
'.github',
84-
'__pycache__',
8585
]
8686

87-
[tool.ruff.format]
88-
quote-style = "double"
89-
indent-style = "space"
90-
skip-magic-trailing-comma = false
91-
line-ending = "auto"
92-
87+
[tool.ruff.lint]
88+
select = [
89+
"A", # flake8-builtins
90+
"AIR", # Airflow
91+
"ASYNC", # flake8-async
92+
"C4", # flake8-comprehensions
93+
"C90", # McCabe cyclomatic complexity
94+
"DJ", # flake8-django
95+
"E", # pycodestyle
96+
"EXE", # flake8-executable
97+
"F", # Pyflakes
98+
"FA", # flake8-future-annotations
99+
"FAST", # FastAPI
100+
"FIX", # flake8-fixme
101+
"FLY", # flynt
102+
"FURB", # refurb
103+
"ICN", # flake8-import-conventions
104+
"INP", # flake8-no-pep420
105+
"INT", # flake8-gettext
106+
"ISC", # flake8-implicit-str-concat
107+
"LOG", # flake8-logging
108+
"NPY", # NumPy-specific rules
109+
"PD", # pandas-vet
110+
"PERF", # Perflint
111+
"PIE", # flake8-pie
112+
"RSE", # flake8-raise
113+
"SLOT", # flake8-slots
114+
"T10", # flake8-debugger
115+
"TC", # flake8-type-checking
116+
"TD", # flake8-todos
117+
"W", # pycodestyle
118+
"YTT", # flake8-2020
119+
# "ANN", # flake8-annotations
120+
# "ARG", # flake8-unused-arguments
121+
# "B", # flake8-bugbear
122+
# "BLE", # flake8-blind-except
123+
# "COM", # flake8-commas
124+
# "CPY", # flake8-copyright
125+
# "D", # pydocstyle
126+
# "DOC", # pydoclint
127+
# "DTZ", # flake8-datetimez
128+
# "EM", # flake8-errmsg
129+
# "ERA", # eradicate
130+
# "FBT", # flake8-boolean-trap
131+
# "G", # flake8-logging-format
132+
# "I", # isort
133+
# "N", # pep8-naming
134+
# "PGH", # pygrep-hooks
135+
# "PL", # Pylint
136+
# "PT", # flake8-pytest-style
137+
# "PTH", # flake8-use-pathlib
138+
# "PYI", # flake8-pyi
139+
# "Q", # flake8-quotes
140+
# "RET", # flake8-return
141+
# "RUF", # Ruff-specific rules
142+
# "S", # flake8-bandit
143+
# "SIM", # flake8-simplify
144+
# "SLF", # flake8-self
145+
# "T20", # flake8-print
146+
# "TID", # flake8-tidy-imports
147+
# "TRY", # tryceratops
148+
# "UP", # pyupgrade
149+
]
150+
extend-ignore = ["PIE790"]
151+
mccabe.max-complexity = 13
152+
per-file-ignores."scheduler/models/args.py" = ["DJ012", "INT001"]
153+
per-file-ignores."scheduler/models/ephemeral_models.py" = ["DJ008"]
154+
per-file-ignores."scheduler/models/task.py" = ["DJ001", "DJ012"]
93155

94156
[tool.mypy]
95157
packages = ['scheduler', ]

scheduler/helpers/timeouts.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def __init__(self, timeout, exception=BaseTimeoutException, **kwargs):
3434
def __enter__(self):
3535
self.setup_death_penalty()
3636

37-
def __exit__(self, type, value, traceback):
37+
def __exit__(self, type, value, traceback): # noqa: A002
3838
# Always cancel immediately, since we're done
3939
try:
4040
self.cancel_death_penalty()
@@ -49,10 +49,10 @@ def __exit__(self, type, value, traceback):
4949
return False
5050

5151
def setup_death_penalty(self):
52-
raise NotImplementedError()
52+
raise NotImplementedError
5353

5454
def cancel_death_penalty(self):
55-
raise NotImplementedError()
55+
raise NotImplementedError
5656

5757

5858
class UnixSignalDeathPenalty(BaseDeathPenalty):

scheduler/management/commands/delete_failed_executions.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ def handle(self, *args, **options):
1818
queue = get_queue(options.get("queue", "default"))
1919
job_names = queue.failed_job_registry.all(queue.connection)
2020
jobs = JobModel.get_many(job_names, connection=queue.connection)
21-
func_name = options.get("func", None)
22-
if func_name is not None:
21+
if func_name := options.get("func"):
2322
jobs = [job for job in jobs if job.func_name == func_name]
2423
dry_run = options.get("dry_run", False)
2524
click.echo(f"Found {len(jobs)} failed jobs")

scheduler/management/commands/scheduler_worker.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,7 @@ def handle(self, **options: Any) -> None:
129129
"default",
130130
]
131131
click.echo(f"Starting worker for queues {queues}")
132-
pidfile = options.pop("pidfile")
133-
if pidfile:
132+
if pidfile := options.pop("pidfile"):
134133
with open(os.path.expanduser(pidfile), "w") as fp:
135134
fp.write(str(os.getpid()))
136135

scheduler/models/task.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,7 @@ def save(self, **kwargs: Any) -> None:
344344
schedule_job = kwargs.pop("schedule_job", True)
345345
if should_clean:
346346
self.clean()
347-
update_fields = kwargs.get("update_fields", None)
348-
if update_fields is not None:
347+
if update_fields := kwargs.get("update_fields"):
349348
kwargs["update_fields"] = set(update_fields).union({"updated_at"})
350349
super(Task, self).save(**kwargs)
351350
if schedule_job:

scheduler/tests/jobs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ def test_args_kwargs(*args, **kwargs):
2121

2222
def two_seconds_job():
2323
sleep(2)
24-
logging.info(f"Job {_counter}")
24+
logging.info(f"Job {_counter}") # noqa: LOG015
2525

2626

2727
def long_job():
2828
sleep(1000)
29-
logging.info(f"Job {_counter}")
29+
logging.info(f"Job {_counter}") # noqa: LOG015
3030

3131

3232
test_non_callable = "I am a teapot"

scheduler/tests/test_mgmt_commands/test_scheduler_worker.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def test_scheduler_worker__no_queues_params(self):
1717

1818
# enqueue some jobs that will fail
1919
job_names = []
20-
for _ in range(0, 3):
20+
for _ in range(3):
2121
job = queue.create_and_enqueue_job(failing_job)
2222
job_names.append(job.name)
2323

@@ -56,7 +56,7 @@ def test_scheduler_worker__run_jobs(self):
5656

5757
# enqueue some jobs that will fail
5858
job_names = []
59-
for _ in range(0, 3):
59+
for _ in range(3):
6060
job = queue.create_and_enqueue_job(failing_job)
6161
job_names.append(job.name)
6262

@@ -76,7 +76,7 @@ def test_scheduler_worker__worker_with_two_queues(self):
7676

7777
# enqueue some jobs that will fail
7878
job_names = []
79-
for _ in range(0, 3):
79+
for _ in range(3):
8080
job = queue.create_and_enqueue_job(failing_job)
8181
job_names.append(job.name)
8282
job = queue2.create_and_enqueue_job(failing_job)

scheduler/tests/test_views/test_job_detail_action.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def test_single_job_action_enqueue_job(self):
6363
queue = get_queue("django_tasks_scheduler_test")
6464
job_list = []
6565
# enqueue some jobs that depends on other
66-
for _ in range(0, 3):
66+
for _ in range(3):
6767
job = queue.create_and_enqueue_job(test_job)
6868
job_list.append(job)
6969

@@ -84,7 +84,7 @@ def test_single_job_action_enqueue_job_sync_queue(self):
8484
queue = get_queue("scheduler_scheduler_active_test")
8585
job_list = []
8686
# enqueue some jobs that depends on other
87-
for _ in range(0, 3):
87+
for _ in range(3):
8888
job = queue.create_and_enqueue_job(test_job)
8989
job_list.append(job)
9090

scheduler/tests/test_views/test_queue_actions.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def test_job_list_action_delete_jobs__with_bad_next_url(self):
1414

1515
# enqueue some jobs
1616
job_names = []
17-
for _ in range(0, 3):
17+
for _ in range(3):
1818
job = queue.create_and_enqueue_job(test_job, job_info_ttl=0)
1919
job_names.append(job.name)
2020

@@ -36,7 +36,7 @@ def test_job_list_action_delete_jobs(self):
3636

3737
# enqueue some jobs
3838
job_names = []
39-
for _ in range(0, 3):
39+
for _ in range(3):
4040
job = queue.create_and_enqueue_job(test_job, job_info_ttl=0)
4141
job_names.append(job.name)
4242

@@ -57,7 +57,7 @@ def test_job_list_action_requeue_jobs(self):
5757

5858
# enqueue some jobs that will fail
5959
job_names = []
60-
for _ in range(0, 3):
60+
for _ in range(3):
6161
job = queue.create_and_enqueue_job(failing_job)
6262
job_names.append(job.name)
6363

scheduler/views/queue_views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def get_statistics(run_maintenance_tasks: bool = False) -> Dict[str, List[Dict[s
159159
canceled_jobs=queue.canceled_job_registry.count(queue.connection),
160160
)
161161
queues.append(queue_data)
162-
except ConnectionErrorTypes as e:
162+
except ConnectionErrorTypes as e: # noqa: PERF203
163163
logger.error(f"Could not connect for queue {queue_name}: {e}")
164164
continue
165165

0 commit comments

Comments
 (0)