[project] name = "linkding" version = "1.45.0" description = "Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker." readme = "README.md" requires-python = ">=3.13" dependencies = [ "beautifulsoup4>=4.14.3", "bleach>=6.3.0", "bleach-allowlist>=1.0.3", "django>=6.0", "djangorestframework>=3.16.1", "huey>=2.5.5", "markdown>=3.10", "mozilla-django-oidc>=5.0.2", "requests>=2.32.5", "supervisor>=4.3.0", "uwsgi>=2.0.31", "waybackpy>=3.0.6", ] [dependency-groups] dev = [ "coverage>=7.13.1", "django-debug-toolbar>=6.1.0", "djlint>=1.36.4", "playwright>=1.57.0", "psycopg[binary]>=3.2.9", "pytest>=9.0.2", "pytest-django>=4.11.1", "pytest-xdist>=3.8.0", "ruff>=0.14.10", ] # For PostgreSQL support, use the binary release for development so that not # everyone needs to build from source. For production, use a separate dependency # group that builds the driver from source. uv also needs to build it from # source to update the lockfile, which requires libpq. On macOS: # - brew install libpq # - export PATH="/opt/homebrew/opt/libpq/bin:$PATH" # - uv add --group postgres psycopg[c] postgres = [ "psycopg[c]>=3.2.9", ] [tool.uv] # Prefer system Python for now, less complications when copying the venv in the Docker build python-preference = "system" [tool.djlint] custom_html="ld-\\w+,ld-\\w+-\\w+" custom_blocks="formhelp" indent=2 format_js=true profile="django" [tool.djlint.js] indent_size=2 [tool.ruff.lint] select = [ # pycodestyle "E", # Pyflakes "F", # pyupgrade "UP", # flake8-bugbear "B", # flake8-simplify "SIM", # isort "I", ] # ignore line length violations ignore = ["E501"]