pyproject.toml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. ]
  20. [tool.setuptools.packages.find]
  21. where = ["."]
  22. [tool.ruff]
  23. # vendor/ ships upstream code (see VENDORING.md) and dist/ is build output;
  24. # neither is held to this repo's lint rules.
  25. extend-exclude = ["vendor", "dist"]
  26. [tool.ruff.lint]
  27. # BLE001: broad excepts are deliberate here. The adapter is a long-lived
  28. # gateway client whose best-effort side effects (reactions, typing, presence,
  29. # mark-seen) must never break message delivery, so network boundaries catch
  30. # wide and log instead of letting unexpected errors kill the loop.
  31. ignore = ["BLE001"]
  32. [tool.ruff.lint.per-file-ignores]
  33. # The plugin root doubles as the package directory; __init__ only re-exports.
  34. # N999 fires because the checkout directory name is not a valid identifier —
  35. # pytest already works around that via importlib mode.
  36. "__init__.py" = ["F401", "N999"]
  37. [tool.pytest.ini_options]
  38. # importlib mode: the plugin root is itself a package (__init__.py), so pytest's
  39. # default "prepend" mode tries to import the test modules as part of it, which
  40. # fails because the checkout directory name is not a valid Python identifier.
  41. addopts = "--import-mode=importlib"
  42. asyncio_mode = "auto"
  43. # Only our own tests — vendor/ ships the upstream test suites of some packages.
  44. testpaths = ["test_adapter.py", "test_platform_config.py"]
  45. norecursedirs = ["vendor", "myvenv", ".venv"]