pyproject.toml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. [build-system]
  2. requires = ["setuptools>=68.0"]
  3. build-backend = "setuptools.build_meta"
  4. [project]
  5. name = "hermes-chatto-plugin"
  6. version = "1.0.0"
  7. description = "Chatto platform adapter for Hermes Agent (includes vendored chattolib)"
  8. requires-python = ">=3.11"
  9. license = {text = "MIT"}
  10. authors = [
  11. {name = "liv", email = "paul@klumpp.de"},
  12. ]
  13. #[project.entry-points."hermes_agent.plugins"]
  14. #hermes-chatto-plugin = "hermes-chatto-plugin"
  15. [dependency-groups]
  16. dev = [
  17. "pytest>=9.0",
  18. "pytest-asyncio>=0.24",
  19. "basedpyright>=1.29",
  20. ]
  21. [tool.setuptools.packages.find]
  22. where = ["."]
  23. [tool.ruff]
  24. # vendor/ ships upstream code (see VENDORING.md) and dist/ is build output;
  25. # neither is held to this repo's lint rules.
  26. extend-exclude = ["vendor", "dist"]
  27. [tool.ruff.lint]
  28. # BLE001: broad excepts are deliberate here. The adapter is a long-lived
  29. # gateway client whose best-effort side effects (reactions, typing, presence,
  30. # mark-seen) must never break message delivery, so network boundaries catch
  31. # wide and log instead of letting unexpected errors kill the loop.
  32. ignore = ["BLE001"]
  33. [tool.ruff.lint.per-file-ignores]
  34. # The plugin root doubles as the package directory; __init__ only re-exports.
  35. # N999 fires because the checkout directory name is not a valid identifier —
  36. # pytest already works around that via importlib mode.
  37. "__init__.py" = ["F401", "N999"]
  38. [tool.pytest.ini_options]
  39. # importlib mode: the plugin root is itself a package (__init__.py), so pytest's
  40. # default "prepend" mode tries to import the test modules as part of it, which
  41. # fails because the checkout directory name is not a valid Python identifier.
  42. addopts = "--import-mode=importlib"
  43. asyncio_mode = "auto"
  44. # Only our own tests — vendor/ ships the upstream test suites of some packages.
  45. testpaths = ["test_adapter.py", "test_platform_config.py"]
  46. norecursedirs = ["vendor", "myvenv", ".venv"]