mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-08-05 18:33:18 +00:00
74aa10f31f
* Chore(deps): Bump the utilities-minor group across 1 directory with 20 updates Bumps the utilities-minor group with 20 updates in the / directory: | Package | From | To | | --- | --- | --- | | [drf-spectacular](https://github.com/tfranzel/drf-spectacular) | `0.29.0` | `0.30.0` | | [drf-spectacular-sidecar](https://github.com/tfranzel/drf-spectacular-sidecar) | `2026.5.1` | `2026.7.1` | | [filelock](https://github.com/tox-dev/py-filelock) | `3.29.0` | `3.32.0` | | [httpx-oauth](https://github.com/frankie567/httpx-oauth) | `0.16.1` | `0.17.0` | | [imap-tools](https://github.com/ikvk/imap_tools) | `1.13.0` | `1.14.0` | | [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `17.4.2` | `17.8.1` | | [openai](https://github.com/openai/openai-python) | `2.32.0` | `2.48.0` | | [regex](https://github.com/mrabarnett/mrab-regex) | `2026.4.4` | `2026.7.19` | | [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.8.0` | `1.9.0` | | [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.4.1` | `5.6.1` | | [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.1` | `1.2.0` | | [zxing-cpp](https://github.com/zxing-cpp/zxing-cpp) | `3.0.0` | `3.1.0` | | [prek](https://github.com/j178/prek) | `0.3.10` | `0.4.11` | | [faker](https://github.com/joke2k/faker) | `40.15.0` | `40.36.0` | | [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` | | [pytest-env](https://github.com/pytest-dev/pytest-env) | `1.6.0` | `1.7.0` | | [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `16.1` | `16.4` | | [types-bleach](https://github.com/python/typeshed) | `6.3.0.20251115` | `6.4.0.20260607` | | [types-pytz](https://github.com/python/typeshed) | `2026.1.1.20260304` | `2026.3.1.20260727` | | [types-regex](https://github.com/python/typeshed) | `2026.4.4.20260408` | `2026.7.19.20260720` | Updates `drf-spectacular` from 0.29.0 to 0.30.0 - [Release notes](https://github.com/tfranzel/drf-spectacular/releases) - [Changelog](https://github.com/tfranzel/drf-spectacular/blob/master/CHANGELOG.rst) - [Commits](https://github.com/tfranzel/drf-spectacular/compare/0.29.0...0.30.0) Updates `drf-spectacular-sidecar` from 2026.5.1 to 2026.7.1 - [Commits](https://github.com/tfranzel/drf-spectacular-sidecar/compare/2026.5.1...2026.7.1) Updates `filelock` from 3.29.0 to 3.32.0 - [Release notes](https://github.com/tox-dev/py-filelock/releases) - [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/py-filelock/compare/3.29.0...3.32.0) Updates `httpx-oauth` from 0.16.1 to 0.17.0 - [Release notes](https://github.com/frankie567/httpx-oauth/releases) - [Commits](https://github.com/frankie567/httpx-oauth/compare/v0.16.1...v0.17.0) Updates `imap-tools` from 1.13.0 to 1.14.0 - [Release notes](https://github.com/ikvk/imap_tools/releases) - [Changelog](https://github.com/ikvk/imap_tools/blob/master/docs/release_notes.rst) - [Commits](https://github.com/ikvk/imap_tools/compare/v1.13.0...v1.14.0) Updates `ocrmypdf` from 17.4.2 to 17.8.1 - [Release notes](https://github.com/ocrmypdf/OCRmyPDF/releases) - [Commits](https://github.com/ocrmypdf/OCRmyPDF/compare/v17.4.2...v17.8.1) Updates `openai` from 2.32.0 to 2.48.0 - [Release notes](https://github.com/openai/openai-python/releases) - [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/openai/openai-python/compare/v2.32.0...v2.48.0) Updates `regex` from 2026.4.4 to 2026.7.19 - [Changelog](https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt) - [Commits](https://github.com/mrabarnett/mrab-regex/compare/2026.4.4...2026.7.19) Updates `scikit-learn` from 1.8.0 to 1.9.0 - [Release notes](https://github.com/scikit-learn/scikit-learn/releases) - [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.8.0...1.9.0) Updates `sentence-transformers` from 5.4.1 to 5.6.1 - [Release notes](https://github.com/huggingface/sentence-transformers/releases) - [Commits](https://github.com/huggingface/sentence-transformers/compare/v5.4.1...v5.6.1) Updates `watchfiles` from 1.1.1 to 1.2.0 - [Release notes](https://github.com/samuelcolvin/watchfiles/releases) - [Commits](https://github.com/samuelcolvin/watchfiles/compare/v1.1.1...v1.2.0) Updates `zxing-cpp` from 3.0.0 to 3.1.0 - [Release notes](https://github.com/zxing-cpp/zxing-cpp/releases) - [Commits](https://github.com/zxing-cpp/zxing-cpp/compare/v3.0.0...v3.1.0) Updates `prek` from 0.3.10 to 0.4.11 - [Release notes](https://github.com/j178/prek/releases) - [Changelog](https://github.com/j178/prek/blob/master/CHANGELOG.md) - [Commits](https://github.com/j178/prek/compare/v0.3.10...v0.4.11) Updates `faker` from 40.15.0 to 40.36.0 - [Release notes](https://github.com/joke2k/faker/releases) - [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md) - [Commits](https://github.com/joke2k/faker/compare/v40.15.0...v40.36.0) Updates `pytest` from 9.0.3 to 9.1.1 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1) Updates `pytest-env` from 1.6.0 to 1.7.0 - [Release notes](https://github.com/pytest-dev/pytest-env/releases) - [Commits](https://github.com/pytest-dev/pytest-env/compare/1.6.0...1.7.0) Updates `pytest-rerunfailures` from 16.1 to 16.4 - [Changelog](https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst) - [Commits](https://github.com/pytest-dev/pytest-rerunfailures/compare/16.1...16.4) Updates `types-bleach` from 6.3.0.20251115 to 6.4.0.20260607 - [Commits](https://github.com/python/typeshed/commits) Updates `types-pytz` from 2026.1.1.20260304 to 2026.3.1.20260727 - [Commits](https://github.com/python/typeshed/commits) Updates `types-regex` from 2026.4.4.20260408 to 2026.7.19.20260720 - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: drf-spectacular dependency-version: 0.30.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: drf-spectacular-sidecar dependency-version: 2026.7.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: filelock dependency-version: 3.32.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: httpx-oauth dependency-version: 0.17.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: imap-tools dependency-version: 1.14.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: ocrmypdf dependency-version: 17.8.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: openai dependency-version: 2.48.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: regex dependency-version: 2026.7.19 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: scikit-learn dependency-version: 1.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: sentence-transformers dependency-version: 5.6.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: watchfiles dependency-version: 1.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: zxing-cpp dependency-version: 3.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: prek dependency-version: 0.4.11 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: faker dependency-version: 40.36.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: pytest dependency-version: 9.1.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: pytest-env dependency-version: 1.7.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: pytest-rerunfailures dependency-version: '16.4' dependency-type: direct:development update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: types-bleach dependency-version: 6.4.0.20260607 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: types-pytz dependency-version: 2026.3.1.20260727 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: utilities-minor - dependency-name: types-regex dependency-version: 2026.7.19.20260720 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: utilities-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Downgrades ocrmypdf to avoid ocrmypdf/OCRmyPDF/issues/1713 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: stumpylog <797416+stumpylog@users.noreply.github.com>
350 lines
9.6 KiB
TOML
350 lines
9.6 KiB
TOML
[project]
|
|
name = "paperless-ngx"
|
|
version = "3.0.5"
|
|
description = "A community-supported supercharged document management system: scan, index and archive all your physical documents"
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Programming Language :: Python :: 3.14",
|
|
]
|
|
# TODO: Move certain things to groups and then utilize that further
|
|
# This will allow testing to not install a webserver, mysql, etc
|
|
dependencies = [
|
|
"azure-ai-documentintelligence>=1.0.2",
|
|
"babel>=2.17",
|
|
"bleach~=6.4.0",
|
|
"celery[redis]~=5.6.2",
|
|
"channels~=4.2",
|
|
"channels-redis~=4.2",
|
|
"concurrent-log-handler~=0.9.25",
|
|
"dateparser~=1.2",
|
|
# WARNING: django does not use semver.
|
|
# Only patch versions are guaranteed to not introduce breaking changes.
|
|
"django~=5.2.13",
|
|
"django-allauth[mfa,socialaccount]~=65.16.0",
|
|
"django-auditlog~=3.4.1",
|
|
"django-cachalot~=2.9.0",
|
|
"django-compression-middleware~=0.5.0",
|
|
"django-cors-headers~=4.9.0",
|
|
"django-extensions~=4.1",
|
|
"django-filter~=25.1",
|
|
"django-guardian~=3.3.0",
|
|
"django-multiselectfield~=1.0.1",
|
|
"django-rich~=2.2.0",
|
|
"django-soft-delete~=1.0.18",
|
|
"django-treenode>=0.24",
|
|
"djangorestframework~=3.16",
|
|
"djangorestframework-guardian~=0.4.0",
|
|
"drf-spectacular~=0.30",
|
|
"drf-spectacular-sidecar~=2026.7.1",
|
|
"drf-writable-nested~=0.7.1",
|
|
"filelock~=3.32.0",
|
|
"flower~=2.0.1",
|
|
"gotenberg-client~=0.14.0",
|
|
"httpx-oauth~=0.17",
|
|
"ijson>=3.2",
|
|
"imap-tools~=1.14.0",
|
|
"jinja2~=3.1.5",
|
|
"langdetect~=1.0.9",
|
|
"llama-index-core>=0.14.22",
|
|
"llama-index-embeddings-huggingface>=0.6.1",
|
|
"llama-index-embeddings-ollama>=0.9",
|
|
"llama-index-embeddings-openai-like>=0.2.2",
|
|
"llama-index-llms-ollama>=0.9.1",
|
|
"llama-index-llms-openai-like>=0.7.1",
|
|
"nltk~=3.10.0",
|
|
"ocrmypdf~=17.7.0",
|
|
"openai>=2.48",
|
|
"pathvalidate~=3.3.1",
|
|
"pdf2image~=1.17.0",
|
|
"python-dateutil~=2.9.0",
|
|
"python-dotenv~=1.2.1",
|
|
"python-gnupg~=0.5.4",
|
|
"python-ipware~=3.0.0",
|
|
"python-magic~=0.4.27",
|
|
"rapidfuzz~=3.14.5",
|
|
"redis[hiredis]~=5.2.1",
|
|
"regex>=2026.7.19",
|
|
"scikit-learn~=1.9.0",
|
|
"sentence-transformers>=5.6.1",
|
|
"setproctitle~=1.3.4",
|
|
"sqlite-vec==0.1.9",
|
|
"tantivy~=0.26.0",
|
|
"tika-client~=0.11.0",
|
|
"torch~=2.13.0",
|
|
"watchfiles>=1.2",
|
|
"whitenoise~=6.11",
|
|
"zxing-cpp~=3.1.0",
|
|
]
|
|
[project.optional-dependencies]
|
|
mariadb = [
|
|
"mysqlclient~=2.2.7",
|
|
]
|
|
postgres = [
|
|
"psycopg[c,pool]==3.3",
|
|
# Direct dependency for proper resolution of the pre-built wheels
|
|
"psycopg-c==3.3",
|
|
"psycopg-pool==3.3.1",
|
|
]
|
|
webserver = [
|
|
"granian[uvloop]~=2.7.0",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
{ include-group = "docs" },
|
|
{ include-group = "lint" },
|
|
{ include-group = "testing" },
|
|
]
|
|
docs = [
|
|
"zensical>=0.0.51",
|
|
]
|
|
lint = [
|
|
"prek~=0.4.11",
|
|
"ruff~=0.16.1",
|
|
]
|
|
testing = [
|
|
"daphne",
|
|
"factory-boy~=3.3.1",
|
|
"faker~=40.36.0",
|
|
"imagehash",
|
|
"pytest~=9.1.1",
|
|
"pytest-cov~=7.1.0",
|
|
"pytest-django~=4.12.0",
|
|
"pytest-env~=1.7.0",
|
|
"pytest-httpx",
|
|
"pytest-mock~=3.15.1",
|
|
# "pytest-randomly~=4.0.1",
|
|
"pytest-rerunfailures~=16.4",
|
|
"pytest-sugar",
|
|
"pytest-xdist~=3.8.0",
|
|
"time-machine>=2.13",
|
|
]
|
|
typing = [
|
|
"celery-types",
|
|
"django-filter-stubs",
|
|
"django-stubs[compatible-mypy]",
|
|
"djangorestframework-stubs[compatible-mypy]",
|
|
"lxml-stubs",
|
|
"microsoft-python-type-stubs @ git+https://github.com/microsoft/python-type-stubs.git",
|
|
"mypy",
|
|
"mypy-baseline",
|
|
"pyrefly",
|
|
"types-bleach",
|
|
"types-channels",
|
|
"types-colorama",
|
|
"types-dateparser",
|
|
"types-markdown",
|
|
"types-pygments",
|
|
"types-python-dateutil",
|
|
"types-pytz",
|
|
"types-redis",
|
|
"types-regex",
|
|
"types-setuptools"
|
|
]
|
|
|
|
[tool.uv]
|
|
required-version = ">=0.9.0"
|
|
environments = [
|
|
"sys_platform == 'darwin'",
|
|
"sys_platform == 'linux'",
|
|
]
|
|
package = false
|
|
[[tool.uv.index]]
|
|
name = "pytorch-cpu"
|
|
url = "https://download.pytorch.org/whl/cpu"
|
|
explicit = true
|
|
[tool.uv.sources]
|
|
# Markers are chosen to select these almost exclusively when building the Docker image
|
|
psycopg-c = [
|
|
{ url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-trixie-3.3.0/psycopg_c-3.3.0-cp312-cp312-linux_x86_64.whl", marker = "sys_platform == 'linux' and platform_machine == 'x86_64' and python_version == '3.12'" },
|
|
{ url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-trixie-3.3.0/psycopg_c-3.3.0-cp312-cp312-linux_aarch64.whl", marker = "sys_platform == 'linux' and platform_machine == 'aarch64' and python_version == '3.12'" },
|
|
]
|
|
torch = [
|
|
{ index = "pytorch-cpu" },
|
|
]
|
|
|
|
[tool.ruff]
|
|
target-version = "py311"
|
|
line-length = 88
|
|
src = [
|
|
"src",
|
|
]
|
|
respect-gitignore = true
|
|
# https://docs.astral.sh/ruff/settings/
|
|
fix = true
|
|
show-fixes = true
|
|
output-format = "grouped"
|
|
[tool.ruff.format]
|
|
line-ending = "lf"
|
|
[tool.ruff.lint]
|
|
# https://docs.astral.sh/ruff/rules/
|
|
select = [ "E4", "E7", "E9", "F" ]
|
|
extend-select = [
|
|
"COM", # https://docs.astral.sh/ruff/rules/#flake8-commas-com
|
|
"DJ", # https://docs.astral.sh/ruff/rules/#flake8-django-dj
|
|
"EXE", # https://docs.astral.sh/ruff/rules/#flake8-executable-exe
|
|
"FBT", # https://docs.astral.sh/ruff/rules/#flake8-boolean-trap-fbt
|
|
"FLY", # https://docs.astral.sh/ruff/rules/#flynt-fly
|
|
"G201", # https://docs.astral.sh/ruff/rules/#flake8-logging-format-g
|
|
"I", # https://docs.astral.sh/ruff/rules/#isort-i
|
|
"ICN", # https://docs.astral.sh/ruff/rules/#flake8-import-conventions-icn
|
|
"INP", # https://docs.astral.sh/ruff/rules/#flake8-no-pep420-inp
|
|
"ISC", # https://docs.astral.sh/ruff/rules/#flake8-implicit-str-concat-isc
|
|
"PIE", # https://docs.astral.sh/ruff/rules/#flake8-pie-pie
|
|
"PLC", # https://docs.astral.sh/ruff/rules/#pylint-pl
|
|
"PLE", # https://docs.astral.sh/ruff/rules/#pylint-pl
|
|
"PTH", # https://docs.astral.sh/ruff/rules/#flake8-use-pathlib-pth
|
|
"Q", # https://docs.astral.sh/ruff/rules/#flake8-quotes-q
|
|
"RSE", # https://docs.astral.sh/ruff/rules/#flake8-raise-rse
|
|
"RUF", # https://docs.astral.sh/ruff/rules/#ruff-specific-rules-ruf
|
|
"SIM", # https://docs.astral.sh/ruff/rules/#flake8-simplify-sim
|
|
"T20", # https://docs.astral.sh/ruff/rules/#flake8-print-t20
|
|
"TC", # https://docs.astral.sh/ruff/rules/#flake8-type-checking-tc
|
|
"TID", # https://docs.astral.sh/ruff/rules/#flake8-tidy-imports-tid
|
|
"UP", # https://docs.astral.sh/ruff/rules/#pyupgrade-up
|
|
"W", # https://docs.astral.sh/ruff/rules/#pycodestyle-e-w
|
|
]
|
|
ignore = [
|
|
"DJ001",
|
|
"PLC0415",
|
|
"RUF012",
|
|
"SIM105",
|
|
]
|
|
# Migrations
|
|
per-file-ignores."*/migrations/*.py" = [
|
|
"E501",
|
|
"SIM",
|
|
"T201",
|
|
]
|
|
# Testing
|
|
per-file-ignores."*/tests/*.py" = [
|
|
"E501",
|
|
"SIM117",
|
|
]
|
|
per-file-ignores.".github/scripts/*.py" = [
|
|
"E501",
|
|
"INP001",
|
|
"SIM117",
|
|
]
|
|
# Docker specific
|
|
per-file-ignores."docker/rootfs/usr/local/bin/wait-for-redis.py" = [
|
|
"INP001",
|
|
"T201",
|
|
]
|
|
per-file-ignores."docker/wait-for-redis.py" = [
|
|
"INP001",
|
|
"T201",
|
|
]
|
|
per-file-ignores."src/documents/models.py" = [
|
|
"SIM115",
|
|
]
|
|
isort.force-single-line = true
|
|
|
|
[tool.codespell]
|
|
ignore-words-list = "criterias,afterall,valeu,ureue,equest,ure,assertIn,Oktober,commitish"
|
|
skip = """\
|
|
src-ui/src/locale/*,src-ui/pnpm-lock.yaml,src-ui/e2e/*,src/paperless_mail/tests/samples/*,src/paperless/tests/samples\
|
|
/mail/*,src/documents/tests/samples/*,*.po,*.json\
|
|
"""
|
|
write-changes = true
|
|
|
|
[tool.pyproject-fmt]
|
|
table_format = "long"
|
|
|
|
[tool.mypy]
|
|
mypy_path = "src"
|
|
disallow_any_generics = true
|
|
disallow_untyped_defs = true
|
|
disallow_incomplete_defs = true
|
|
check_untyped_defs = true
|
|
warn_redundant_casts = true
|
|
warn_unused_ignores = true
|
|
plugins = [
|
|
"mypy_django_plugin.main",
|
|
"mypy_drf_plugin.main",
|
|
]
|
|
|
|
[tool.pyrefly]
|
|
baseline = ".pyrefly-baseline.json"
|
|
python-platform = "linux"
|
|
search-path = [ "src" ]
|
|
|
|
[tool.django-stubs]
|
|
django_settings_module = "paperless.settings"
|
|
|
|
[tool.pytest]
|
|
addopts = [
|
|
"--pythonwarnings=all",
|
|
"--cov",
|
|
"--cov-report=html",
|
|
"--cov-report=xml",
|
|
"--numprocesses=auto",
|
|
"--maxprocesses=16",
|
|
"--dist=loadscope",
|
|
"--durations=50",
|
|
"--durations-min=0.5",
|
|
"--junitxml=junit.xml",
|
|
"-o",
|
|
"junit_family=legacy",
|
|
]
|
|
DJANGO_SETTINGS_MODULE = "paperless.settings"
|
|
markers = [
|
|
"live: Integration tests requiring external services (Gotenberg, Tika, nginx, etc)",
|
|
"nginx: Tests that make HTTP requests to the local nginx service",
|
|
"gotenberg: Tests requiring Gotenberg service",
|
|
"tika: Tests requiring Tika service",
|
|
"greenmail: Tests requiring Greenmail service",
|
|
"date_parsing: Tests which cover date parsing from content or filename",
|
|
"management: Tests which cover management commands/functionality",
|
|
"search: Tests for the Tantivy search backend",
|
|
"api: Tests for REST API endpoints",
|
|
]
|
|
minversion = "9.0"
|
|
norecursedirs = [ "src/locale/", ".venv/", "src-ui/" ]
|
|
pythonpath = [ "src" ]
|
|
strict_config = true
|
|
strict_markers = true
|
|
strict_parametrization_ids = true
|
|
strict_xfail = true
|
|
testpaths = [
|
|
"src/documents/tests/",
|
|
"src/paperless/tests/",
|
|
"src/paperless_mail/tests/",
|
|
"src/paperless_ai/tests",
|
|
]
|
|
|
|
[tool.pytest_env]
|
|
PAPERLESS_SECRET_KEY = "test-secret-key-do-not-use-in-production"
|
|
PAPERLESS_DISABLE_DBHANDLER = "true"
|
|
PAPERLESS_CACHE_BACKEND = "django.core.cache.backends.locmem.LocMemCache"
|
|
PAPERLESS_CHANNELS_BACKEND = "channels.layers.InMemoryChannelLayer"
|
|
# I don't think anything hits this, but just in case, basically infinite
|
|
PAPERLESS_TOKEN_THROTTLE_RATE = "1000/min"
|
|
|
|
[tool.coverage.report]
|
|
exclude_also = [
|
|
"if settings.AUDIT_LOG_ENABLED:",
|
|
"if AUDIT_LOG_ENABLED:",
|
|
"if TYPE_CHECKING:",
|
|
]
|
|
[tool.coverage.run]
|
|
source = [
|
|
"src/",
|
|
]
|
|
omit = [
|
|
"*/tests/*",
|
|
"manage.py",
|
|
"paperless/wsgi.py",
|
|
"paperless/auth.py",
|
|
]
|
|
|
|
[tool.mypy-baseline]
|
|
baseline_path = ".mypy-baseline.txt"
|
|
sort_baseline = true
|
|
ignore_categories = [ "note" ]
|