mirror of
https://github.com/simonw/datasette.git
synced 2026-05-27 20:36:17 +02:00
- New CSRF protection middleware inspired by Go 1.25 and research by Filippo Valsorda - https://words.filippo.io/csrf/ - this replaces the old CSRF token based protection. - Removes all instances of `<input type="hidden" name="csrftoken" value="{{ csrftoken() }}">` in the templates - they are no longer needed. - Removes the `def skip_csrf(datasette, scope):` plugin hook defined in `datasette/hookspecs.py` and its documentation and tests. - Updated CSRF protection documentation to describe the new approach. - Upgrade guide now describes the CSRF change.
103 lines
2.5 KiB
TOML
103 lines
2.5 KiB
TOML
[project]
|
|
name = "datasette"
|
|
dynamic = ["version"]
|
|
description = "An open source multi-tool for exploring and publishing data"
|
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
authors = [
|
|
{ name = "Simon Willison" },
|
|
]
|
|
license = "Apache-2.0"
|
|
requires-python = ">=3.10"
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Framework :: Datasette",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"Intended Audience :: End Users/Desktop",
|
|
"Topic :: Database",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Programming Language :: Python :: 3.14",
|
|
]
|
|
|
|
dependencies = [
|
|
"asgiref>=3.2.10",
|
|
"click>=7.1.1",
|
|
"click-default-group>=1.2.3",
|
|
"Jinja2>=2.10.3",
|
|
"hupper>=1.9",
|
|
"httpx>=0.20,<1.0",
|
|
"pluggy>=1.0",
|
|
"uvicorn>=0.11",
|
|
"aiofiles>=0.4",
|
|
"janus>=0.6.2",
|
|
"PyYAML>=5.3",
|
|
"mergedeep>=1.1.1",
|
|
"itsdangerous>=1.1",
|
|
"sqlite-utils>=3.30",
|
|
"asyncinject>=0.6.1",
|
|
"setuptools",
|
|
"pip",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://datasette.io/"
|
|
Documentation = "https://docs.datasette.io/en/stable/"
|
|
Changelog = "https://docs.datasette.io/en/stable/changelog.html"
|
|
"Live demo" = "https://latest.datasette.io/"
|
|
"Source code" = "https://github.com/simonw/datasette"
|
|
Issues = "https://github.com/simonw/datasette/issues"
|
|
CI = "https://github.com/simonw/datasette/actions?query=workflow%3ATest"
|
|
|
|
[project.scripts]
|
|
datasette = "datasette.cli:cli"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=9",
|
|
"pytest-xdist>=2.2.1",
|
|
"pytest-asyncio>=1.2.0",
|
|
"beautifulsoup4>=4.8.1",
|
|
"black==26.1.0",
|
|
"blacken-docs==1.20.0",
|
|
"pytest-timeout>=1.4.2",
|
|
"trustme>=0.7",
|
|
"cogapp>=3.3.0",
|
|
"multipart-form-data-conformance==0.1a0",
|
|
"ruff>=0.9",
|
|
# docs
|
|
"Sphinx==7.4.7",
|
|
"furo==2025.9.25",
|
|
"sphinx-autobuild",
|
|
"codespell>=2.2.5",
|
|
"sphinx-copybutton",
|
|
"sphinx-inline-tabs",
|
|
"myst-parser",
|
|
"sphinx-markdown-builder",
|
|
"ruamel.yaml",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
rich = ["rich"]
|
|
|
|
[build-system]
|
|
requires = ["setuptools"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["datasette*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
datasette = ["templates/*.html"]
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = {attr = "datasette.version.__version__"}
|
|
|
|
[tool.ruff]
|
|
line-length = 160
|
|
select = ["E", "F", "W"]
|
|
|
|
[tool.uv]
|
|
package = true
|