pyproject.toml 1.9 KB

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