[tool.poetry] name = "ops_bot" version = "0.1.0" description = "" authors = ["Abel Luck "] [tool.poetry.dependencies] python = "^3.11" matrix-nio = {extras = ["e2e"], version = "^0.22.1"} fastapi = "^0.104.1" uvicorn = "^0.24.0" termcolor = "^1.1.0" Markdown = "^3.4.1" commonmark = "^0.9.1" Jinja2 = "^3.1.2" mautrix = "^0.20.2" click = "^8.1.3" json-logging = "^1.3.0" pydantic-settings = "^2.0.3" prometheus-client = "^0.18.0" prometheus-fastapi-instrumentator = "^6.1.0" # Until python-olm 3.2.16 is released setuptools = "68.2.2" [tool.poetry.dev-dependencies] pytest = "^7.2.0" black = "^22.10.0" isort = "^5.10.1" mypy = "^1.2.0" bandit = "^1.7.4" flake8 = "^6.0.0" flake8-black = "^0.3.5" types-Markdown = "^3.4.0" types-termcolor = "^1.1.5" pytest-asyncio = "^0.20.2" types-commonmark = "^0.9.2" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] start = "ops_bot.main:start_dev" config = "ops_bot.cli:cli" [tool.black] line-length = 88 target-version = ['py39'] [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