[project] name = "geutebruck-api" version = "1.0.0" description = "REST API for Geutebruck GeViScope/GeViSoft Cross-Switching Control" authors = [ {name = "COLSYS", email = "info@colsys.tech"} ] requires-python = ">=3.11" readme = "README.md" license = {text = "Proprietary"} [project.urls] Homepage = "https://git.colsys.tech/COLSYS/geutebruck-api" Repository = "https://git.colsys.tech/COLSYS/geutebruck-api" [tool.black] line-length = 100 target-version = ['py311'] include = '\.pyi?$' extend-exclude = ''' /( # directories \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | build | dist | migrations )/ ''' [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "C", # flake8-comprehensions "B", # flake8-bugbear "UP", # pyupgrade ] ignore = [ "E501", # line too long (handled by black) "B008", # do not perform function calls in argument defaults "C901", # too complex "W191", # indentation contains tabs ] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] # unused imports in __init__.py [tool.ruff.lint.isort] known-third-party = ["fastapi", "pydantic", "sqlalchemy"] [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = false disallow_incomplete_defs = false check_untyped_defs = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_no_return = true strict_equality = true ignore_missing_imports = true [[tool.mypy.overrides]] module = "tests.*" ignore_errors = true [tool.pytest.ini_options] minversion = "7.0" addopts = "-ra -q --strict-markers --cov=src/api --cov-report=html --cov-report=term-missing" testpaths = [ "tests", ] pythonpath = [ "src/api" ] asyncio_mode = "auto" [tool.coverage.run] source = ["src/api"] omit = [ "*/tests/*", "*/migrations/*", "*/__init__.py", ] [tool.coverage.report] precision = 2 exclude_lines = [ "pragma: no cover", "def __repr__", "if TYPE_CHECKING:", "raise AssertionError", "raise NotImplementedError", "if __name__ == .__main__.:", "@abstractmethod", ] [build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta"