Skip to content

Commit 5978d41

Browse files
authored
Merge branch 'master' into master
2 parents 56294a5 + f511be3 commit 5978d41

File tree

3 files changed

+121
-104
lines changed

3 files changed

+121
-104
lines changed

.pre-commit-config.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,27 @@ repos:
88
args: [--unsafe] # allow !!python/name:... tags in mkdocs.yml
99
- id: end-of-file-fixer
1010
- id: trailing-whitespace
11+
12+
- repo: https://github.com/codespell-project/codespell
13+
rev: v2.4.1
14+
hooks:
15+
- id: codespell # See pyproject.toml for args
16+
additional_dependencies:
17+
- tomli
18+
1119
- repo: https://github.com/astral-sh/ruff-pre-commit
1220
rev: v0.14.0
1321
hooks:
1422
- id: ruff-check
1523
args: [--fix]
1624
- id: ruff-format
25+
26+
- repo: https://github.com/tox-dev/pyproject-fmt
27+
rev: v2.11.0
28+
hooks:
29+
- id: pyproject-fmt
30+
31+
- repo: https://github.com/abravalheri/validate-pyproject
32+
rev: v0.24.1
33+
hooks:
34+
- id: validate-pyproject

docs/changelog.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
## v4.0.10 🌈
44

5-
Welcome @cclauss and @DhavalGojiya asdoc new maintainers!
5+
Welcome @cclauss and @DhavalGojiya as new maintainers!
66

77
### 🧰 Maintenance
88

99
- Add ruff linting rules to CI #314 #312 #310 #317
10-
- Add pre-commit rules #316
10+
- Add pre-commit hooks #316, #322
1111
- Add intro video to README #308
1212

1313
## v4.0.9 🌈
@@ -16,8 +16,8 @@ Welcome @cclauss and @DhavalGojiya asdoc new maintainers!
1616

1717
### 🧰 Maintenance
1818

19-
- Support for python 3.14
20-
- Add python 3.14 to test matrix @cclauss #302
19+
- Support for Python 3.14
20+
- Add Python 3.14 to test matrix @cclauss #302
2121
- Turn off fail-fast @cclauss #303
2222
- Fix typos in docs @cclauss #304
2323

pyproject.toml

Lines changed: 99 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,119 @@
11
[build-system]
2-
requires = ["hatchling"]
32
build-backend = "hatchling.build"
3+
requires = [ "hatchling" ]
44

55
[project]
66
name = "django-tasks-scheduler"
77
version = "4.0.10"
88
description = "An async job scheduler for django using redis/valkey brokers"
9-
authors = [{ name = "Daniel Moran", email = "daniel@moransoftware.ca" }]
10-
requires-python = ">=3.10"
119
readme = "README.md"
12-
license = "MIT"
13-
maintainers = [{ name = "Daniel Moran", email = "daniel@moransoftware.ca" }]
1410
keywords = [
15-
"redis",
16-
"valkey",
17-
"django",
18-
"background-jobs",
19-
"job-queue",
20-
"task-queue",
21-
"redis-queue",
22-
"scheduled-jobs",
11+
"background-jobs",
12+
"django",
13+
"job-queue",
14+
"redis",
15+
"redis-queue",
16+
"scheduled-jobs",
17+
"task-queue",
18+
"valkey",
2319
]
20+
license = "MIT"
21+
maintainers = [ { name = "Daniel Moran", email = "daniel@moransoftware.ca" } ]
22+
authors = [ { name = "Daniel Moran", email = "daniel@moransoftware.ca" } ]
23+
requires-python = ">=3.10"
2424
classifiers = [
25-
"Development Status :: 5 - Production/Stable",
26-
"Environment :: Web Environment",
27-
"Intended Audience :: Developers",
28-
"License :: OSI Approved :: MIT License",
29-
"Operating System :: OS Independent",
30-
"Programming Language :: Python",
31-
"Programming Language :: Python :: 3.10",
32-
"Programming Language :: Python :: 3.11",
33-
"Programming Language :: Python :: 3.12",
34-
"Programming Language :: Python :: 3.13",
35-
"Programming Language :: Python :: 3.14",
36-
"Framework :: Django",
37-
"Framework :: Django :: 5.0",
38-
"Framework :: Django :: 5.1",
39-
"Framework :: Django :: 5.2",
25+
"Development Status :: 5 - Production/Stable",
26+
"Environment :: Web Environment",
27+
"Framework :: Django",
28+
"Framework :: Django :: 5.0",
29+
"Framework :: Django :: 5.1",
30+
"Framework :: Django :: 5.2",
31+
"Intended Audience :: Developers",
32+
"License :: OSI Approved :: MIT License",
33+
"Operating System :: OS Independent",
34+
"Programming Language :: Python",
35+
"Programming Language :: Python :: 3 :: Only",
36+
"Programming Language :: Python :: 3.10",
37+
"Programming Language :: Python :: 3.11",
38+
"Programming Language :: Python :: 3.12",
39+
"Programming Language :: Python :: 3.13",
40+
"Programming Language :: Python :: 3.14",
4041
]
4142
dependencies = [
42-
"django>=5",
43-
"croniter>=2.0",
44-
"click~=8.2",
45-
"typing-extensions>=4.15.0",
43+
"click~=8.2",
44+
"croniter>=2",
45+
"django>=5",
46+
"typing-extensions>=4.15",
4647
]
4748

