spiderweb/pyproject.toml
Joe Kaufeld ced11ac2da 👽️ add optional pydantic support
Pydantic is now an optional dependency, and the middleware provides
proper import guards and fallback behavior if Pydantic is not installed.
Updated docs to clarify installation and configuration steps.
2025-10-11 20:14:46 -04:00

91 lines
2.4 KiB
TOML

[project]
name = "spiderweb-framework"
version = "1.4.0"
description = "A small web framework, just big enough for a spider."
authors = [{name="Joe Kaufeld", email="opensource@joekaufeld.com"}]
readme = "README.md"
packages = [{include = "spiderweb"}]
license = "LICENSE.txt"
exclude = [
"tests/*",
"example.py",
"example2.py",
"static_files/*",
"templates/*",
"example_middleware.py",
]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
"Topic :: Internet :: WWW/HTTP :: WSGI",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
"Topic :: Software Development :: Libraries :: Application Frameworks",
]
[tool.poetry.dependencies]
python = "^3.11"
peewee = "^3.17.6"
jinja2 = "^3.1.4"
cryptography = "^43.0.0"
email-validator = "^2.2.0"
[tool.poetry.extras]
# Optional dependencies groups
pydantic = ["pydantic>=2.8.2,<3"]
[tool.poetry.group.dev.dependencies]
ruff = "^0.5.5"
pytest = "^8.3.2"
black = "^24.8.0"
gunicorn = "^23.0.0"
hypothesis = "^6.111.2"
coverage = "^7.6.1"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.poetry_bumpversion.file."spiderweb/constants.py"]
[project.urls]
Homepage = "https://github.com/itsthejoker/spiderweb"
Documentation = "https://github.com/itsthejoker/spiderweb"
Repository = "https://git.joekaufeld.com/jkaufeld/spiderweb"
"Bug Tracker" = "https://github.com/itsthejoker/spiderweb/issues"
[tool.pytest.ini_options]
minversion = "6.0"
addopts = ["--maxfail=2", "-rf"]
[tool.coverage.run]
branch = true
omit = ["conftest.py", "spiderweb/tests/*"]
[tool.coverage.report]
# Regexes for lines to exclude from consideration
exclude_also = [
# Don't complain about missing debug-only code:
"def __repr__",
"if self\\.debug",
# Don't complain if tests don't hit defensive assertion code:
"raise AssertionError",
"raise NotImplementedError",
# Don't complain if non-runnable code isn't run:
"if 0:",
"if __name__ == .__main__.:",
# Don't complain about abstract methods, they aren't run:
"@(abc\\.)?abstractmethod",
# Type checking lines are never run:
"if TYPE_CHECKING:",
]
ignore_errors = true