pyproject.toml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. [tool.towncrier]
  2. package = "sydent"
  3. filename = "CHANGELOG.md"
  4. directory = "changelog.d"
  5. issue_format = "[\\#{issue}](https://github.com/matrix-org/sydent/issues/{issue})"
  6. [[tool.towncrier.type]]
  7. directory = "feature"
  8. name = "Features"
  9. showcontent = true
  10. [[tool.towncrier.type]]
  11. directory = "bugfix"
  12. name = "Bugfixes"
  13. showcontent = true
  14. [[tool.towncrier.type]]
  15. directory = "docker"
  16. name = "Updates to the Docker image"
  17. showcontent = true
  18. [[tool.towncrier.type]]
  19. directory = "doc"
  20. name = "Improved Documentation"
  21. showcontent = true
  22. [[tool.towncrier.type]]
  23. directory = "removal"
  24. name = "Deprecations and Removals"
  25. showcontent = true
  26. [[tool.towncrier.type]]
  27. directory = "misc"
  28. name = "Internal Changes"
  29. showcontent = true
  30. [tool.isort]
  31. profile = "black"
  32. [tool.black]
  33. target-version = ['py36']
  34. [tool.mypy]
  35. plugins = "mypy_zope:plugin"
  36. show_error_codes = true
  37. namespace_packages = true
  38. strict = true
  39. files = [
  40. # Find files that pass with
  41. # find sydent tests -type d -not -name __pycache__ -exec bash -c "mypy --strict '{}' > /dev/null" \; -print
  42. "sydent"
  43. # TODO the rest of CI checks these---mypy ought to too.
  44. # "tests",
  45. # "matrix_is_test",
  46. # "scripts",
  47. # "setup.py",
  48. ]
  49. mypy_path = "stubs"
  50. [[tool.mypy.overrides]]
  51. module = [
  52. "idna",
  53. "netaddr",
  54. "signedjson.*",
  55. "sortedcontainers",
  56. ]
  57. ignore_missing_imports = true
  58. [tool.poetry]
  59. name = "matrix-sydent"
  60. version = "2.6.0"
  61. description = "Reference Matrix Identity Verification and Lookup Server"
  62. authors = ["Matrix.org Team and Contributors <packages@matrix.org>"]
  63. license = "Apache-2.0"
  64. readme = "README.rst"
  65. repository = "https://github.com/matrix-org/sydent"
  66. packages = [
  67. { include = "sydent" },
  68. ]
  69. include = [
  70. { path = "matrix-sydent.service" },
  71. { path = "res" },
  72. { path = "scripts" },
  73. { path = "matrix_is_test", format = "sdist" },
  74. { path = "scripts-dev", format = "sdist" },
  75. { path = "setup.cfg", format = "sdist" },
  76. { path = "tests", format = "sdist" },
  77. ]
  78. classifiers = [
  79. "Development Status :: 5 - Production/Stable",
  80. ]
  81. [tool.poetry.dependencies]
  82. python = "^3.8"
  83. attrs = ">=19.1.0"
  84. jinja2 = ">=3.0.0"
  85. netaddr = ">=0.7.0"
  86. matrix-common = "^1.1.0"
  87. phonenumbers = ">=8.12.32"
  88. # prometheus-client's lower bound is copied from Synapse.
  89. prometheus-client = ">=0.4.0"
  90. pynacl = ">=1.2.1"
  91. pyOpenSSL = ">=16.0.0"
  92. pyyaml = ">=3.11"
  93. # sentry-sdk's lower bound is copied from Synapse.
  94. sentry-sdk = { version = ">=0.7.2", optional = true }
  95. # twisted warns about about the absence of service-identity
  96. service-identity = ">=1.0.0"
  97. signedjson = "==1.1.1"
  98. sortedcontainers = ">=2.1.0"
  99. twisted = ">=18.4.0"
  100. typing-extensions = ">=3.7.4"
  101. unpaddedbase64 = ">=1.1.0"
  102. "zope.interface" = ">=4.6.0"
  103. [tool.poetry.dev-dependencies]
  104. black = "*"
  105. ruff = "*"
  106. isort = "*"
  107. mypy = "*"
  108. mypy-zope = "*"
  109. matrix-is-tester = {git = "https://github.com/matrix-org/matrix-is-tester", rev = "main"}
  110. parameterized = "==0.8.1"
  111. # sentry-sdk is required for typechecking.
  112. sentry-sdk = "*"
  113. types-Jinja2 = "*"
  114. types-mock = "*"
  115. types-PyOpenSSL = "*"
  116. types-PyYAML = "*"
  117. towncrier = "*"
  118. [tool.poetry.extras]
  119. sentry = ["sentry-sdk"]
  120. prometheus = ["prometheus-client"]
  121. [tool.poetry.scripts]
  122. sydent = "sydent.sydent:main"
  123. [tool.ruff]
  124. line-length = 88
  125. ignore = [
  126. "E501",
  127. "F401",
  128. "F821",
  129. ]
  130. select = [
  131. # pycodestyle checks.
  132. "E",
  133. "W",
  134. # pyflakes checks.
  135. "F",
  136. ]
  137. [build-system]
  138. requires = ["poetry-core>=1.0.0"]
  139. build-backend = "poetry.core.masonry.api"