48-
[project.optional-dependencies]
49-
yaml = ["pyyaml~=6.0", "types-PyYAML>=6.0.12.20250516"]
50-
valkey = ["valkey>=6.0.2,<7"]
51-
sentry = ["sentry-sdk~=2.19"]
52-
53-
[project.urls]
54-
Homepage = "https://github.com/django-commons/django-tasks-scheduler"
55-
Documentation = "https://django-tasks-scheduler.readthedocs.io/"
56-
"Bug Tracker" = "https://github.com/django-commons/django-tasks-scheduler/issues"
57-
Funding = "https://github.com/sponsors/cunla"
49+
optional-dependencies.sentry = [ "sentry-sdk~=2.19" ]
50+
optional-dependencies.valkey = [ "valkey>=6.0.2,<7" ]
51+
optional-dependencies.yaml = [ "pyyaml~=6.0", "types-pyyaml>=6.0.12.20250516" ]
52+
urls."Bug Tracker" = "https://github.com/django-commons/django-tasks-scheduler/issues"
53+
urls.Documentation = "https://django-tasks-scheduler.readthedocs.io/"
54+
urls.Funding = "https://github.com/sponsors/cunla"
55+
urls.Homepage = "https://github.com/django-commons/django-tasks-scheduler"
5856

5957
[dependency-groups]
6058
dev = [
61-
"pre-commit>=4.2",
62-
"time-machine>=2.19",
63-
"ruff>=0.13",
64-
"coverage[toml]>=7.10",
65-
"fakeredis>=2.28",
66-
"pyyaml>=6",
67-
"mypy>=1.18",
68-
"types-croniter>=6.0.0.20250411",
69-
"beautifulsoup4>=4.13.4"
59+
"beautifulsoup4>=4.13.4",
60+
"coverage[toml]>=7.10",
61+
"fakeredis>=2.28",
62+
"mypy>=1.18",
63+
"pre-commit>=4.2",
64+
"pyyaml>=6",
65+
"ruff>=0.13",
66+
"time-machine>=2.19",
67+
"types-croniter>=6.0.0.20250411",
7068
]
7169

7270
[tool.hatch.build.targets.sdist]
73-
include = ["scheduler"]
71+
include = [ "scheduler" ]
7472

7573
[tool.hatch.build.targets.wheel]
76-
include = ["scheduler"]
74+
include = [ "scheduler" ]
7775

7876
[tool.ruff]
7977
line-length = 120
8078
exclude = [
81-
'__pycache__',
82-
'.github',
83-
'.venv',
84-
'scheduler/migrations',
85-
'testproject',
79+
".github",
80+
".venv",
81+
"__pycache__",
82+
"scheduler/migrations",
83+
"testproject",
8684
]
8785

