[project] name = "vacatureradar" version = "0.1.0" description = "Persoonlijke autonome vacature-assistent voor toegestane publieke bronnen en vacaturemails." readme = "README.md" requires-python = ">=3.12,<3.14" license = {text = "MIT"} authors = [{name = "Jens"}] dependencies = [ "Django==5.2.16", "celery[redis]==5.6.3", "psycopg[binary]==3.3.4", "httpx==0.28.1", "certifi==2026.6.17", "beautifulsoup4==4.15.0", "bleach==6.4.0", "lxml==6.1.1", "feedparser==6.0.12", "PyYAML==6.0.3", "python-dateutil==2.9.0.post0", "defusedxml==0.7.1", "gunicorn==26.0.0", "whitenoise==6.11.0", "cryptography==49.0.0", "msal==1.37.0", ] [project.optional-dependencies] dev = [ "pytest==9.0.2", "pytest-django==4.11.1", "pytest-cov==7.0.0", "ruff==0.12.7", ] browser = ["playwright==1.54.0"] [tool.uv] default-groups = ["dev"] [dependency-groups] dev = [ "pytest==9.0.2", "pytest-django==4.11.1", "pytest-cov==7.0.0", "ruff==0.12.7", ] [tool.pytest.ini_options] DJANGO_SETTINGS_MODULE = "config.settings" python_files = ["test_*.py"] addopts = "-ra --strict-markers --disable-warnings" testpaths = ["tests"] markers = [ "integration: tests die meerdere modules of de database combineren", "security: beveiligingsgerichte tests", ] [tool.ruff] target-version = "py312" line-length = 100 extend-exclude = [".venv", "staticfiles", "media", "local", "*/migrations/*", "docs/reference/*"] [tool.ruff.lint] select = ["E", "F", "I", "B", "UP", "S", "SIM", "RUF"] ignore = ["S101", "S105", "S106", "B008", "RUF012"] [tool.ruff.lint.per-file-ignores] "config/settings.py" = ["S105"] "tests/**/*.py" = ["S101", "S105", "S106", "S108"] "apps/**/management/commands/*.py" = ["S105"] [tool.coverage.run] branch = true source = ["apps", "config"] omit = ["*/migrations/*", "*/admin.py", "*/apps.py"] [tool.coverage.report] show_missing = true skip_covered = true fail_under = 70