content: [tool.poetry]
  name = "diffsync"
  version = "2.1.1a0"
  description = "Library to easily sync/diff/update 2 different data sources"
  authors = ["Network to Code, LLC <info@networktocode.com>"]
  license = "Apache-2.0"
  readme = "README.md"
  homepage = "https://diffsync.readthedocs.io"
  repository = "https://github.com/networktocode/diffsync"
  documentation = "https://diffsync.readthedocs.io"
  keywords = ["source-of-truth", "synchronization"]
  include = [
      "CHANGELOG.md",
      "LICENSE",
      "README.md",
  ]
  
  [tool.poetry.dependencies]
  python = ">=3.9,<4.0"
  pydantic = "^2.0.0"
  structlog = ">= 20.1.0"
  packaging = ">= 21.3"
  colorama = {version = "^0.4.3", optional = true}
  redis = {version = "^4.3", optional = true}
  # typing.Self introduced in 3.11
  typing-extensions = { version = ">=4.0.1", python = "<3.11" }
  
  [tool.poetry.extras]
  redis = ["redis"]
  
  [tool.poetry.group.dev.dependencies]
  pytest = "*"
  pyyaml = ">= 6.0.1"
  black = "*"
  pylint = "*"
  pydocstyle = "*"
  yamllint = "*"
  bandit = "*"
  invoke = "*"
  flake8 = "*"
  mypy = "*"
  pytest-cov = "*"
  pytest-structlog = "*"
  coverage = {extras = ["toml"], version = "*"}
  Sphinx = "^6.0.0"
  m2r2 = "*"
  sphinx-rtd-theme = "*"
  toml = "*"
  types-toml = "*"
  types-redis = "*"
  pytest-redis = "^2.4.0"
  types-requests = "^2.28.11.15"
  types-python-slugify = "^8.0.0.1"
  
  [tool.black]
  line-length = 120
  include = '\.pyi?$'
  exclude = '''
          /(
            \.git
          | \.tox
          | \.venv
          | env/
          | _build
          | build
          | dist
          )/
      '''
  
  [tool.coverage.run]
  branch = true
  
  [tool.pylint.general]
  extension-pkg-whitelist = [
      "pydantic"
  ]
  
  [tool.pylint.basic]
  # No docstrings required for private methods (Pylint default), or for test_ functions.
  no-docstring-rgx="^(_|test_)"
  
  [tool.pylint.messages_control]
  # Line length is enforced by Black, so pylint doesn't need to check it.
  # Pylint and Black disagree about how to format multi-line arrays; Black wins.
  disable = """,
      line-too-long,
      """
  
  [tool.pylint.miscellaneous]
  # Don't flag TODO as a failure, let us commit with things that still need to be done in the code
  notes = """,
      FIXME,
      XXX,
      """
  
  [tool.pylint.similarities]
  # There's a lot of duplicate code in the examples/backend_*.py files - don't complain about it for now
  min-similarity-lines = 20
  
  [tool.pytest.ini_options]
  testpaths = [
      "tests"
  ]
  
  [tool.mypy]
  warn_unused_configs = true
  disallow_untyped_defs = true
  ignore_missing_imports = true
  
  [build-system]
  requires = ["poetry_core>=1.0.8"]
  build-backend = "poetry.core.masonry.api"
  