content: [build-system]
  requires = ["flit_core >=3.8,<4"]
  build-backend = "flit_core.buildapi"
  
  [project]
  name = "ufmt"
  readme = "README.md"
  license = {file="LICENSE"}
  dynamic = ["version", "description"]
  authors = [
      {name="Amethyst Reese", email="amy@n7.gg"},
  ]
  classifiers = [
      "Development Status :: 5 - Production/Stable",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: MIT License",
      "Topic :: Utilities",
      "Typing :: Typed",
  ]
  requires-python = ">= 3.8"
  dependencies = [
      "black>=20.8b0",
      "click>=8.0",
      "libcst>=0.4.0",
      "moreorless>=0.4.0",
      "tomlkit>=0.7.2",
      "trailrunner>=1.2.1",
      "typing-extensions>=4.0",
      "usort>=1.0",
  ]
  
  [project.optional-dependencies]
  lsp = [
      "pygls >= 1.3",
  ]
  ruff = [
      "ruff-api>=0.1.0",
  ]
  dev = [
      "attribution==1.8.0",
      "black==24.8.0",
      "build>=1.2",
      "coverage>=7",
      "flake8==7.1.1",
      "mypy==1.13.0",
      "pygls==1.3.1",
      "ruff-api==0.1.0",
      "usort==1.0.8.post1",
  ]
  docs = [
      "sphinx==8.1.3",
      "sphinx-mdinclude==0.6.2",
  ]
  
  [project.urls]
  Documentation = "https://ufmt.omnilib.dev"
  Github = "https://github.com/omnilib/ufmt"
  Changelog = "https://ufmt.omnilib.dev/en/latest/changelog.html"
  
  [project.scripts]
  ufmt = "ufmt.cli:main"
  
  [tool.flit.sdist]
  exclude = [
      ".github/",
  ]
  
  [tool.attribution]
  name = "µfmt"
  package = "ufmt"
  ignored_authors = ["dependabot"]
  version_file = true
  signed_tags = true
  
  [tool.coverage.run]
  branch = true
  parallel = true
  include = ["ufmt/*"]
  omit = ["ufmt/tests/*"]
  
  [tool.coverage.report]
  fail_under = 100
  precision = 1
  show_missing = true
  skip_covered = true
  
  [tool.mypy]
  python_version = "3.8"
  strict = true
  ignore_missing_imports = true
  
  [tool.thx]
  default = ["docs", "test", "lint", "coverage"]
  module = "ufmt"
  srcs = "ufmt"
  python_versions = ["3.8", "3.9", "3.10"]
  watch_paths = ["README.md", "docs", "ufmt"]
  
  [tool.thx.jobs]
  deps = "python -m pessimist -c 'python -m {module}.tests' --fast ."
  docs = {run="sphinx-build -ab html docs html", once=true}
  format = {run="python -m ufmt format {srcs}", once=true}
  test = "python -m coverage run -m {module}.tests"
  
  [tool.thx.jobs.combine]
  requires = ["test"]
  run = "python -m coverage combine"
  once = true
  
  [tool.thx.jobs.coverage]
  requires = ["combine"]
  run = "python -m coverage report"
  once = true
  show_output = true
  
  [tool.thx.jobs.lint]
  run = [
      "python -m mypy --install-types --non-interactive -p {module}",
      "python -m flake8 {srcs}",
      "python -m ufmt diff {srcs}",
  ]
  parallel = true
  