[build-system] requires = ["setuptools>=75", "wheel"] build-backend = "setuptools.build_meta" [project] name = "volumen" version = "0.4.0" description = "A small, file-based Markdown blog engine with a built-in admin." readme = "README.md" keywords = ["blog", "markdown", "fastapi", "cms", "static-blog", "toml", "rss", "json-feed", "engine"] requires-python = ">=3.14" license = {text = "MIT"} authors = [{name = "Petr BalvĂ­n", email = "petrbalvin@yandex.com"}] classifiers = [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: FastAPI", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Operating System :: POSIX :: BSD", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Topic :: Internet :: WWW/HTTP", "Topic :: Text Processing :: Markup :: Markdown", "Typing :: Typed", ] dependencies = [ "fastapi[standard]>=0.115", "itsdangerous>=2.2", "jinja2>=3.1", "markdown>=3.7", "nh3>=0.2", "pymdown-extensions>=10.14", "tomli-w>=1.2", "python-multipart>=0.0.20", ] [project.scripts] volumen = "volumen.cli:main" [project.urls] Homepage = "https://sourcedock.dev/petrbalvin/volumen" Repository = "https://sourcedock.dev/petrbalvin/volumen" Issues = "https://sourcedock.dev/petrbalvin/volumen/issues" Changelog = "https://sourcedock.dev/petrbalvin/volumen/blob/main/CHANGELOG.md" Documentation = "https://sourcedock.dev/petrbalvin/volumen/blob/main/docs" [dependency-groups] dev = [ "pytest>=8", "pytest-cov>=5", "httpx2>=2.7", "ruff>=0.9", ] [tool.setuptools.packages.find] where = ["src"] [tool.ruff] line-length = 100 indent-width = 4 [tool.ruff.format] quote-style = "double" [tool.ruff.lint] select = ["E", "F", "W", "I", "N", "UP", "B", "SIM", "C4"] [tool.ruff.lint.per-file-ignores] "src/volumen/admin_auth_routes.py" = ["B008"] "src/volumen/admin_media_routes.py" = ["B008"] "src/volumen/admin_post_routes.py" = ["B008"] "src/volumen/admin_settings_routes.py" = ["B008"] "src/volumen/api_routes.py" = ["B008"] [tool.coverage.run] branch = true source = ["volumen"] [tool.coverage.report] show_missing = true skip_covered = false fail_under = 80 [tool.pytest.ini_options] testpaths = ["tests"] addopts = "--cov=volumen --cov-report=term-missing --cov-fail-under=80"