[project] authors = [ {name = "Joe Banks", email = "joe@jb3.dev"}, {name = "Chris Lovering", email = "chris@jb3.dev"}, {name = "Fredrick L.", email = "fredrick@pydis.wtf"}, ] license = {text = "MIT"} requires-python = "~=3.13.0" dependencies = [ "pydis-core==11.6.0", "audioop-lts==0.2.1", "beautifulsoup4==4.13.4", "humanize==4.12.2", "jishaku==2.6.0", "kubernetes-asyncio==32.3.0", "loguru==0.7.3", "pydantic==2.11.3", "pydantic-settings==2.9.1", "python-freeipa==1.0.9", "python-keycloak==5.5.0", "sentry-sdk==2.27.0", "tabulate[widechars]==0.9.0", "wand==0.6.13", "asyncssh==2.20.0", ] name = "king-arthur" version = "1.0.0" description = "King Arthur is a helper for the Python Discord DevOps team." [dependency-groups] dev = [ "pre-commit==4.2.0", "ruff==0.11.7", "taskipy==1.14.1", ] [project.optional-dependencies] ldap = [ "bonsai<2.0.0,>=1.5.3", ] voice = [ "pynacl==1.5.0", ] [tool.taskipy.tasks] all = "task lock && task precommit" lock = "task justlock && task install" justlock = "uv lock --upgrade" install = "uv sync --frozen --all-groups" start = "python -m arthur" lint = "pre-commit run --all-files" format = "ruff format arthur" precommit = "pre-commit install" [tool.ruff] target-version = "py313" extend-exclude = [".cache"] line-length = 100 unsafe-fixes = true output-format = "concise" [tool.ruff.lint] select = ["ALL"] ignore = [ "ANN002", "ANN003", "ANN204", "ANN206", "ANN401", "B904", "C401", "C408", "CPY001", "D100", "D104", "D105", "D107", "D203", "D212", "D214", "D215", "D301", "D400", "D401", "D402", "D404", "D405", "D406", "D407", "D408", "D409", "D410", "D411", "D412", "D413", "D414", "D416", "D417", "E731", "RET504", "RUF005", "S311", "SIM102", "SIM108", "PD", "PLR0913", "PLR0917", "PLR6301", "DTZ003", # Rules suggested to be ignored when using ruff format "COM812", "D206", "E111", "E114", "E117", "E501", "ISC001", "Q000", "Q001", "Q002", "Q003", "W191", ] [tool.ruff.lint.per-file-ignores] # McCabe is not supported on Linux systems "arthur/apis/systems/*.py" = ["C901", "PLR0912", "PERF401", "PLR2004"] # Bug in complexity calculation, similar to the above "arthur/exts/systems/system_information.py" = ["C901", "PLR2004"] [tool.ruff.lint.isort] order-by-type = false case-sensitive = true combine-as-imports = true