content: [tool.towncrier]
      package = "sydent"
      filename = "CHANGELOG.md"
      directory = "changelog.d"
      issue_format = "[\\#{issue}](https://github.com/matrix-org/sydent/issues/{issue})"
  
      [[tool.towncrier.type]]
          directory = "feature"
          name = "Features"
          showcontent = true
  
      [[tool.towncrier.type]]
          directory = "bugfix"
          name = "Bugfixes"
          showcontent = true
  
      [[tool.towncrier.type]]
          directory = "docker"
          name = "Updates to the Docker image"
          showcontent = true
  
      [[tool.towncrier.type]]
          directory = "doc"
          name = "Improved Documentation"
          showcontent = true
  
      [[tool.towncrier.type]]
          directory = "removal"
          name = "Deprecations and Removals"
          showcontent = true
  
      [[tool.towncrier.type]]
          directory = "misc"
          name = "Internal Changes"
          showcontent = true
  
  [tool.isort]
  profile = "black"
  
  [tool.black]
  target-version = ['py36']
  
  [tool.mypy]
  plugins = "mypy_zope:plugin"
  show_error_codes = true
  namespace_packages = true
  strict = true
  
  files = [
      # Find files that pass with
      #     find sydent tests -type d -not -name __pycache__ -exec bash -c "mypy --strict '{}' > /dev/null"  \; -print
      "sydent"
      # TODO the rest of CI checks these---mypy ought to too.
      # "tests",
      # "matrix_is_test",
      # "scripts",
      # "setup.py",
  ]
  mypy_path = "stubs"
  
  [[tool.mypy.overrides]]
  module = [
      "idna",
      "netaddr",
      "signedjson.*",
      "sortedcontainers",
  ]
  ignore_missing_imports = true
  
  [tool.poetry]
  name = "matrix-sydent"
  version = "2.6.1"
  description = "Reference Matrix Identity Verification and Lookup Server"
  authors = ["Matrix.org Team and Contributors <packages@matrix.org>"]
  license = "Apache-2.0"
  readme = "README.rst"
  repository = "https://github.com/matrix-org/sydent"
  packages = [
      { include = "sydent" },
  ]
  
  include = [
      { path = "matrix-sydent.service" },
      { path = "res" },
      { path = "scripts" },
      { path = "matrix_is_test", format = "sdist" },
      { path = "scripts-dev", format = "sdist" },
      { path = "setup.cfg", format = "sdist" },
      { path = "tests", format = "sdist" },
  ]
  classifiers = [
      "Development Status :: 5 - Production/Stable",
  ]
  
  [tool.poetry.dependencies]
  python = "^3.7"
  attrs = ">=19.1.0"
  jinja2 = ">=3.0.0"
  netaddr = ">=0.7.0"
  matrix-common = "^1.1.0"
  phonenumbers = ">=8.12.32"
  # prometheus-client's lower bound is copied from Synapse.
  prometheus-client = ">=0.4.0"
  pynacl = ">=1.2.1"
  pyOpenSSL = ">=16.0.0"
  pyyaml = ">=3.11"
  # sentry-sdk's lower bound is copied from Synapse.
  sentry-sdk = { version = ">=0.7.2", optional = true }
  # twisted warns about about the absence of service-identity
  service-identity = ">=1.0.0"
  signedjson = "==1.1.1"
  sortedcontainers = ">=2.1.0"
  twisted = ">=18.4.0"
  typing-extensions = ">=3.7.4"
  unpaddedbase64 = ">=1.1.0"
  "zope.interface" = ">=4.6.0"
  
  [tool.poetry.dev-dependencies]
  black = "==21.6b0"
  ruff = "0.0.189"
  isort = "==5.8.0"
  matrix-is-tester = {git = "https://github.com/matrix-org/matrix-is-tester", rev = "main"}
  mypy = ">=0.902"
  mypy-zope = ">=0.3.1"
  parameterized = "==0.8.1"
  # sentry-sdk is required for typechecking.
  sentry-sdk = "*"
  types-Jinja2 = "2.11.9"
  types-mock = "4.0.8"
  types-PyOpenSSL = "21.0.3"
  types-PyYAML = "6.0.3"
  towncrier = "^21.9.0"
  
  [tool.poetry.extras]
  sentry = ["sentry-sdk"]
  prometheus = ["prometheus-client"]
  
  [tool.poetry.scripts]
  sydent = "sydent.sydent:main"
  
  [tool.ruff]
  line-length = 88
  
  ignore = [
      "E501",
      "F401",
      "F821",
  ]
  select = [
      # pycodestyle checks.
      "E",
      "W",
      # pyflakes checks.
      "F",
  ]
  
  [build-system]
  requires = ["poetry-core>=1.0.0"]
  build-backend = "poetry.core.masonry.api"
  