[build-system] requires = ["setuptools>=69.0"] build-backend = "setuptools.build_meta" [project] name = "smavs" version = "0.1.0" description = "SMAVS - Spiral Composition Engine." readme = "README.md" requires-python = ">=3.11" license = { file = "LICENSE" } authors = [ { name = "Spiral" } ] keywords = [ "composition", "engine", "framework", "modular", "spiral", "smavs", ] classifiers = [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: Other/Proprietary License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Typing :: Typed", ] dependencies = [] [project.urls] Homepage = "https://gitea.netbird.smavs.duckdns.org/SMAVS/smavs" Repository = "https://gitea.netbird.smavs.duckdns.org/SMAVS/smavs" Documentation = "https://gitea.netbird.smavs.duckdns.org/SMAVS/smavs" [project.optional-dependencies] dev = [ "ruff", "mypy", "pytest", "pytest-cov", "coverage", "mkdocs", "mkdocs-material", ] [tool.setuptools] include-package-data = true [tool.ruff] target-version = "py311" line-length = 88 src = ["api", "artifacts", "core", "modules", "shared", "tests"] [tool.ruff.lint] select = [ "E", "F", "W", "I", "UP", "B", "SIM", "C4", "N", "ANN", "RET", "RUF", ] ignore = [ "ANN101", "ANN102", ] fixable = ["ALL"] [tool.ruff.format] quote-style = "double" indent-style = "space" line-ending = "lf" docstring-code-format = true [tool.mypy] python_version = "3.11" strict = true warn_unused_configs = true warn_unused_ignores = true warn_return_any = true warn_redundant_casts = true warn_unreachable = true disallow_untyped_defs = true disallow_incomplete_defs = true disallow_untyped_calls = true check_untyped_defs = true no_implicit_optional = true strict_equality = true pretty = true show_error_codes = true exclude = [ "^docs/", "^examples/", ] [tool.pytest.ini_options] minversion = "8.0" testpaths = [ "tests", ] python_files = [ "test_*.py", ] python_classes = [ "Test*", ] python_functions = [ "test_*", ] addopts = [ "-ra", "--strict-markers", "--strict-config", ] [tool.coverage.run] branch = true source = [ "api", "artifacts", "core", "modules", "shared", ] omit = [ "tests/*", ] [tool.coverage.report] show_missing = true skip_empty = true fail_under = 95 exclude_lines = [ "pragma: no cover", "if TYPE_CHECKING:", "raise NotImplementedError", "pass", ] [tool.mkdocs] config_file = "mkdocs.yml"