[project] name = "matrix-ops-bot" version = "0.1.0" description = "A bot for ops in Matrix" readme = "README.md" authors = [{ name = "Abel Luck", email = "abel@guardianproject.info" }] requires-python = ">=3.11" dependencies = [ "matrix-nio[e2e]>=0.22.1,<0.23.0", "fastapi>=0.104.1,<0.105.0", "uvicorn>=0.24.0,<0.25.0", "termcolor>=1.1.0,<2.0.0", "Markdown>=3.4.1,<4.0.0", "commonmark>=0.9.1,<0.10.0", "Jinja2>=3.1.2,<4.0.0", "mautrix>=0.20.2,<0.21.0", "click>=8.1.3,<9.0.0", "json-logging>=1.3.0,<2.0.0", "pydantic-settings>=2.0.3,<3.0.0", "prometheus-client>=0.18.0,<0.19.0", "prometheus-fastapi-instrumentator>=6.1.0,<7.0.0", "python-olm>=3.2.16,<4.0.0", ] [project.scripts] start = "ops_bot.main:start_dev" config = "ops_bot.cli:cli" matrix-ops-bot = "ops_bot.main:main" [dependency-groups] dev = [ "pytest>=7.2.0,<8.0.0", "black>=22.10.0,<23.0.0", "isort>=5.10.1,<6.0.0", "mypy>=1.2.0,<2.0.0", "bandit>=1.7.4,<2.0.0", "flake8>=6.0.0,<7.0.0", "flake8-black>=0.3.5,<0.4.0", "types-Markdown>=3.4.0,<4.0.0", "types-termcolor>=1.1.5,<2.0.0", "pytest-asyncio>=0.20.2,<0.21.0", "types-commonmark>=0.9.2,<0.10.0", ] [tool.uv.sources] python-olm = { index = "python-olm" } [[tool.uv.index]] name = "python-olm" url = "https://gitlab.matrix.org/api/v4/projects/27/packages/pypi/simple" explicit = true [build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools] include-package-data = true [tool.setuptools.packages.find] where = ["."] include = ["ops_bot*"] [tool.black] line-length = 88 target-version = ['py311'] [tool.mypy] files = "ops_bot,tests" mypy_path = "ops_bot" ignore_missing_imports = true follow_imports = "silent" # Ensure full coverage disallow_untyped_calls = true disallow_untyped_defs = true disallow_incomplete_defs = true disallow_untyped_decorators = true check_untyped_defs = true # Restrict dynamic typing disallow_any_generics = true disallow_subclassing_any = true warn_return_any = true # Know exactly what you're doing warn_redundant_casts = true warn_unused_ignores = true warn_unused_configs = true warn_unreachable = true show_error_codes = true # Explicit is better than implicit no_implicit_optional = true