[tool.poetry] name = "pydis_core" version = "11.5.1" description = "PyDis core provides core functionality and utility to the bots of the Python Discord community." authors = ["Python Discord "] license = "MIT" classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", ] packages = [ { include = "pydis_core" }, ] include = ["LICENSE"] exclude = ["tests", "tests.*"] readme = "README.md" homepage = "https://pythondiscord.com/" documentation = "https://bot-core.pythondiscord.com/" repository = "https://github.com/python-discord/bot-core" keywords = ["bot", "discord", "discord.py"] [tool.poetry.dependencies] python = "^3.11" "discord.py" = "~=2.4" async-rediscache = { version = "1.0.0rc2", optional = true } fakeredis = { version = "~=2.0", extras = ["lua"], optional = true } pydantic = "~=2.6" statsd = "~=4.0" aiodns = "~=3.1" [tool.poetry.extras] async-rediscache = ["async-rediscache"] fakeredis = ["fakeredis"] all = ["async-rediscache", "fakeredis"] [tool.poetry.group.dev.dependencies] taskipy = "1.14.1" python-dotenv = "1.0.1" [tool.poetry.group.test.dependencies] pytest = "8.3.3" pytest-cov = "6.0.0" pytest-xdist = "3.6.1" [tool.poetry.group.lint.dependencies] ruff = "0.8.0" pre-commit = "4.0.1" [tool.poetry.group.doc.dependencies] Sphinx = "8.1.3" gitpython = "3.1.43" sphinx-autodoc-typehints = "2.5.0" furo = "2024.8.6" six = "1.16.0" releases = "2.1.1" sphinx-multiversion = "0.2.4" docstring-parser = "0.16" tomli = "2.1.0" [tool.taskipy.tasks] lint = "pre-commit run --all-files" precommit = "pre-commit install" docs = "sphinx-build -nW -j auto -b html docs docs/build" test = "pytest -n 8 --ff" retest = "pytest -n 8 --lf" [build-system] requires = ["poetry-core>=1.2.0"] build-backend = "poetry.core.masonry.api" [tool.coverage.run] branch = true source_pkgs = ["pydis_core"] source = ["tests"] [tool.ruff] target-version = "py311" extend-exclude = [".cache"] output-format = "concise" line-length = 120 unsafe-fixes = true [tool.ruff.lint] select = ["ALL"] ignore = [ "ANN002", "ANN003", "ANN204", "ANN206", "ANN401", "B904", "C401", "C408", "C901", "COM812", "CPY001", "D100", "D104", "D105", "D107", "D203", "D212", "D214", "D215", "D301", "DOC501", "DOC502", "D400", "D401", "D402", "D404", "D405", "D406", "D407", "D408", "D409", "D410", "D411", "D412", "D413", "D414", "D416", "D417", "E731", "EM101", "EM102", "G004", "PLE0604", "PLR", "PT009", "RET504", "RUF005", "RUF029", "S311", "S404", "SIM102", "SIM108", "TRY003", ] [tool.ruff.lint.isort] order-by-type = false case-sensitive = true combine-as-imports = true known-first-party = ["dev", "pydis_core", "docs"] [tool.ruff.lint.per-file-ignores] "docs/*" = ["TRY002"] "tests/*" = ["ANN", "D", "S101", "SLF001"]