content: [build-system]
  requires = ["flit_core >=3.11,<4"]
  build-backend = "flit_core.buildapi"
  
  [project]
  authors = [{ name = "aru", email = "me@arielle.codes" }]
  license = "MIT"
  license-files = ["LICENSE", "LICENSE_THIRD_PARTY"]
  requires-python = ">=3.10"
  name = "monty"
  version = "0.0.1"
  description = "Helpful bot for python, github, and discord things."
  dependencies = [
      "aiodns~=3.4",
      "aiohttp[speedups]~=3.13.0",
      "yarl<2.0.0,>=1.17.2",
      "arrow~=1.3.0",
      "attrs<25.0.0,>=24.2.0",
      "base65536~=0.1.1",
      "beautifulsoup4<5.0.0,>=4.13.4",
      "cachingutils @ git+https://github.com/onerandomusername/cachingutils.git@vcokltfre/feat/v2",
      "colorama~=0.4.5; sys_platform == \"win32\"",
      "disnake @ git+https://github.com/DisnakeDev/disnake.git@master",
      "orjson<4.0.0,>=3.10.18",
      "gql~=4.0",
      "lxml<6.0.0,>=5.4.0",
      "markdownify==0.11.6",
      "mistune<3.0.0,>=2.0.4",
      "msgpack<2.0.0,>=1.1.0",
      "redis[hiredis]<6.0.0,>=5.2.0",
      "Pillow<12.0,>=11.2",
      "psutil<6.0.0,>=5.9.8",
      "python-dateutil<3.0.0,>=2.9.0",
      "rapidfuzz<4.0.0,>=3.13.0",
      "sentry-sdk<3.0.0,>=2.28.0",
      "statsd<4.0.0,>=3.3.0",
      "alembic<2.0.0,>=1.15.2",
      "asyncpg~=0.30.0",
      "SQLAlchemy[asyncio]~=2.0.41",
      "readme-renderer[md] (>=44.0,<45.0)",
      "rich>=14.1.0,<15.0.0",
  ]
  
  [dependency-groups]
  dev = [
      {include-group = "tools"},
      {include-group = "typing"},
      {include-group = "docs"},
      {include-group = "mdformat"},
      {include-group = "ruff"},
  ]
  devlibs = [
      "fakeredis<3.0.0,>=2.29.0",
      "watchfiles<2.0.0,>=1.0.5",
      "python-dotenv<2.0.0,>=1.1.0",
  ]
  tools = [
      "poethepoet>=0.37.0",
      "prek>=0.2.1,<0.3",
      { include-group = "ruff" },
      { include-group = "nox" }
  ]
  ruff = [
      "ruff==0.14.0",
  ]
  nox = [
      "nox>=2025.5.1",
  ]
  typing = [
      "basedpyright>=1.31.6",
      "msgpack-types<1.0.0,>=0.5.0",
  ]
  docs = [
      "mkdocs<2.0.0,>=1.6.1",
      "mkdocs-material[imaging]<10.0.0,>=9.6.20",
      "mkdocs-git-revision-date-localized-plugin<2.0.0,>=1.4.7",
      "markdown-gfm-admonition<1.0.0,>=0.1.1",
  ]
  mdformat = [
      "mdformat<1.0.0,>=0.7.22",
      "mdformat-ruff<1.0.0,>=0.1.3",
      "mdformat-gfm<1.0.0,>=0.4.1",
      "mdformat-gfm-alerts<3.0.0,>=2.0.0",
      "mdformat-mkdocs<5.0.0,>=4.4.1",
      "mdformat-pyproject<1.0.0,>=0.0.2",
      "mdformat-simple-breaks<1.0.0,>=0.0.1",
      "mdformat-tables<2.0.0,>=1.0.0",
      "mdformat-frontmatter<3.0.0,>=2.0.8",
  ]
  
  [tool.ruff]
  line-length = 120
  target-version = "py310"
  
  [tool.ruff.lint]
  select = [
  "ALL"
  ]
  ignore = [
      # flake8-commas
      "COM",
      # Missing Docstrings
      "D100",
      "D101",
      "D104",
      "D105",
      "D107",
      # Docstring Whitespace
      "D212",
      # Docstring Content
      "D401",
      "D404",
      "D406",
      "D407",
      "D410",
      "D411",
      "D416",
  
      # Type Annotations
      "ANN002",
      "ANN003",
      "ANN204",
      "ANN206",
      "ANN401",
      "S110", # try-except-pass
  
      # temporarily disabled
      "C901", # mccabe
      "G004", # Logging statement uses f-string
      "S101", # Use of `assert` detected
      "S311", # pseduo-random generators, random is used everywhere for random choices.
  
      "ARG",
      "BLE",
      "ERA",
      "FBT",
      "FIX",
      "FURB",
      "PGH",
      "PLC",
      "PLR",
      "PLW",
      "RET505", "RET506",
      "RUF012",
      "SIM105", "SIM108",
      "SLF",
      "TD",
      "TRY",
  ]
  
  
  
  [tool.ruff.lint.per-file-ignores]
  "monty/alembic/*" = ["D"]
  "_global_source_snekcode.py" = ["T201"]
  
  [tool.ruff.lint.flake8-builtins]
  ignorelist = ["id"]
  
  [tool.ruff.lint.isort]
  lines-after-imports = 2
  known-first-party = ["monty"]
  
  [tool.ruff.lint.pydocstyle]
  convention = "numpy"
  
  [tool.ruff.lint.mccabe]
  max-complexity = 20
  
  
  [tool.poe.tasks]
  lint = { cmd = "prek run --all-files", help = "Lint the source code" }
  prek = { cmd = "prek install", help = "Install the git pre-commit hooks" }
  pyright = { cmd = "dotenv -f task.env run -- pyright", help = "Run pyright" }
  sync = { cmd = "uv sync --all-groups --all-extras", help = "Sync all groups and extras to a local environment" }
  
  [tool.basedpyright]
  typeCheckingMode = "basic"
  include = ["monty", "*.py"]
  
  strictParameterNoneValue = true
  
  [tool.mdformat]
  wrap = 80
  