[build-system] requires = ["hatchling", "hatch-vcs", "hatch-fancy-pypi-readme"] build-backend = "hatchling.build" [project] name = "pycord-rest-bot" dynamic = ["version", "urls", "readme"] description = "A lightweight wrapper for Discord's HTTP interactions and webhook events using py-cord and FastAPI" authors = [ { name = "Paillat-dev", email = "me@paillat.dev" } ] license = "MIT" requires-python = "==3.13.*" classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.12", "Typing :: Typed", "Operating System :: OS Independent", ] keywords = ["discord", "bot", "rest", "pycord"] dependencies = [ "fastapi>=0.115.11", "orjson>=3.10.15", "py-cord>=2.6.1", "pynacl>=1.5.0", "uvicorn>=0.34.0", ] [dependency-groups] dev = [ "basedpyright>=1.28.1", "python-dotenv>=1.0.1", "ruff>=0.9.9", ] [tool.hatch.version] source = "vcs" [tool.hatch.build.hooks.vcs] version-file = "src/pycord_rest/_version.py" [tool.hatch.metadata.hooks.vcs.urls] Homepage = "https://github.com/Paillat-dev/pycord-rest" source_archive = "https://github.com/Paillat-dev/pycord-rest/archive/{commit_hash}.zip" [tool.hatch.metadata.hooks.fancy-pypi-readme] content-type = "text/markdown" [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] path = "README.md" start-after = "\n" end-before = "\n" [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] text = "\n\n---\n" [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] path = "README.md" start-after = "## Overview\n" end-before = "\n## Installation" [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] path = "README.md" start-after = "" [[tool.hatch.metadata.hooks.fancy-pypi-readme.substitutions]] pattern = '\[(.+?)\]\(((?!https?://)\S+?)\)' replacement = '[\1](https://github.com/Paillat-dev/pycord-rest/tree/main\g<2>)' [[tool.hatch.metadata.hooks.fancy-pypi-readme.substitutions]] pattern = '\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]' replacement = '**\1**:' [tool.hatchling] name = "pycord-rest-bot" [tool.hatch.build] include = [ "src/pycord_rest/", ] exclude = [ ".copywrite.hcl", ".github", ".python-version", "uv.lock", ] [tool.hatch.build.targets.wheel] packages = ["src/pycord_rest"] [tool.pyright] pythonVersion = "3.12" typeCheckingMode = "all" reportUnusedCallResult = false reportAny = false executionEnvironments = [ { root = "src/pycord_rest/_version.py", reportDeprecated = false }, { root = "examples", reportExplicitAny = false, reportUnknownMemberType = false, reportUnusedParameter = false, reportImplicitOverride = false } ] [tool.ruff] target-version = "py312" line-length = 120 indent-width = 4 [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" docstring-code-format = false docstring-code-line-length = "dynamic" exclude = [ "src/pycord_rest/_version.py" ] [tool.ruff.lint] select = ["ALL"] per-file-ignores = { "examples/**/*" = ["INP001", "ARG002", "T201"] } extend-ignore = [ "N999", "D104", "D100", "D103", "D102", "D101", "D107", "D105", "D106", "ANN401", "TRY003", "EM101", "EM102", "G004", "PTH", "D211", "D213", "COM812", "ISC001", "D203", "FBT001", "FBT002", "PLR2004", "PLR0913", "C901", "ISC003" # conflicts with basedpyright reportImplicitStringConcatenation ]