88-
[tool.ruff.lint]
89-
select = [
90-
"A", # flake8-builtins
91-
"AIR", # Airflow
92-
"ASYNC", # flake8-async
93-
"C4", # flake8-comprehensions
94-
"C90", # McCabe cyclomatic complexity
95-
"DJ", # flake8-django
96-
"E", # pycodestyle
97-
"EXE", # flake8-executable
98-
"F", # Pyflakes
99-
"FA", # flake8-future-annotations
100-
"FAST", # FastAPI
101-
"FIX", # flake8-fixme
102-
"FLY", # flynt
103-
"FURB", # refurb
104-
"ICN", # flake8-import-conventions
105-
"INP", # flake8-no-pep420
106-
"INT", # flake8-gettext
107-
"ISC", # flake8-implicit-str-concat
108-
"LOG", # flake8-logging
109-
"NPY", # NumPy-specific rules
110-
"PD", # pandas-vet
111-
"PERF", # Perflint
112-
"PIE", # flake8-pie
113-
"RSE", # flake8-raise
114-
"SLOT", # flake8-slots
115-
"T10", # flake8-debugger
116-
"TC", # flake8-type-checking
117-
"TD", # flake8-todos
118-
"W", # pycodestyle
119-
"YTT", # flake8-2020
86+
lint.select = [
87+
"A", # flake8-builtins
88+
"AIR", # Airflow
89+
"ASYNC", # flake8-async
90+
"C4", # flake8-comprehensions
91+
"C90", # McCabe cyclomatic complexity
92+
"DJ", # flake8-django
93+
"E", # pycodestyle
94+
"EXE", # flake8-executable
95+
"F", # Pyflakes
96+
"FA", # flake8-future-annotations
97+
"FAST", # FastAPI
98+
"FIX", # flake8-fixme
99+
"FLY", # flynt
100+
"FURB", # refurb
101+
"ICN", # flake8-import-conventions
102+
"INP", # flake8-no-pep420
103+
"INT", # flake8-gettext
104+
"ISC", # flake8-implicit-str-concat
105+
"LOG", # flake8-logging
106+
"NPY", # NumPy-specific rules
107+
"PD", # pandas-vet
108+
"PERF", # Perflint
109+
"PIE", # flake8-pie
110+
"RSE", # flake8-raise
111+
"SLOT", # flake8-slots
112+
"T10", # flake8-debugger
113+
"TC", # flake8-type-checking
114+
"TD", # flake8-todos
115+
"W", # pycodestyle
116+
"YTT", # flake8-2020
120117
# "ANN", # flake8-annotations
121118
# "ARG", # flake8-unused-arguments
122119
# "B", # flake8-bugbear
@@ -148,18 +145,20 @@ select = [
148145
# "TRY", # tryceratops
149146
# "UP", # pyupgrade
150147
]
151-
extend-ignore = ["PIE790"]
152-
mccabe.max-complexity = 13
153-
per-file-ignores."scheduler/models/args.py" = ["DJ012"]
154-
per-file-ignores."scheduler/models/ephemeral_models.py" = ["DJ008"]
155-
per-file-ignores."scheduler/models/task.py" = ["DJ001", "DJ012"]
148+
lint.extend-ignore = [ "PIE790" ]
149+
lint.per-file-ignores."scheduler/models/args.py" = [ "DJ012" ]
150+
lint.per-file-ignores."scheduler/models/ephemeral_models.py" = [ "DJ008" ]
151+
lint.per-file-ignores."scheduler/models/task.py" = [ "DJ001", "DJ012" ]
152+
lint.mccabe.max-complexity = 13
156153

157154
[tool.mypy]
158-
packages = ['scheduler', ]
159-
exclude = ["scheduler/tests/.*\\.py",
160-
"scheduler/migrations/.*\\.py",
161-
"testproject/.*\\.py",
162-
"testproject/tests/.*\\.py"]
155+
packages = [ 'scheduler' ]
156+
exclude = [
157+
"scheduler/tests/.*\\.py",
158+
"scheduler/migrations/.*\\.py",
159+
"testproject/.*\\.py",
160+
"testproject/tests/.*\\.py",
161+
]
163162
strict = true
164163
follow_imports = "silent"
165164
ignore_missing_imports = true

0 commit comments

Comments
 (0)