-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
110 lines (101 loc) · 2.98 KB
/
Copy pathpyproject.toml
File metadata and controls
110 lines (101 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
[project]
name = "dtc-website"
version = "0.1.0"
description = "The unified DataTalks.Club website"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"bleach>=6.2,<7",
"boto3>=1.43.33,<2",
"cryptography>=50,<51",
"django>=6.0,<6.1",
"django-allauth>=65.10,<66",
"django-loginas>=0.3.11,<1",
"django-q2>=1.9,<2",
"django-unfold>=0.62,<1",
"dj-database-url>=3.0,<4",
"gunicorn>=23,<24",
"mistune>=3.1.3,<4",
"psycopg[binary]>=3.2,<4",
"pyjwt>=2.10,<3",
"python-dotenv>=1.1,<2",
"python-json-logger>=3.3,<5",
"pyyaml>=6,<7",
"requests>=2.32,<3",
"whitenoise>=6.9,<7",
]
[dependency-groups]
dev = [
"axe-playwright-python==0.1.8",
"django-stubs>=5.2,<6",
"mypy>=1.17,<2",
"pandas>=2.3,<4",
"playwright>=1.58,<1.59",
"pytest>=8.4,<10",
"pytest-django>=4.11,<5",
"pytest-playwright>=0.7,<1",
"ruff>=0.12,<1",
"tqdm>=4.67,<5",
]
[tool.uv]
package = false
exclude-newer = "2099-12-31T23:00:00Z"
[tool.ruff]
target-version = "py313"
line-length = 100
exclude = [
"*/migrations/*",
"accounts/**",
"api/**",
"studio_courses/**",
"course_management/**",
"courses/**",
"data/**",
"e2e/**",
"scripts/**",
]
[tool.ruff.lint]
select = ["B", "DJ", "E", "F", "I", "UP"]
[tool.ruff.lint.per-file-ignores]
"website/settings/*.py" = ["F403", "F405"]
"*/tests/*.py" = ["DJ008"]
[tool.mypy]
python_version = "3.13"
plugins = ["mypy_django_plugin.main"]
check_untyped_defs = true
exclude = ["migrations/"]
[[tool.mypy.overrides]]
module = [
"accounts.*",
"api.*",
"studio_courses.*",
"course_management.*",
"courses.*",
"data.*",
"e2e.*",
]
ignore_errors = true
[tool.django-stubs]
django_settings_module = "website.settings.test"
[tool.pytest.ini_options]
DJANGO_SETTINGS_MODULE = "website.settings.test"
python_files = ["test_*.py"]
pythonpath = ["."]
addopts = "--strict-markers -p no:cacheprovider -p test_support.root_pytest_guard"
markers = [
"accessibility: deterministic WCAG A/AA route and state coverage",
"core: bounded release-critical local Playwright coverage",
"full: additional deterministic local Playwright coverage",
"remote_readonly: explicit deployed read-only coverage",
"remote_mutation: explicit isolated-development synthetic mutation",
"live_email: explicit controlled-recipient live email smoke",
"live_provider: explicit provider/webhook integration smoke",
"smoke: core availability/auth smoke checks (run first, fail fast)",
"provisioning: API course/content provisioning",
"enrollment: enrollment and identity",
"homework: homework submission + scoring + leaderboard flow",
"project: project submission + peer review + scoring flow",
"dashboards: dashboards and statistics pages",
"teardown: cleanup and clean-state assertions",
"email: Datamailer email verification via CMP's own send audit (dry-run render; xfails if Datamailer is not configured / dry-run is off on the deployment)",
]