[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "digimarks" version = "1.1.99" authors = [ { name = "Michiel Scholten", email = "michiel@diginaut.net" }, ] description = 'Simple bookmarking service, using a SQLite database to store bookmarks, supporting tags, automatic title fetching and REST API calls.' readme = "README.rst" requires-python = ">=3.10" keywords = ["bookmarks", "api"] license = { text = "Apache" } classifiers = [ "Framework :: FastAPI", "Programming Language :: Python :: 3", "License :: OSI Approved :: Apache Software License", ] dependencies = [ "fastapi[all]", "sqlmodel", "alembic", "aiosqlite", "pydantic>2.0", "httpx", "beautifulsoup4", "extract_favicon", "feedgen", ] [dependency-groups] dev = [ {include-group = "lint"}, {include-group = "pub"}, {include-group = "test"} ] test = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", ] lint = [ "ruff>=0.1.0", "mypy>=1.0.0", ] # Publishing on PyPI pub = [ "build", "twine" ] server = [ "gunicorn>=23.0.0", ] # dynamic = ["version"] [project.scripts] my-script = "digimarks:app" [project.urls] "Homepage" = "https://github.com/aquatix/digimarks" "Bug Tracker" = "https://github.com/aquatix/digimarks/issues" [tool.black] line-length = 120 [tool.ruff] exclude = [ ".git", "__pycache__", "docs/source/conf.py", "build", "dist", "example_config/gunicorn_digimarks_conf.py", "example_config/settings.py", ] line-length = 120 [tool.ruff.format] # Prefer single quotes over double quotes quote-style = "single" [tool.ruff.lint] ignore = ["D203", "D213"] select = [ "C9", "D", "E", "F", "I", "W", ] [tool.ruff.lint.flake8-quotes] docstring-quotes = "double" inline-quotes = "single" multiline-quotes = "double" [tool.ruff.lint.mccabe] max-complexity = 10