From d07581593fdfeadc61d6df7b6e6bbc29c4478824 Mon Sep 17 00:00:00 2001
From: onyx-and-iris <code@onyxandiris.online>
Date: Wed, 2 Apr 2025 21:16:04 +0100
Subject: [PATCH] remove pyproject-fmt hook

reformat with EBT
---
 .pre-commit-config.yaml |   5 --
 pyproject.toml          | 127 +++++++++++++++++++++++++++-------------
 2 files changed, 85 insertions(+), 47 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 51a5b9e..0ee24b4 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -5,8 +5,3 @@ repos:
       - id: check-yaml
       - id: end-of-file-fixer
       - id: trailing-whitespace
-
-  - repo: https://github.com/tox-dev/pyproject-fmt
-    rev: 'v2.5.0'
-    hooks:
-      - id: pyproject-fmt
diff --git a/pyproject.toml b/pyproject.toml
index a69fd57..d264113 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,16 +1,15 @@
 [build-system]
 build-backend = "hatchling.build"
 
-requires = [ "hatchling" ]
+requires = ["hatchling"]
 
 [project]
 name = "duckypad-twitch"
 description = "DuckyPad macros for streaming software"
 readme = "README.md"
-keywords = [  ]
+keywords = []
 license = "MIT"
-authors.email = "code@onyxandiris.online"
-authors.name = "onyx-and-iris"
+authors = [{ email = "code@onyxandiris.online", name = "onyx-and-iris" }]
 requires-python = ">=3.12,<4.0"
 classifiers = [
   "Development Status :: 4 - Beta",
@@ -21,7 +20,7 @@ classifiers = [
   "Programming Language :: Python :: Implementation :: CPython",
   "Programming Language :: Python :: Implementation :: PyPy",
 ]
-dynamic = [ "version" ]
+dynamic = ["version"]
 dependencies = [
   "keyboard",
   "obsws-python>=1.7",
@@ -33,12 +32,14 @@ dependencies = [
   "xair-api>=2.4.1",
 ]
 
-urls.Documentation = "https://github.com/unknown/duckypad-twitch#readme"
-urls.Issues = "https://github.com/unknown/duckypad-twitch/issues"
+[project.scripts]
+duckypad-macros = "duckypad_twitch.macros:run"
 
-urls.Source = "https://github.com/unknown/duckypad-twitch"
 
-scripts.duckypad-macros = "duckypad_twitch.macros:run"
+[project.urls]
+Documentation = "https://github.com/onyx-and-iris/duckypad-twitch#readme"
+Issues = "https://github.com/onyx-and-iris/duckypad-twitch/issues"
+Source = "https://github.com/onyx-and-iris/duckypad-twitch"
 
 [tool.hatch.metadata]
 allow-direct-references = true
@@ -47,32 +48,28 @@ allow-direct-references = true
 path = "duckypad_twitch/__about__.py"
 
 [tool.hatch.envs.default]
-dependencies = [ "coverage[toml]>=6.5", "pytest" ]
+dependencies = ["coverage[toml]>=6.5", "pytest"]
 
 [tool.hatch.envs.default.scripts]
 test = "pytest {args:tests}"
 test-cov = "coverage run -m pytest {args:tests}"
-cov-report = [ "- coverage combine", "coverage report" ]
-cov = [ "test-cov", "cov-report" ]
+cov-report = ["- coverage combine", "coverage report"]
+cov = ["test-cov", "cov-report"]
 
 [[tool.hatch.envs.all.matrix]]
-python = [ "3.12", "3.13" ]
+python = ["3.12", "3.13"]
 
 [tool.hatch.envs.lint]
 detached = true
-dependencies = [ "black>=23.1.0", "mypy>=1.0.0", "ruff>=0.0.243" ]
+dependencies = ["black>=23.1.0", "mypy>=1.0.0", "ruff>=0.0.243"]
 
 [tool.hatch.envs.lint.scripts]
 typing = "mypy --install-types --non-interactive {args:duckypad_twitch tests}"
-style = [ "ruff {args:.}", "black --check --diff {args:.}" ]
-fmt = [ "black {args:.}", "ruff --fix {args:.}", "style" ]
-all = [ "style", "typing" ]
+style = ["ruff {args:.}", "black --check --diff {args:.}"]
+fmt = ["black {args:.}", "ruff --fix {args:.}", "style"]
+all = ["style", "typing"]
 
 [tool.ruff]
-target-version = "py312"
-
-line-length = 120
-indent-width = 4
 exclude = [
   ".bzr",
   ".direnv",
@@ -96,32 +93,78 @@ exclude = [
   "node_modules",
   "venv",
 ]
-format.indent-style = "space"
-format.quote-style = "single"
-format.line-ending = "auto"
-format.skip-magic-trailing-comma = false
-format.docstring-code-line-length = "dynamic"
-format.docstring-code-format = false
-lint.select = [ "E4", "E7", "E9", "F" ]
-lint.ignore = [  ]
-lint.per-file-ignores."__init__.py" = [ "E402", "F401" ]
-lint.per-file-ignores."tests/**/*" = [ "PLR2004", "S101", "TID252" ]
-lint.fixable = [ "ALL" ]
-lint.unfixable = [  ]
-lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
-lint.mccabe.max-complexity = 10
-isort.known-first-party = [ "duckypad_twitch" ]
-flake8-tidy-imports.ban-relative-imports = "all"
+
+line-length = 120
+indent-width = 4
+
+# Assume Python 3.10
+target-version = "py312"
+
+[tool.ruff.lint]
+# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`)  codes by default.
+# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
+# McCabe complexity (`C901`) by default.
+select = ["E4", "E7", "E9", "F"]
+ignore = []
+
+# Allow fix for all enabled rules (when `--fix`) is provided.
+fixable = ["ALL"]
+unfixable = []
+
+# Allow unused variables when underscore-prefixed.
+dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
+
+
+[tool.ruff.format]
+# Unlike Black, use single quotes for strings.
+quote-style = "single"
+
+# Like Black, indent with spaces, rather than tabs.
+indent-style = "space"
+
+# Like Black, respect magic trailing commas.
+skip-magic-trailing-comma = false
+
+# Like Black, automatically detect the appropriate line ending.
+line-ending = "auto"
+
+# Enable auto-formatting of code examples in docstrings. Markdown,
+# reStructuredText code/literal blocks and doctests are all supported.
+#
+# This is currently disabled by default, but it is planned for this
+# to be opt-out in the future.
+docstring-code-format = false
+
+# Set the line length limit used when formatting code snippets in
+# docstrings.
+#
+# This only has an effect when the `docstring-code-format` setting is
+# enabled.
+docstring-code-line-length = "dynamic"
+
+[tool.ruff.lint.mccabe]
+max-complexity = 10
+
+[tool.ruff.lint.per-file-ignores]
+"__init__.py" = ["E402", "F401"]
+# Tests can use magic values, assertions, and relative imports
+"tests/**/*" = ["PLR2004", "S101", "TID252"]
+
+[tool.ruff.isort]
+known-first-party = ["duckypad_twitch"]
+
+[tool.ruff.flake8-tidy-imports]
+ban-relative-imports = "all"
 
 [tool.coverage.run]
-source_pkgs = [ "duckypad_twitch", "tests" ]
+source_pkgs = ["duckypad_twitch", "tests"]
 branch = true
 parallel = true
-omit = [ "duckypad_twitch/__about__.py" ]
+omit = ["duckypad_twitch/__about__.py"]
 
 [tool.coverage.paths]
-duckypad_twitch = [ "duckypad_twitch", "*/duckypad-twitch/duckypad_twitch" ]
-tests = [ "tests", "*/duckypad-twitch/tests" ]
+duckypad_twitch = ["duckypad_twitch", "*/duckypad-twitch/duckypad_twitch"]
+tests = ["tests", "*/duckypad-twitch/tests"]
 
 [tool.coverage.report]
-exclude_lines = [ "no cov", "if __name__ == .__main__.:", "if TYPE_CHECKING:" ]
+exclude_lines = ["no cov", "if __name__ == .__main__.:", "if TYPE_CHECKING:"]