[build-system] requires = ["setuptools>=64", "setuptools_scm[toml]>=3.4"] build-backend = "setuptools.build_meta" [project] name = "sigal" description = "Simple static gallery generator" readme = "README.rst" authors = [{name = "Simon Conseil", email = "contact@saimon.org"}] keywords = ["gallery", "static", "generator", "image", "video", "galleria"] license = "MIT" license-files = ["LICENSE"] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Internet :: WWW/HTTP", "Topic :: Multimedia :: Graphics :: Viewers", "Topic :: Software Development :: Libraries :: Python Modules", ] requires-python = ">=3.11" dependencies = [ "blinker", "click", "Jinja2>=2.7", "Markdown", "Pillow>=10.0.0", "pilkit", "natsort", ] dynamic = ["version"] [project.optional-dependencies] all = ["brotli", "feedgenerator", "zopfli", "cryptography", "pillow-heif", "pdf2image"] tests = ["pytest", "pytest-cov"] docs = ["Sphinx>=4.1.0", "furo", "cryptography"] [project.scripts] sigal = "sigal.__main__:main" [project.urls] repository = "https://github.com/saimn/sigal" documentation = "https://sigal.readthedocs.io/en/latest/" [tool.setuptools] include-package-data = true [tool.setuptools.packages.find] where = ["src"] namespaces = true [tool.setuptools.package-data] sigal = [ "plugins/encrypt/static/*", "themes/**", ] [tool.setuptools_scm] write_to = "src/sigal/version.py" [tool.ruff.lint] select = [ "E", "F", "W", # flake8 "I", # isort "UP", # pyupgrade ] ignore = ["E731"] unfixable = [ "F841", # Removes unused variables ] [tool.ruff.lint.isort] known-first-party = ["sigal"] [tool.coverage.run] source = ["sigal"] omit = ["/tmp/*", "tests/*"] [tool.coverage.paths] source = ["src", "*/site-packages"] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "raise AssertionError", "raise NotImplementedError", "if __name__ == .__main__.:", "except KeyboardInterrupt", "except ImportError", ]