[project] name = "infra" version = "2.0.0" description = "Infrastructure for Python Discord" authors = [{ name = "Python Discord", email = "info@pythondiscord.com" }] requires-python = ">3.11,<4.0" readme = "README.md" license = "MIT" dependencies = [ "pre-commit==4.2.0", "ruff==0.11.7", "taskipy==1.14.1", ] [dependency-groups] ansible = [ "ansible-core>=2.17.0,<3", "ansible-lint==25.2.1 ; platform_system != 'Windows'", "dnspython==2.7.0", ] dns = [ "octodns>=1.8.0,<2", "octodns-cloudflare>=0.0.9,<0.0.10", ] docs = [ "mkdocs-material[imaging]>=9.5.31,<10", "mkdocs-glightbox>=0.4.0,<0.5", "mkdocs-git-committers-plugin-2>=2.3.0,<3", "mkdocs-git-revision-date-localized-plugin>=1.2.6,<2", ] [tool.uv] package = false default-groups = [ "ansible", "dns", "docs", ] [tool.taskipy.tasks] lint = "pre-commit run --all-files" precommit = "pre-commit install" serve-docs = "cd docs && mkdocs serve" build-docs = "cd docs && mkdocs build" [tool.ruff] target-version = "py311" extend-exclude = [".cache"] line-length = 120 unsafe-fixes = true output-format = "concise" [tool.ruff.lint] select = ["ALL"] ignore = [ "ANN002", "ANN003", "ANN101", "ANN102", "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", "RUF012", "RUF015", "S311", "SIM102", "SIM108", # Docs "A001", "INP001", # Rules suggested to be ignored when using ruff format "COM812", "COM819", "D206", "E111", "E114", "E117", "E501", "ISC001", "Q000", "Q001", "Q002", "Q003", "W191", ] [tool.ruff.lint.isort] order-by-type = false case-sensitive = true combine-as-imports = true